태그 보관물: knowledge-transfer

knowledge-transfer

오래된 프로그래머가 사라졌습니다. 다른 프로그래머를 고용하려고합니다. 어떻게 접근합니까? [닫은]

1 년 동안 WordPressBuddyPress를 사용하여 소셜 네트워크 프로젝트에 참여한 후 프로그래머는 일주일에 한 번 급여를 받더라도 전체 기간 동안 사라져 버렸습니다. 예, 이메일 추적기를 사용하여 확인한 후 내 이메일을 여는 것을 보았지만 그는 응답하지 않습니다. 그가 또 다른 직업을 구한 것 같습니다. 왜 그가 그렇게 말할 수 없는지 궁금합니다. 그리고 나는 그에게하지 않은 일에 대해 선불 급여를 지불하기까지했습니다.

문제는 그가 코딩 한 대부분의 기능에 대한 완전한 문서를 요구하지 않았다는 것입니다. 그리고이 1 년 이상의 기간 동안 많은 기능이 있었고 일부는 여전히 해결하지 못한 버그가있었습니다. 이제 모든 것이 혼란스러워 보입니다.

가장 먼저해야 할 일은 무엇입니까? 어떻게 진행합니까?

가장 먼저해야 할 일은 다른 프로그래머를 얻는 것 같지만 모든 프로그래머가 문제없이 모든 기능을 수행 할 수 있도록 모든 현재 코드를 문서화하여 오른쪽에서 시작하고 싶습니다.

그게 내가 먼저해야합니까? 그렇다면 어떻게해야합니까?

이와 같은 표준 문서 유형은 무엇입니까? 모든 코드에 대한 문서를 작성하고 버그를 수정하거나 문서가 실제로 중요하지 않은 프로그래머를 구할 수 있습니까?

또한 다른 “개인”프로그래머를 얻는 것이 더 좋거나 프로그래머를 고용 한 회사를 확보하여 내 프로젝트에 할당 된 프로그래머가 사라지면 다른 사람이 내 개입없이 그를 대신 할 수 있다고 생각하십니까? 나는 이것이 처음에 취해야했던 접근법이라고 생각합니다.



답변

우리가 의견에서 얻은 상호 작용을 바탕으로, 개인적인 이유로 인해 개발자를 멀리하지 않았다는 가정을하겠습니다. 그러나 이러한 대화를 바탕으로이 좌절은 여전히 ​​고용 관리자의 책임이라고 생각합니다. 언급했듯이 개발자에게는 전혀 경험이 없지만 개발자를 고용하는 방법을 어떻게 결정합니까?

당신이 최선을 다한 것처럼 들리지만, 당신은이 프로젝트의 규모를 감당할 수 없었던 누군가를 고용했고, 그 아래 부서진 기초를 쌓아서 떠났습니다. 안타깝게도 개발자와 기업가의 차이점은 전자가 시간당 / 봉급을 받는다는 것입니다. 그는 일한 시간 동안 돈을 받고 더 이상 돈을받지 않기로 결심했을 때 떠났다. 당신이 할 수있는 일은 없습니다.

그래서 지금 무엇? 사람들을 프로세스로 대체하는 길을 시작한 것 같습니다. 문서 만 충분히 가지고 있다면 사람들은 떠날 수 있고 다른 사람들은 그만 둔 곳을 찾을 수 있습니다. 작동하지 않는 IMO 및 작동하는 경우 신뢰할 수있는 영구 직원으로 구성된 팀보다 훨씬 비쌉니다. 지난 30 년 동안 다양한 회사의 경영진이 사람들을 충분한 문서 (마지막 직업 포함)로 교체하려고 시도했으며 매번 실패했습니다. 그렇기 때문에 나는 직업을 바꾸기로 결정했고 지금은 구식이며 정확한 문서가 남아 있지 않지만 새로운 스타트 업에서 인생의 시간을 보내고 있습니다.

