어제의 기술적 부채에 대한 오늘의 병을 비난


38

현재 지원하지 않는 응용 프로그램에서 놀라운 품질, 확장 성 및로드 문제가 발생했습니다. 고맙게도 나는 온전한 정신을 유지하기 위해 처음부터 새로운 프로젝트를 진행했습니다.

원래 팀은 20 명의 일부 개발자 (대부분 숙련 된 기술 세트를 보유한 개발자)로 구성되어 있으며 비즈니스 요구 사항 문서 나 품질 보증 테스터가 없으며 처음부터 폭포 방식으로 제대로 관리하지 못했습니다. 생산 초기는 훨씬 더 취성 수정으로 취성 절차와 같은 코드를 패치하는 것과 관련된 당혹스러운 악몽이었습니다. 나중에이를 지원할 의도가없는 데이터 모델에 쇠약하게 정리 된 기능이 추가되었으며 동일한 코드가 10 번 이상 중복되어 안전하게 닫히지 않는 리소스와 수만 개의 엔터티를 가져 오는 ORM 쿼리를 보는 것은 드문 일이 아닙니다. 소수만 빼고

이제 막 나에게 새로운 문제가 생길 때마다 더 나은 표준으로 모듈을 다시 작성하고 더 안정적으로 만들지 만 경영진은 왜이 모든 일이 발생하는지에 대한 적절한 설명이 필요합니다.

그들은이 응용 프로그램의 품질이 떨어지고 기술 부채가 익사한다는 개념에 충격을 받고 혼란스러워합니다. 다행히도 그들은 기술 부채의 개념을 이해하고 그것을 박멸하려는 탐구에서 저를 지원하며 저를 매우지지하고 감사합니다. 그러나 나는 원래 팀을 계속 비난 하는 것처럼 느낍니다. 분할).

결론은 내가 전에 프로젝트의 개발자에 대해 항상 불평하는 "그 사람" 이되고 싶지 않다는 것입니다. 나는 개인적으로 자신이 무지하고 있다고 생각했던 사람들이 자신의 방식대로 행동하도록 격려하는 환경과 디자인의 영향을 고려하지 않고 있다고 생각했습니다.

나는 더 많은 선임 멤버들이 경험하고 혜택을 누린 경험이없는 이상주의 주니어 개발자들의 열악한 디자인과 구현에 대해 이전 팀을 비난하는 태도를 보았습니다.

이러한 종류의 문제를 직원이나 팀의 평판을 밟지 않고 경영진에게보고하는 더 좋은 방법, 더 부드러운 방법이 있다고 생각하십니까?


17
비난 게임을 하지 않는 것에 대한 질문에서 , 이전 팀에 대한 질문의 약 50 %를 구성하는 3 개의 전체 단락을 사용 한다는 것은 아이러니 한 일입니다 . 그리고 [bad-code]와 [bad-programmer]라는 질문에 태그를 달았습니다.
Aaronaught

8
@Aaronaught, 알았어. 물을거야 bad-code. 코드가 실제로 버그와 문제를 일으키기 때문에 레이블을 붙였다 . 나는 bad-programmer이전 팀을 비난함으로써 하나가되는 것을 두려워하기 때문에 그것을 표시했습니다 . 처음 세 단락이 고려되는 한, 나는 그 설명적일 필요는 없지만 나의 즉각적인 상황에 대한 정확한 그림을 그리고 지금까지 수집 한 내용의 역사를 제공하고 싶었습니다.
maple_shaft

2
... 거기에 rant 의 요소 가 있습니까? 그래, 나는 그렇게 생각하지만 죽음의 소원을 가진 ADHD 아이처럼 작동하는 응용 프로그램의 보모가 아프다.
maple_shaft

2
나는 당신에게 동정합니다. 나는한다. 그러나 우리는 당신이 증기를 뿜어 내거나 날려 버리고 싶다면 채팅 시스템을 가지고 있습니다. 건설적인 질문에는 중립적 인 말이 있어야하며 그러한 불필요한 세부 사항은 생략해야합니다.
Aaronaught

내 인생의 이야기
Iulian Onofrei

답변:


46

기술 부채는 금융 부채와 같습니다. 당신은 프로그램이 미래에 돈을 지불 할 의도로 프로그램을 개발할 때 (전망 적으로) 전략적으로 받아들입니다. 때로는 사람들이 기술 부채 결정을 잘못 내리는 경우가 있지만 (예 : 신용 카드 발급) 특정 금액의 기술 부채가 정상일 때가 있습니다. 미래에 변화가 필요하다는 가정하에 오늘날 무언가를 "올바른"방법으로 만들기 위해 시간을 할애하지 않기로 결정하는 것은 완전히 정상이며 예상되어야합니다. 물론 좋은 선이 있지만 처음으로 올바른 방법으로 만들 것이라고 생각하면 자체 문제 세트 (분석 마비)가 발생할 수 있습니다.

결론적으로, 2 년 이상 지속되는 사소한 프로젝트는 기술 부채를 상환하는 새로운 개발 시간을 투자해야합니다. 문제는 응용 프로그램을 올바른 방식으로 작성하더라도 마찬가지 입니다. 당신이 빚에 대한 빚을지고 있지 않다면, 경영진은 당신이 그런 식으로 그것을 제시한다면 그것을 확실히 이해할 수 있습니다.

