Jul 11, 2023
빠르게 전달하고 싶다면 테스트에 최종 결정이 있어야 합니다.
InfoQ 홈페이지 기사 원하는 경우
InfoQ 홈페이지 기사 빠르게 전달하고 싶다면 테스트가 가장 중요합니다.
2023년 6월 6일 · 23분 분량의 읽기
~에 의해
호르헤 페르난데스 로드리게스
검토자
매트 캠벨
소프트웨어 엔지니어링이 다른 직업에 비해 특별하다는 점에 동의하실 것입니다. 상황은 급격하고 빠르게 변합니다. 최신 정보를 유지하려면 많은 두뇌 능력이 필요합니다.
어쩌면 그 결과로 우리는 잘 정립된 일반적인 관행이나 아이디어를 고수합니다(비록 그것이 우리에게 문제를 일으키거나 어떤 경우에는 맞지 않더라도). 이러한 관행은 대부분의 경우를 다루려고 노력하지만 모든 경우를 다룰 수는 없습니다. 하지만 이러한 관행은 우리에게 위안을 줍니다. 변하지 않는 것, 안전하다고 느끼는 것, 그것이 맞는지 아닌지에 대한 생각의 부담으로부터 마음을 자유롭게 해주는 것이 필요합니다. 자동 조종 모드로 들어갑니다.
문제는 소프트웨어 개발이 조립 라인처럼 작동하기를 원한다는 것입니다. 일단 조립 라인이 구축되면 우리는 절대 건드리지 않습니다. 우리는 항상 같은 방식으로 운영합니다. 한동안 CI/CD 레인에서 작동할 수 있지만 안타깝게도 코드에서 항상 잘 작동하는 것은 아닙니다.
Kalix를 사용하면 클라우드로 쉽게 마이그레이션하고 놀라울 정도로 빠르게 혁신할 수 있습니다! NoOps가 필요한 고성능 마이크로서비스와 API를 구축하세요. 더 알아보기.
때로는 메시지가 너무 많이 전송되어 그 본질을 잃고 어떤 시점에서는 그러한 관행을 우리 정체성의 일부로 받아들이고 이를 방어하며 다른 관점을 허용하지 않기 때문에 상황은 더욱 악화됩니다. 특히 분명히 더 많은 노력이 필요한 경우. 다른 때에는 우리는 단지 어울리고 싶고 새로운 아이디어를 제안하고 싶지 않습니다.
코딩할 때 우리는 이에 맞서 싸워야 하며, 그 관행이 현재 시나리오에 적합한지 모든 경우에 반영해야 합니다. "모범 사례"를 "최고의 일반 사례"로 생각하십시오.
그 한 가지 예는 애자일을 잘못 해석할 수 있는 다양한 방법입니다. 어떤 경우에는 본질이 상실되었습니다.
그 글에서 나는 애자일 구현이 잘못된 것에 초점을 맞추는 경우가 많기 때문에 애자일의 본질이 상실되는 경우가 많다고 주장합니다. 정의에 따르면 민첩한 것은 쉽게 방향을 바꾸고 변화에 빠르게 대응할 수 있습니다.
우리는 CI/CD(지속적 통합/지속적 배포)와 같은 기술, 반복 개발과 같은 전략적 등 다양한 성격의 사례를 통해 이러한 대응성을 달성하려고 노력합니다. 그러나 소프트웨어 개발의 핵심인 코딩을 다룰 때 민첩성을 종종 잊어버립니다. 레시피의 주요 재료 없이 좋아하는 식사나 디저트를 준비한다고 상상해 보세요. 이것이 코드를 고려하지 않고 민첩성을 추구할 때 수행하는 작업입니다.
코드를 개선하는 것이 무섭고 복잡해 보이거나 토끼굴에 빠지기 쉬울 수 있기 때문에 이런 일이 발생할 수 있습니다(이 모든 것은 완화될 수 있습니다). 어쩌면 일부 솔루션이 우리의 기동성에 미치는 부정적인 영향을 확인하는 것이 쉽지 않기 때문일 수도 있습니다. 미래의 발전을 악몽으로 바꾸는 것: 민첩성의 반대입니다. 코드에 초점을 맞추는 대신, 덜 중요한 프로세스(스크럼과 같은 방법론)에서 완벽을 달성하는 데 너무 많은 관심을 쏟고 주요 문제를 다루지 않고 문제를 해결하려고 합니다.
마지막으로, 코드가 향후 개발(결과적으로 비즈니스의 미래)에 미치는 영향에 대해 더 많은 가시성을 제공해야 한다고 제안합니다. AI가 품질을 알려주는 것뿐만 아니라 잠재적인 선택에 따라 개발이 얼마나 느려질지 예측하는 계수와 같은 것을 통해 이를 정량화하는 데 도움이 될 수 있기를 바랍니다. 저는 이와 같은 것이 기업이 지속 가능한 개발에 투자해야 한다는 것을 깨닫는 데 도움이 될 수 있다고 생각합니다. 기술 부채를 언제 해결해야 하는지에 대한 논의는 역사가 될 것입니다.