내가 당신이라면 내가 할 일은이 프로젝트를 집어 들고 완성하기에 충분한 기술과 경험을 가진 적절한 사람을 찾으려고 노력하는 것입니다. 여기에는 코딩 기술뿐만 아니라 기본 프로젝트 관리뿐만 아니라 디자인, 아키텍처도 포함됩니다. 그가 어떻게 일을하는지 또는 얼마나 많은 문서를 작성해야하는지 정의하려고하지 마십시오. 올바른 사람을 찾는 데 집중하고 그에 따라 지불 할 준비를하십시오. 당신이 그를 찾을 때, 당신의 역할이 그를 지원하고 감시 / 미시 관리가 아닌 그의 길에서 장애물을 제거하는 것임을 확인하십시오. 나는 당신이 이전에 그렇게했음을 암시하지는 않지만 많은 관리자들이 그렇게하는 경향이 있다는 것을 알고 있습니다.

더 많은 소프트웨어 엔지니어링 배경을 가진 다른 기업가와 대화하십시오. 이 포럼을 읽고 예상 고용인에게 물어볼 일련의 질문을 생각해보십시오. 문제를 제시하고 접근법이 무엇인지 물어보십시오. 그가 올바른 사람이라면 (그리고이 페이지를 보지 않았다고 가정하면) 복구를 시작할 때 회사에서해야 할 일에 관해 다른 사람들이 이미 제안한 많은 것들을 제안 할 수 있어야합니다. 고용 된 시점부터 v1.0이 출시 될 시점까지 계획을 정의하도록 요청하십시오. 그는 어떻게 당신을 거기에 데려다 줄 것입니다. 그러한 사람을 인터뷰하는 데 도움을 요청하십시오.

내 생각 중 몇 가지 : 버그 추적은 필수입니다 (Jira는 최대 10 명으로 구성된 팀의 경우 $ 10). 소스 제어는 필수입니다 (git은 무료입니다. perforce는 땅콩을 최대 5 명 정도의 사람들에게 제공합니다). 코드는 문서입니다. 귀하의 서면 단어 문서가 아닙니다. 그는 코드를 검토하고 구할 수있는 것을 유지해야합니다. 나머지는 버리고 유지 관리 가능하고 읽기 쉬운 코드 작성에 중점을 둡니다. 소수의 고급, 소수 페이지 디자인 문서에 대한 문서를 저장하십시오. 작업중인 기술을 알아야합니다. 좋은 의도를 가진 사람을 고용하지 마십시오. 당신은 그들에게 당신의 시간에 배울 여유가 없습니다. 그들이 수행 한 다른 프로젝트에 대해 물어보십시오 (불행히도 당신이나 당신이 찾은 누군가가 기술적 측면을 따라야 할 수도 있습니다). 당신은 충분한 경험을 가진 사람을 찾고 있지만 동시에 그 흥분의 불꽃이 타 버린만큼 너무 많이는 아닙니다. 굶주린 사람을 찾아 영향을 미치십시오. 그가 제안하거나 따르는 방법론을 통해 정기적 (1 주 또는 2 주) 단위로 작업을보고 즉각적인 피드백을 제공 할 수 있습니다. 정확히 7.4 개월 안에 준비 될 것이라고 말한 사람은 고용하지 마십시오. 완료되면 알려 드리겠습니다.

행운을 빕니다


답변

이것은 이상한 상황이며, 당신이 전체 이야기를 말하지 않을 것이라고 확신합니다. 나는 많은 사람들과 함께 일했는데, 그 중 일부는 여러 가지 이유로 떠났다.

그러나 그것은 문제가되지 않습니다. 적어도 더 이상은 아닙니다. 당신은 당신의 실수로부터 배우고 미래에 그것을 반복하지 않도록 노력해야합니다. 그리고 네, 50 %가 떠나는 당신의 잘못이라고 강력히 제안합니다.