이것을 경영진에게 설명하고 이전 팀을 "비난"하는 대신 항상 "일반적인 사업"으로 제시 할 수 있습니다.


4
프로젝트가 어떻게 기술 부채를 낼 수 있는가 (올바로!)에 대한 비논리적 인 설명을 위해 +1.
Joris Timmermans

1
@Nemi : 기술적 부채와 금융 부채의 중요한 차이점은 후자를 계량화하는 것이 훨씬 쉽다는 것입니다. 당신이 갚아야 할 재정 부채가 얼마나되는지 (이자 축적과 반복 재정 의무를 고려하더라도) 알기 훨씬 쉬우 며 기술 부채로 그렇게해야합니다. 이것이 메이플 샤프트의 문제를 악화시키는 한 가지 이유 때문에 이것을 지적합니다.
Ben Hocking

2
@ 벤-당신은 절대적으로 정확합니다. 모든 유추와 마찬가지로, 이것은 현미경으로 분해됩니다. 그러나 비교는 여전히 높은 수준입니다. 그것은 본질적으로 세부 사항을 없애고 기술 문제가 아닌 비즈니스 문제로서 수준에 따라 경영진과 대화합니다. 본질적으로 장기 실행 프로젝트는 일정량의 기술 부채를 축적하므로 시간이 지남에 따라 개발 비용이 추가됩니다. 이것은 숨겨져 있고 (잘 이해되지도 못하기 때문에) 대화를 나누는 것이 모든 사람의 최선의 이익입니다.
네미

2
+1 ~ "응용 프로그램을 올바르게 작성하더라도 마찬가지입니다."
Mauricio Scheffer

1
@radarbob 나는 동의하지 않는다-재정 부채와 마찬가지로, 불운이나 어리 석음으로 인해 의도적으로 누적되었는지 여부는 중요하지 않습니다. 누군가 나중에 지불해야합니다. 이 용어는 원인과 관련하여 본질적으로 중립입니다.
Hulk

23

IMO는 이미 대부분 올바른 방법으로이 문제를 해결하려고합니다. "이전 코드가 빨라서"한 번에 한 가지만 고쳐서 다시 쓰기를 제안하지 않습니다.

이전 팀을 비난하는 것처럼 느끼지 않으려면 시간이 많이 걸리는 상황에서이 코드를 생성해야한다고 상상해보십시오. 당시 경영진은 코드가 "더 많거나 적은 작업"이라고해서 많은 노력과 재 작업없이 유지 보수가 가능하다는 것을 의미하지는 않습니다.

실제로 일부 비즈니스 가치를 제공하는 제품을 만들도록 관리 한 기존 팀에 감사하십시오. 그렇지 않은 경우 더 이상 사용하지 않을 것입니다. 아름답게 작성 되었더라도 프로젝트가 비즈니스 가치를 제공하지 못하는 빈도에 놀랄 수 있습니다.


3
1 : 다음, 품질의 제품을 제공하는 실패 이전 관리를 비난 (희망) 메시지를 받게됩니다 새로운 관리 (당신에 관한 한 지금까지처럼, 두 경우 모두가 승리하거나 제거 할 수 있습니다)
gbjbaanb

15
@gbjbaanb-누구를 비난하지 마십시오! 다른 사람을 비난하지 마십시오. 현재 상황과 원하는 상황을 설정하고 어떻게 그리고 왜 거기에 도착해야하는지에 대한 논리적 인 주장을하십시오.
Joris Timmermans

예, 새로운 관리가 있는지 확인하십시오. 같은 보스가 여전히있을 수 있습니다. 그리고 그가 이사를해도 그는 어딘가에 있습니다. 버스 아래에 사람들을 던지기 전에 확인하십시오.
Philip

나는 누군가를 비난하지 않는 것처럼 간단했으면 좋겠다. 경영진은 손가락을 가리킬 누군가 / 무언가를 주장합니다. 내가 한 사람이나 여러 사람을 가리 키지 않으면 어떻게해야합니까?
maple_shaft

4
@maple_shaft-관리에 대한 나의 대답에서 내가 주장한 주장을하고 그들이 여전히 "비난"을 고집한다면, 당신이 찾을 수있는 한 많은 사이트에 이력서를 게시하십시오. 손가락을 가리킬 다른 사람이 없기 때문에 당신 을 비난하기 시작 하십시오.
Joris Timmermans

7

문제가있는 제품의 현재 상태에 대한 의견을 물었을 때, 나는 항상 "그것이 무엇인지"로 되돌아 간 다음 개선 계획에 대해 이야기하기 시작합니다.

이 문제를 일으킨 결정에 영향을 미치는 모든 요인을 모릅니다. 아마도 당시에는 합리적이었을 것입니다. 당신이 할 수있는 일은 앞으로 나아가고 더 나은 내일을 만드는 것입니다. 그리고 당신이 잘하고있는 것처럼 들립니다-당신은이 상황에 대한 올바른 태도를 가지고 있습니다.

요청시 사실 만보고하는 데 집중하십시오. 이야기 나 논평을 추가 할 필요는 없습니다. "X의 경우 시스템이 실패합니다"또는 "Y의 경우 보고서가 잘못되었습니다."라고 말하면됩니다. 그런 다음 현재 상황을 개선 할 계획을 신속하게 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.