개발 관리자는 코드 "목표 관리"를 어떻게 처리해야합니까?


12

먼저 용어를 만들 수 있습니다.

코드 목표 추적 : 아침에 코드를 확인한 다음 다른 개발자가 이전 날 파일별로 변경 한 내용을 모두 파일 (특히 원래 개발 한 코드 파일)을 자동으로 검토하고 형식, 논리, 변수 이름 바꾸기, 리팩토링 수정 긴 메소드 등을 변경 한 후 VCS에 변경 사항을 커미트하십시오.

이 연습은 내가 확인한 몇 가지 장단점이 있습니다.

  • 장점 : 코드 품질 / 가독성 / 일관성 유지
  • Pro : 다른 개발자가 원본 코드에 익숙하지 않아 일부 버그가 수정되었습니다.
  • 단점 : 종종 목표를 달성하는 개발자에게는 시간 낭비입니다.
  • 단점은 : 때때로 그들은 전날 버그없는 코드를 작성 생각 개발자 헤어 당겨 분노를 일으키는 버그를 소개합니다.
  • 단점 : 다른 개발자들은 과도한 nitpicking으로 악화되어 목표 입찰자의 코드에 기여하는 것을 싫어합니다.

면책 조항 : 공평하게, 나는 실제로 개발 관리자가 아니며, 실제로 "목표 관리"를하고있는 개발자입니다.

내 방어에서, 나는 (우리의 매우 큰 코드베이스를 기름칠 된 기계로 유지하기 위해) 정당한 이유 때문에 이것을하고 있다고 생각 하지만, 그것이 부정적인 분위기를 만들고 있다고 매우 걱정하고 있습니다. 또한 관리자가이 문제를 해결해야한다고 확신합니다.

관리자 인 경우이 문제를 어떻게 해결할 수 있습니까?