현재 문제를 해결하는 방법 :

  1. 프로그래머에게 문의하십시오. 그는 귀하의 이메일을 읽습니다-가장 중요한 버그를 문서화 / 수정하는 데 돈을 제공하십시오. 다른 누구도 그보다 더 빨리 고칠 수 없습니다. 작동하지 않습니까? 그가 일하는 곳을 찾고 해당 회사에 연락하여 이야기를 들려보십시오. 좋은 회사는 그들에게 똑같이 할 수있는 사람을 고용하지 않을 것입니다. 적어도 그들은 그에게 문서를 완성하라고 지시 할 것입니다.

    참고 : 당신은 그 사람을 다시 원하지 않습니다, 당신은 완성 된 문서가 필요합니다

  2. 1 년 분량의 일이 무효가 될 수 있도록 준비하십시오. 당신이 결과를 요구했을 때 도망 쳤을 수도 있고, 그가 그 능력을 전달할 수 없다는 것을 알았습니다. 코드에 해킹, 불완전한 구현 및 전반적인 품질 저하가 발생할 수 있습니다. 그가 돌아 오더라도-아마 제대로 할 기술이나 시간이 없을 것입니다.

  3. 다른 사람을 찾으십시오. 그는 동일한 기술 (프로그래밍 언어, 프레임 워크 등)을 알아야합니다. 코드 품질이 좋으면 계속해서 리팩토링 할 수 있습니다. 그렇습니다. 리팩토링은 새로운 기능 구현없이 시간이 걸리지 만 코드를 유지 관리 할 수있게 해주므로 필요한 것입니다. 또한, 잘못된 코드를 리팩터링 할 수있는 사람은 정말 훌륭한 프로그래머입니다.

    참고 : 선불로 돈을 지불하는 것은 바보입니다. 급여의 전체 아이디어는 수행 한 작업에 대한 비용을 지불하는 것입니다. 약속이 아닙니다 🙂

  4. 목록을 작성하십시오. 계획을 세우는 것이 최선의 이익입니다. 한 번 읽은 기술 사양을 통해 새로운 프로그래머는 작업과 이정표를 이해할 수 있습니다. 최소한 세 가지 중요한 서류가 있어야합니다.

    • 프로젝트에 대한 전반적인 설명-프로그래머가 아닌 사람도 프로젝트의 내용을 알 수있는 문서입니다.

    • 타임 라인-어떤 부분과 언제 준비가 되겠습니까? 이미 무엇을 했습니까?

    • 기술 사양-이것은 긴 것입니다. 프로그래머가 읽고 싶은 문서입니다. 논리적 부분으로 분리하고 해당 특정 부분의 기능과 워크 플로우를 최대한 자세히 설명하십시오.

회사와의 협력은 그다지 좋지 않습니다. 당신의 기회는 나아지지 않을 것입니다. 한 명의 프로그래머 만 고용하면 10 회 초과 지불 할 수 있습니다. 소규모 팀이 있다면 3-5 명이라고 말하고 팀 리더가 되려는 프로그래머를 고용하십시오. 그는 팀을 훨씬 더 잘 관리 할 것입니다.


답변

나중에 다른 프로그래머가 코드를 문서화합니까? 당신이 그 길을 택해서는 안된다고 말하는 것은 단지 내 자신의 경험과 의견입니다.

해당 코드베이스의 품질에 대한 자세한 지식이 없다면, 가장 좋은 방법은 버그를 수정하고 필요한 유지 보수를하고 수정하기 위해 새로운 프로그래머를 고용하는 것입니다.

이러한 의견은 요구 사항이 충족되어야하기 때문에 가능한 변경 (추가 또는 변경)의 핵심 포인트가됩니다. 이것은 일종의 요구 사항 사양을 작성해야 함을 의미합니다. 이것은 문서입니다.

전체 프로젝트를 유지 관리하는 지점으로 연결됩니다. 현재 프로그램 요구 사항이나 대략적인 기능 설명서가 존재하는지 여부에 대해서는 질문하지 않았지만 지금 바로 집중해야합니다.

이 시점에서 문서가 전혀없는 경우, 그 공백을 채우는 것이 더 달려 있습니다. 애플리케이션을 리버스 엔지니어링하고 기적적으로 문서를 작성하기 위해 프로그래머를 고용 할 수 없습니다 . 프로그램이 무엇을 원하는지 “설명”해야합니다 (이미 프로그래밍 된 내용을 다시 설명하는 경우에도).

