처음부터 응용 프로그램을 디자인하는 데 주니어 개발자를 참여시키는 가장 좋은 방법은 무엇입니까? [닫은]


9

우리는 3 명의 개발자 (2 명의 숙련 된 개발자와 주니어)로 구성된 팀입니다.

우리는 새로운 프로젝트를 시작했습니다. 우리는 응용 프로그램을 설계하고 올바른 아키텍처를 선택하기 위해 노력을 기울였으며 이제 첫 번째 코드 줄을 작성하고 있습니다. 우리는 그 핵심을 작성하고 있으며, 전체 응용 프로그램의 기초가 될 것입니다.

이것은 쉬운 응용 프로그램이 아닙니다. 어려운 성능 요구 사항, 대규모 분산, 복잡한 엔터티 모델 등

우리는 모두 우리의 안락 지대, 특히 후배를 벗어났습니다. 그는 좋은 디자인을 미리 만들 경험이 없습니다. 저와 다른 개발자가 도움을 줄 수 있기 때문에 문제가 아닙니다. 우리는 멘토링과 팀 구축을 믿지만, 최선의 방법이 무엇인지 정확히 모릅니다. 즐거운 경험과 기술의 최대량을 배웁니다.

우리는 새로운 프로젝트에 주니어가 없다는 것을 깨달았고, 배우고 영감을주는 전체 코드 기반을 가지고 있었기 때문에 주니어 프로젝트가 더 쉬운 기존 프로젝트에서만 주니어를 가졌다는 것을 깨달았습니다. 그러나이 응용 프로그램에는 거의 코드가 없습니다. 우리는 방금 시작했다.

우리는 몇 가지 접근법을 생각하고있었습니다.

  • 며칠 동안 직접 시도한 다음 코드와 함께 코드를 리팩터링하고 리팩터링하고 올바른 방향으로 코드를 조정 한 다음 반복합니다. => 모든 리팩터링에서 실수를 지적하기 때문에 재미있는 경험이 아닐 수도 있습니다. ;
  • 그와 프로그래밍을 우리 중 한 사람과 짝을 이루어야한다.
  • 견고한 디자인으로 각 모듈의 골격을 구축 한 다음 누락 된 조각을 추가하기 위해 모듈을 그에게 주도록하십시오. 전체 디자인이 아닙니다.

어떻게 든 디자인 외부에 남는 느낌이 들지 않고 경험에서 많은 것을 배우고 스스로 시도해 볼만큼 자신감을 얻도록 어떻게 그를 디자인에 참여시킬 수 있습니까?


5
(매우) 후배 팀원들에 대한 나의 경험은 리뷰 사이에 며칠이 너무 길다는 것입니다. 그들은 앞으로 나아갈 길을 찾지 않고 좋은 의도로 도망쳐 버렸습니다. 첫 달 동안의 오전과 오후 세션이 더 잘 작동했습니다. 그들이 발을 발견하고, 더 중요하게는 언제 도움을 요청해야하는지 알게되자, 우리는 빈도를 줄였습니다.
Michael Green

답변:


12

다음 지침을 따르는 것이 좋습니다.

  • 주니어 개발자를 디자인 회의에 참여시키고 그의 의견을 요청하십시오. 이것은 그가 높은 수준의 디자인을 스스로 할 준비가되어 있지 않더라도 큰 그림에 대해 생각하게 할 것입니다.
  • 주니어 개발자에게 할당 할 애플리케이션 모듈을 분리하여 명확하게 정의하십시오. 모듈의 입력 / 출력 및 기타 요구 사항을 서면으로 설명하십시오. 쉽게 테스트 할 수 없거나 아직 작성되지 않은 다른 모듈과 통합 된 경우에만 테스트 할 수있는 모듈을 할당하지 마십시오.
  • 아마도 주니어 개발자는 핵심 응용 프로그램을 코딩하는 것 이외의 방법으로 도움을 줄 수 있습니다. 예를 들어, 그는 테스트 코드를 작성할 수 있습니다. 훌륭한 테스트 스크립트를 작성하는 것은 좋은 테스트 스크립트를 작성하는 것이 아니라 프로젝트에 귀중한 기여를하고 주니어 개발자에게 프로젝트에 대한 확실한 이해를 제공합니다.

2
그들이 디자인에 앉아 있는지 확인하십시오. 그런 다음 자신의 기여가 전체적으로 적합한 부분과 그가 추가하는 가치를 이해할 것입니다. 그는 복잡성에 빠질 수 있지만 적어도 그가 어떤 바다에 있는지 알 것입니다!
Michael Green

1

나는 그 주니어 개발자가 어떤 영역을 개선하기를 원하는지에 달려 있다고 생각합니다. 내가 (매우) 쥬니어 였을 때 그들은 다음과 같은 특정한 제한된 물건을 만들어야하는 API를주었습니다.

  • 이 기능은 인원 테이블에서 N 명의 인원을 제공합니다
  • 이 기능은 직원의 ID가 주어지면 직원 통계를 제공합니다.

->

작업 : 직원 레코드를 클릭 할 때 자신의 통계를 보여주는 직원 목록이있는 페이지를 작성하십시오. 다음은 프로젝트에서 작성된 간단한 샘플 페이지입니다.

주어진 작업의 가장 중요한 측면은 주어진 리소스만으로 해결할 수 있으며 변경이 필요하지 않다는 것입니다.


0

세 가지 방법 모두 나에게 좋아 보인다. 실제로 동시에 10 가지의 민첩한 방법을 시도하면 곧 좋은 결과를 얻을 수있을 것입니다. 최소한 어떤 방법이 효과가 있고 어떤 방법이 효과가 없는지 알 수 있습니다 (어느 것이 가장 효과가 좋을지는 플레이어의 성격에 달려 있음).

켄트 벡 (Kent Beck)이 원래 설명한 과정에 따라 10 분마다 타이핑 / 사고 모자를 전환하는 공정을 고수하면 공정 프로그래밍 문제가 발생하지 않습니다.

디자인에 다른 사람들을 참여시키는 것과 관련하여 디자인 단계에서 일부 UML 모델을 사용하여 일부 디자인 문서를 작성하면 도움이됩니다. 그런 다음 다른 사람들 (주니어)은 증거를 읽고, 검토하고, 악마의 옹호자 역할을합니다. 독립적이고 훼손되지 않은 제 3 자의 이러한 역할은 예를 들어 탐색 적 테스트 (예 : 탐색 테스트)에 실제로 매우 유용 할 수 있습니다 .

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