업데이트 : 나는 이것이 너무 현지화되었다는 것을 의미하지는 않지만 일부는 물었습니다. 아마도 일부 배경이 밝아 질 것입니다. 나는 3 년 전에 거대한 프로젝트 (200K LoC)를 배정 받았으며, 최근에 (1 년 전) 프로젝트에 추가 개발자가 추가되었는데, 그 중 일부는 아키텍처에 익숙하지 않은 사람들, 여전히 언어를 배우고있는 다른 사람들 (C #)입니다. 나는 일반적으로 제품의 전반적인 안정성에 대해 대답해야하며 코드베이스의 핵심 아키텍처 부분이 놀랍게 변경 될 때 특히 긴장합니다. 이 습관은 처음에 다른 개발자의 기여에 대해 낙관적이기 때문에 생겨 났지만 몇 주 후에 발견되지 않을 심각한 문제를 일으켜 너무 많은 실수를 저지르고 불안정한 코드를 작성하기 위해 손가락이 나에게 지적되었습니다. 종종 이러한 "


3
분명히 개발자는 타이어를 충분히 펌핑하지 않습니다. 목표 입찰자를 FxCop 또는 이와 유사한 것으로 교체하고 체크인 할 수 없도록 해당 표준을 자동으로 시행하십시오.
Jon Raynor

2
단점 : 그것은 당신의 일이 아닙니다. 이 사람들은 스스로 목표를 달성해야합니다.
Robert Harvey

10
개발자로서 나는 내가하는 모든 변경이 작업을 수행하는 다른 개발자가이 화나는을 찾을 것이며, 버그가 재 도입하는 경우 / 결과로 도입 한 후 그 완전히 받아 들일 수없는
Ryathal

4
@Ryathal : 상점은 코드 표준을 시행해야합니다. 코드는 일반적으로 전체 팀이 소유하므로 사람들이 코드를 변경하지 않으려면 먼저 코드를 올바르게 작성해야합니다.
Robert Harvey

1
@RobertHarvey는 표준을 강조하는 것이 중요합니다. "옳은"에 대한 그의 견해를 조용히 집행하는 악의적 인 개발자는 다른 문제이며, 후자의 경우 인 것 같습니다.
Ryathal

답변:


52

당신이하고있는 일은 개발자에게 피드백을 제공하는 대신 코드 검토에서 제안 할 모든 변경 사항을 작성한다는 점을 제외하고는 기본적으로 코드 검토와 같습니다. 코드 품질 문제 및 명백한 버그에 대해 원래 개발자에게 피드백을 제공하고 원래 개발자에게 수정을 요청하는 실제 코드 검토를 수행하는 것이 훨씬 나을 것입니다. 이를 통해 코드 품질은 향상되지만 개발자는 원래 코드와 그 함정에 더 친숙해지고 향후 코드 변경을 개선하는 데 도움이됩니다. 또한 버그가 자동으로 발생하거나 다른 개발자가 자신의 등에 대해 이야기하고 있다고 생각할 때 "헤어 풀링 분노"를 유발하는 단점이 없습니다.


4
큰 +1. 코드 리뷰는 팀을 구성하는 데 도움이되고 그가 설명하는 "목표 경향"은 사람들을 잘못된 길로 인도 할 수있는 것처럼 보입니다.
Doug T.

2
이. 실제 코드 검토는 여기에서 훨씬 더 나은 길입니다. 당신이 말했듯이 두 가지 큰 단점은 개발자가 문제를 보여주기 때문에 응용 프로그램 아키텍처를 더 빨리 배우는 것입니다. 두 번째는 새로운 코드 작성을 완전히 이해하지 못하기 때문에 버그가 발생하지 않는다는 것입니다. 이 질문에 대한 완벽한 답변.
Mike Cellini

2
통찰력에 대한 훌륭한 답변과 감사. 이 질문의 사본과 관리자에게 겸손한 태도를 취하면 코드 검토가 팀에 도움이되고 "목표 변경"의 필요성이 줄어들 것이라고 확신 할 수 있습니다.
Kevin McCormick

1
동의했다. 묻지 않고 다른 사람들의 코드를 다루지 마십시오. 그런 식으로 나쁜 버그를 얻을 수 있습니다. 나는 목표를 잡는 버그를 수정했으며 유쾌하지 않습니다. 코드 견고성이 염려되면 단위 테스트를 작성하십시오.
Paul Nathan

2
"실제"코드 검토로 전환하지 않더라도 다른 사람과 대화를 나눌 때 왜 특정 작업을 수행했는지, 왜 다른 방법으로 수행하지 않았는지 묻는 것도 동일한 방법으로 많은 것을 달성 할 수있는 좋은 방법입니다 목표. +1
TehShrike

14

솔직히 IMHO, 이것은 끔찍한 아이디어입니다.

나는 그것이 아니라면, 사기가 거터에 떨어질 것으로 기대합니다.

당신에게 공정하게, 당신은 이것을 인정합니다.

동료 코드 검토는 훌륭합니다. "them vs us"시나리오가 아니라 개발자에게 모든 수준을 한 단계로 올려 놓습니다. (관리 / 리드 인 곳).

다른 개발자보다 더 주목해야 할 개발자가있을 수 있지만 모든 코드가 먼저 사용자에게 전달되도록하는 담요는 말도 안됩니다.

그리고 당신이 얼마나 잘한다고 생각하더라도, 당신이 틀렸거나 "니트 피킹 (nit picking)"할 때가있을 것이며, 이것은 상황을 더욱 악화시킬 것입니다.


관리자는 아마도 코드를 더 악화시킬 가능성이 높습니다.
Andy

5

관리자 인 경우이 문제를 해결하십시오.

  • 팀과 함께 코드 표준 및 관행을 검토하고 코딩 표준의 사본을 전달하십시오.
  • 준수해야 할 표준과 관행을 강화하기 위해 정기적으로 피어 검토 코드
  • 개발자가 표준을 따르도록 자동화 도구를 사용하여 니트 피킹 / 포맷 적용
  • 표준을 따르기를 거부하는 나쁜 팀원을 제거하십시오
  • 골키퍼가되는 것을 그만두십시오

당신의 의도는 좋지만 구현은 끔찍하며 다른 사람들이 지적했듯이 팀원들 사이에 사기와 저격을 유발할 것입니다.

프로젝트에 시작해야 할 표준이없는 경우 스위치를 뒤집는 대신 새로운 표준을 단계적으로 완화하십시오.


3

나쁜 주주.

저는 개발 관리자는 아니지만 개발자라면 결함이나 기능의 일부가 아닌 코드를 개발자가 만지기를 원하지 않습니다. 기간. 다른 사람의 코드에 문제가있는 경우 모든 수단는 개발자 (들) 책임의 관심을 가져 그때까지,하지만 하지 않습니다 그냥 다이빙을하고 (당신이 다른 개발자와 조정하지 특히, 스스로 문제를 해결 s) 먼저.

정리 작업은 팀이 공식 코드를 검토 한 후 해당 작업이 할당 된 개발자 만 수행해야합니다.

이니셔티브는 일반적으로 좋지만 때로는 엉덩이에 물릴 수 있습니다. 당신은 무엇에 어떤 버그 소개하면 작업 코드를, 당신은 신속하게 다른 진로를 선택 거라고 희망 할 수있다.

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