해당 문서를 요구 사항 또는 기능 사양의 형태로 작성하면 문서를 넘겨서 작업을 시작할 수 있으므로 새 프로그래머를 고용하면 더 나은 결과를 얻을 수 있습니다.

또한 소스 코드에서 문서를 생성하는 많은 프로그램이 있으며, 이는 실제 소스 코드를 설명하는 골격을 생성하는 좋은 방법입니다 (기술 사양의 영역에 있음). 기능 사양에 지정된 기능. 요구 사항 사양에 지정된 요구 사항의 기능을 지정한다.

그렇습니다. 제 생각은 버그를 고치기 위해 프로그래머를 고용하는 것입니다. 그가 동의 한 버그를 수정 한 후에는 수정해야한다고 문서화 측면을 다른 계약으로 논의 할 수 있습니다. 운이 좋으면 약간의 경험이 있고 다음 단계에서 수행해야 할 프로그래머를 고용했습니다.


답변

다음은 문제에 접근하는 방법입니다.

  • 도메인 지식이 있습니다. 현재 웹 사이트에서 사용할 수있는 기능과 향후 추가 할 기능을 알고 있으며 사용자가보고 한 몇 가지 버그를 나열 할 수도 있습니다.

  • 이 코드 더미가 거기에 있고 구석에 남겨져 있습니다. 버그가있을 수 있지만 사이트에 활성 사용자가 있으므로 여전히 가치를 제공합니다. 따라서 완전한 재 작성은 실수 IMO 일 것입니다.

프로그래머가 떠날 때 도메인 전문 지식과 코드 사이의 다리가 끊어졌습니다. 코드베이스를 요구 사항과 다시 동기화하고 향후 업데이트를 개발할 수 있도록 코드를 다시 빌드해야합니다.

문제는 그 다리가 완전히 문서화 될 수는 없다는 것입니다. 소프트웨어는 기술적 인만큼 인간적인 문제입니다. 새로운 프로그래머에게 당신이 기대하는 것을 자세하게 설명하지 않으면 코드만으로 그것을 추론하는 데 어려움을 겪을 것입니다. 이전 프로그래머가 암호화되지 않고 문서화가 잘 안되고 테스트가 잘 안된 코드를 작성했다면 더욱 그렇습니다. 또한 새로운 프로그래머와 긴밀한 협력 관계를 유지하지 않고 코드가 요구 사항과 일치하는지 확인하는 자동화 된 연속 방법을 찾아야합니다. 즉, 브리지를보다 견고하게 만들려면 문제가 반복 될 것입니다.

  • 도메인 지식 처리 세션을 위해 새로운 프로그래머와 정기적으로 (실제로) 앉으십시오. 이러한 각 세션 중에 제품의 작은 부분에 대한 사양을 함께 작성하십시오. 단일 웹 페이지 일 수 있으며 기능 일 수 있습니다. 이들을 실행 가능한 사양 (la -behavior-Driven Development )으로 만들면 브리지가 계속 작동하고 문제가있을 때 경고를받을 수 있기 때문에 브리지 작동에 대한 신뢰도가 높아집니다. 또한 개발자의 삶을 편하게 해줄 것입니다.

    세션이 끝나면 개발자는 작업으로 돌아와서 현재 코드가 사양을 준수하는지 확인하는 하위 수준 테스트를 작성할 수 있습니다. 그것이 준수하지 않으면 프로그래머는 그것을 고치는 데 필요한 모든 것을 갖습니다. 그가 가질 수있는 모든 질문에 대한 정보를 제공하는 것도 중요합니다.

  • 프로젝트에서 프로그래머와 프로그래머 사이의 긴밀하고 지속적인 협업을 유지하고 이들 사이에서도 사실인지 확인하십시오. 프로젝트 관련된 기능 및 기술 문화를 유지하고 현재와 같은 문제를 피하려면이 기능이 필요합니다. 물론 프로젝트를 진행하는 2 명 이상의 개발자뿐만 아니라 그들이 작성한 모든 것에 대한 지식을 서로 공유해야합니다. 따라서 다른 하나가 없으면 장애 조치로 작동 할 수 있습니다. 쌍 프로그래밍코드 검토 와 같은 기술 은이를 달성하기위한 좋은 방법입니다.

