코드를 제대로 작성할 시간이 부족할 때 해결 방법 5가지

코드를 제대로 작성할 시간이 부족할 때 해결 방법 5가지
Cozy CodingPosted On Jul 13, 20243 min read

이미지

다들 한 번쯤은 경험해 본 적이 있을 거에요. 기술 부채가 쌓이고, 애자일 코치에게 이야기하면 "그냥 끝내세요"라고 하거나 시간 기반의 추정을 요구합니다.

일단은 "그냥 돌아가는 코드"를 만들고 우리는 모두 삶을 이어갑니다. 한 두 곳에 빠르게 해킹하는 것을 누구도 신경 쓰지 않는 것 같아요.

시간이 지남에 따라 기술 부채가 쌓이는 상황을 지불하게 됩니다. 제대로 하는 데에는 충분한 시간이 없지만 잘못하려고는 무한한 시간이 있습니다. 그게 무엇을 의미하는지 살펴보도록 하죠.

범죄란 무엇인가요?

코드를 보고 한 좋은 개발자는 이렇게 말할 것입니다:

"모두가 방 안에서 최고의 개발자는 아니에요" (그게 정의상 맞죠) 그리고 심지어 우리 중 최고라고 할 수 있는 사람조차 가장 흔한 응답을 할 수 있죠:

저는 그 차이를 알 수 있기를 바래요. 제 경험상 기술 부채를 나중에 처리하겠다고 하면 결국 미루는 것이라고 생각해요. 그 말은 코드가 절대 개선되지 않고 시간이 흘러도 사물이 나아지지 않는다는 것을 의미해요 — 오히려, 개발자들이 코드를 밀어넣으면 코드베이스가 점진적으로 악화된다는 뜻이에요.

팀 전체의 상황이 나빠지고 있어요. 새로운 기능을 계속해서 추가하는 것이 점점 더 어려워지고 시간이 많이 걸리게 되고 있어요.

팀들의 다양한 태도

내가 근무한 팀들은 전략적으로 다양합니다. 제 다이어리에서 몇 가지 예시를 함께 살펴보겠어요.

적극적인 팀

과거에 나는 적극적인 팀에서 일했습니다. 제 동료와 저는 기술 부채를 청산하기 위해 노력했습니다. 우리는 매 스프린트마다 코드를 업데이트하고 개선하는 것을 즐겼습니다. 그 동안 동료가 일을 하지 않아 회의에 참석하지 않기 시작하면서 상황이 달라졌어요.

좋은 때에는 서로를 도전하고 작업 표준을 높이기 위해 반복적으로 작업했습니다.

코딩이 완벽하진 않았지만 시간이 흐를수록 점점 나아졌습니다. 이로써 결함을 줄이고 향후 유지보수할 수 있는 상태로 소프트웨어를 제공하는 데 기록을 갖게 되었습니다.

미루는 팀

정말 솔직히 말하자면, 자신의 일을 멸시하는 사람들에게는 참을성이 없어요. 소프트웨어 개발자로서 특권을 가지고 있으며 여정을 즐겁게 즐겨야 합니다.

이전 회사에서는 매 네 번째 스프린트마다 기술적 부채에 대처하기 위한 시간을 가졌어요. 그 결과로 우리는 모두 새로운 기능을 개발하고 버그를 해결하는데 노력을 기울였죠. 테스터들도 좋아했어요. 그들에겐 '따라잡을' 기회가 생겼기 때문이죠.

그러나 기능 스프린트에서 일이 늘어나면(불가피하게 그랬죠), 그 일들이 기술적 부채 스프린트로 밀려날 때는 잘 작동하지 않았어요.

우리는 기술적 부채에 대처하는 데 평가를 받았고, 팀은 혁신적인 해결책을 마련했어요. 우리는 JIRA에서 기술적 부채 태그를 달아 기능 작업을 가장하는 방식으로 통계를 조작했어요. 모두에게 좋은 일이었죠. 우리가 노력을 기울이고 있다는 모습으로 보였기 때문이죠.

기술 부채를 처리하지 못했을 때의 영향

저에게 이를 내 코드베이스를 바탕으로 설명해보겠습니다.

저희 코드베이스 중에서 가장 중요한 부분은 2017년 이후로 개선되지 않았습니다. 다시 말해, 기능을 구현해야 할 필요가 없는 한 사람들은 클래스에 들어가서 개선을 하지 않습니다. 아쉽게도, 이곳의 2010년대 개발자들은 종속성 주입을 올바르게 구현하지 못했습니다. 저희는 테스트되지 않은 코드 덩어리, 문서화되지 않은 코드 그리고 때로는 버그가 있는 코드들이 산더미처럼 쌓여 있습니다. 변경을 시도할 때마다 우리 팀 리더는 "조심해"라고 말합니다 - 실수를 하면 생길 수 있는 결함에 대해 백업이 없다고 말이죠.

제 해석

성실함과 코드에 대한 진정한 열정이 부족한 것 같아요. 사람들이 일자리를 좋아하고 그것을 위해 코드를 쓰지 않는다고 느껴지네요. 저는 독성이 없는 "열정"이나 60시간 이상 일하는 것을 말하는 게 아니에요.

프로그래밍 업무를 하는 많은 사람들이 자신의 일에 대해 관심을 가지지 않는다고 주장해요. 이런 개발자들을 고용하면 코드베이스는 천천히 하향 곡선을 그리며 기술부채의 산이 쌓이다가 새로운 기능을 개발하기가 불가능한 수준으로 쌓여가요.

결론

나중에 처리하는 기술 부채는 사실 개선 작업을 하지 않고 있다는 뜻이에요. 어떤이들은 당신이 오히려 상황을 악화시키고 있다고 말할지도 몰라요.

소프트웨어 개발을 좋아한다면 스스로가 일을 더 나아지게 만들어야 합니다. 자신을 위해서. 팀 전체를 위해서.

작가 소개

프로페셔널 소프트웨어 개발자 "비밀 개발자"는 Twitter에서 @TheSDeveloper로 활동하며, Medium.com을 통해 정기적으로 기사를 발행합니다.

"비밀 개발자"는 이 기사를 쓸 시간을 가질 만큼 충분히 바빴습니다.