논쟁의 여지가있는 프로그래밍 의견 스레드 에서이 답변을 읽은 이후로 내가 생각한 것입니다 .
당신의 직업은 자신을 일에서 벗어나게하는 것입니다.
고용주를위한 소프트웨어를 작성할 때 사용자가 작성하는 소프트웨어는 모든 개발자가 선택할 수 있고 최소한의 노력으로 이해할 수있는 방식으로 작성되어야합니다. 잘 디자인되고, 명확하고 일관되게 작성되고, 깔끔하게 형식화되고, 필요한 곳에 문서화되고, 예상대로 매일 빌드되고, 저장소에 체크인되고, 적절하게 버전이 지정됩니다.
당신이 얻을 경우 버스에 치 , 해고, 해고, 또는 작업을 걸어, 당신의 고용주는 순간의 통지에 당신을 대체 할 수 있어야하고, 다음 사람은, 자신의 역할에 단계 코드를 선택하고 위로하고 수 일주일 내내 달리기. 그가 그렇게 할 수 없다면, 당신은 비참하게 실패한 것입니다.
흥미롭게도, 저는 그 목표를 갖는 것이 저의 고용주들에게 더 가치있는 것으로 나타났습니다. 일회용을 위해 노력할수록 나는 그들에게 더 가치있게됩니다.
그리고 이것은 이것 과 같은 다른 질문에서 조금 논의 되었지만, 더 빈칸에서 논의하기 위해 다시 제기하고 싶었습니다 . " 코드 냄새입니다! "관점-실제로 다루지 않았습니다. 아직 깊이.
저는 10 년 동안 전문 개발자였습니다. 괜찮은 수준의 새로운 개발자가 비교적 신속하게 선택할 수있을 정도로 코드가 잘 작성된 작업이 있었지만 대부분의 경우 업계에서는 매우 높은 수준의 소유권 (개인 및 팀 소유권)이 표준. 대부분의 코드 기반에는 문서, 프로세스 및 "개방성"이 없어서 새 개발자가 코드를 선택하여 신속하게 작업 할 수 있습니다. 코드 기반을 잘 아는 사람 ( "소유자")만이 알 수있는 수많은 미묘한 작은 요령과 해킹이 항상있는 것 같습니다.
물론, 이것에 대한 명백한 문제는 : 만약 사람이 그만두거나 "버스에 부딪히면"어떻게 될까요? 또는 팀 차원에서 : 팀 전체가 팀 점심 시간에 외식 할 때 식중독에 걸리고 모두 죽으면 어떻게됩니까? 팀을 비교적 무작위로 새로운 무작위 개발자로 교체 할 수 있습니까? -과거의 여러 직업에서 그런 일이 전혀 일어나지 않는다고 생각합니다. 이 시스템에는 트릭과 해킹이 가득하여 " 알기 만하면됩니다 ". 신입 사원은 수익성있는 비즈니스주기 (예 : 새로운 안정적인 릴리스)보다 훨씬 오래 걸리므로 문제가 다시 발생합니다. 요컨대, 제품을 버려야 할지라도 놀라지 않을 것입니다.
분명히 한 번에 전체 팀을 잃는 것은 매우 드 would니다. 그러나 나는이 모든 것에 더 미묘하고 불길한 것이 있다고 생각합니다.이 스레드를 시작하려고 생각한 시점입니다. 기본적으로 코드 소유권에 대한 높은 요구는 종종 기술 부채의 지표 라고 생각 합니다 . 시스템에 프로세스, 의사 소통, 디자인, 부족한 트릭 및 해킹이 부족하면 "알아야 할 것"등이 있습니다. 이는 일반적으로 시스템이 점진적으로 깊고 심도 깊은 기술적 부채에 빠지고 있음을 의미합니다.
그러나 문제는 코드 소유권이 종종 프로젝트와 회사에 일종의 "충성도"로 나타나고, 업무에 대한 "책임"의 긍정적 인 형태로 제시되기 때문에 그것을 완전히 비난하는 것은 인기가 없습니다. 그러나 동시에 방정식의 기술적 부채 측면은 종종 코드베이스가 점차 개방적이지 않고 작업하기가 더 어렵다는 것을 의미합니다. 특히 사람들이 이동하고 새로운 개발자가 대신해야 할 때 기술 부채 (예 : 유지 관리) 비용이 급증하기 시작합니다.
어떤 의미에서, 나는 코드 소유권에 대한 높은 수준의 요구가 공개적으로 냄새가 나면 (일반적인 프로그래머 상상력) 우리 직업에 좋은 것이라고 생각합니다. 작업에서 "책임과 자부심을 얻는"것으로 여겨지는 대신, "기술적 부채를 통해 스스로를 보호하고 인공적인 일자리를 창출하는 것"으로 여겨 져야합니다.
그리고 나는 시험 (실험이 생각한 것)은 기본적으로 다음과 같아야한다고 생각합니다. 내일 사람 (또는 전체 팀)이 지구의 얼굴을 사라지게한다면 어떨까요? 프로젝트에 심각한 부상을 초래할 수 있습니까? 아니면 새로운 사람들을 데려 와서 사람들에게 문서를 읽고 파일을 도와주고 며칠 동안 코드를 가지고 놀아 줄 수 있을까요? 몇 주 안에 사업을하고 (한 달 정도면 전체 생산성으로 돌아 가기)?