답변

모든 사람의 말에 덧붙여서

이전 프로그래머가 가격으로도 코드를 문서화 할 수없는 경우 다른 사람이 코드를 더 잘 문서화 할 것으로 기대하지 마십시오. 다음은 새로운 프로그래머의 생산성을 높이기 위해 지금 할 수있는 일에 대한 몇 가지 옵션입니다.

  1. 버그 데이터베이스를 확보하고 발견 한 모든 버그를 입력하십시오. 프로그래머의 우선 순위 목록입니다. 잘 문서화하고 가능한 한 자세하게 설명하십시오 (원본 파일 / 근본 원인, 수행 할 작업 및 수행 할 작업). Bugzilla , RedmineJIRA 와 같은 무료 버그 추적 소프트웨어가 많이 있습니다 . 원하는 것을 자유롭게 사용하십시오.
  2. 프로젝트의 사양서를 작성하십시오. 이렇게하면 버그가 해결 된 후 새로운 프로그래머에게 방향이 제공됩니다. 사양 작성에 대한 Joel의 안내서를 확인할 수 있습니다 .
  3. 프로젝트 일정 또는 타임 라인을 만듭니다. 그들은 마감일과 이정표를 가지고 있어야합니다. 미리 정해진 비용을 지불하기보다는 그들이 지불 한 작업에 대한 비용을 지불해야합니다.

이제 그 방법이 끝났으므로 프로그래머를 찾을 수 있습니다. Creative Magic이 말했듯이, 회사에 일자리를 아웃소싱하면 재앙이 발생하거나 가격이 무한대로 넘어갈 수 있습니다.

이번에는 프로그래머를 고용 할 때 버스 팩터를 올바르게 계획하십시오 . 사람들이왔다 갔다 할 수있는 일이 없으므로 이번에는 최악의 상황에 대비하여 두 명의 프로그래머를 얻거나 Uooo가 말했듯이 한 명의 프로그래머와 한 명의 테스터를 얻습니다.

이제 프로그래머가 상점에 들어 오면 이전 코드를 문서화하도록 요구하는 대신 코드를 문서화하도록 요구할 수 있습니다. 실제로는 잊어 버리십시오.

새로운 프로그래머를 구할 때 고려해야 할 다른 사항은 소스 제어 및 자동화 된 테스트를 알고 있어야합니다. 또한 가능한 한 많은 도움 을 받아 Joel Test 를 확인하려고 노력 하십시오.


답변

따라서 유일하게 프로그래머가 버스맞았 으므로 이제 교체해야합니다.

계약에 따라 전직 프로그래머를 고소하거나 그와 관련된 문제를 찾을 수 있습니다. 그가 돌아 오지 않는다고 가정하면 도움이되지 않습니다.

  • 제품을 완성 시키려면 기존 시스템을 유지 관리하고 개발 한 경험이있는 프로그래머를 검색하십시오. 프로그래머에게 어떤 순서로 무엇을해야하는지 알려주는 데 집중하지 않겠습니다. 필요할 때마다 문서와 단위 테스트를 작성하는 전문가를 고용하십시오.
  • 새로운 프로그래머가
    자신의 작업에 필요한 모든 것 ( 요구 사항 사양, 강력한 작업 기계 등)을 확보 할 수 있습니다. 전문 프로그래머가 필요하므로 전문적인 작업 환경을 제공하십시오.

또한 앞으로 이러한 종류의 어려운 상황을 더 쉽게하기 위해 두 번째 개발자를 고용하는 것을 고려하십시오. 테스터는 품질 보증에도 유용합니다.


답변