문제는 이것이며 세부 사항은 다음과 같습니다. 프로그래머로서 그를 내 편으로 데려다 줄 말이 있습니까?
나는 이것에 대한 양쪽에 대한 유효한 논증을 듣고 싶지만 주로 그와 대화하는 방법에 대한 제안.
제 상황은 이것입니다. 저는 학위 과정에서 팀 프로젝트를 진행하고 있으며 중간 크기의 웹 사이트를 대학의 프로토 타입으로 구축하고 있습니다. 모두 그룹에서 동등한 것으로 간주되며 임명 된 리더가 없으므로이 문제에 대한 답은 “풀 순위”가 될 수 없습니다.
모두 평등하지만, 회원들 사이에는 지식에 큰 차이가 있습니다. 문제의 팀원과 저는 유능한 개발자이지만 업계 경험이 없습니다. 나머지 3 명은 능력이 떨어지고 2 명은 완전히 개발을 거부했습니다. 세 사람 모두 지식 부족으로 상황에 대한 언급을 거부했다.
그룹으로서 우리는 웹 사이트 구현에 어떤 기술을 사용할 것인지 결정하려고합니다. 특히 PHP 프레임 워크 (Code Igniter)를 사용할지 여부입니다.
나는 호의적으로 논쟁하고 있습니다.
- 바퀴를 재발 명하지 않음
- 잘 작성되고 테스트 된 코드 기반
- 가는 중
- 개발 속도
- 건전하고 유지 관리 가능한 디자인 패턴 및 모범 사례
그는 다음과 같은 방식으로 일하는 것을 선호한다고 주장합니다.
- 필요할 때 “라이브러리”파일에 맞춤형 일회성 함수 작성
- 데이터에 액세스하고 페이지에 해당 데이터를 렌더링하는 기능, 세션으로 가져 오기 / 설정 및 데이터 가져 오기 / 포스트 등
- 페이지 당 1 개의 파일이 있습니다 (제어, 프리젠 테이션 및 데이터간에 우려가 분리되지 않음)
그의 사용에 반대하는 그의 이유는 대부분 그가 요점을 볼 수 없다는 점에 근거하고 있습니다. 그는 이미 모든 것을 할 수 있습니다. 프레임 워크는 그것을 바꾸지 않고 프레임 워크를 배워야하기 때문에 어렵게 만듭니다. 그는 개인적으로 작성하지 않은 코드를 사용하고 싶지 않습니다.
그는 또한 프로젝트가 프로토 타입 일 뿐이며 유지 관리되지 않기 때문에 코드베이스의 품질에는 문제가되지 않는다고 말했다. 나에게 그것은 유지 불가능한 코드를 작성하는 데 변명의 여지 가 없다 .
그가 왜 그런 주장을하는지 알 수 있지만, 그의 “유지 보수성에 대한 관심 부족”과 “좋은 디자인에 대한 무시”, 또는 심지어 관심의 분리에 대한 문제를 안고 있습니다. 그러나, 그는 그가 디자인 패턴을 연구 한 적이 없다고 생각합니다. 그래서 그의 방법이 왜 유지 될 수 없는지 입증하는 것이 얼마나 효과적인지 모르겠습니다.
이 프로젝트를 진행하고 싶지만 수년 동안 배운 모든 것을 고려하지 않고는하고 싶지 않습니다. 앞서 말했듯이 여기에서 순위를 끌어 올릴 가능성도없고 다른 팀원도 기꺼이 참여할 의향이 없습니다. 그냥 물러서서해야할까요? 더 잘 알기에는 너무 고집스럽고 경험이 없습니까? 아니면 내가 여기서 완고한 사람입니까?
TL; DR 미경험의 팀원이 완고한 데 어떻게 이길 수 있습니까?
답변
당신은 그것에 대해 이야기 할 수 없을 것입니다. 이를 독촉 크루거 효과 라고합니다 . 그는 자신이 모르는 것을 알기에 너무 무지하며, 자신이 유리하다고 생각하는 것을 잃기를 두려워합니다.
합의에 도달 할 수없는 경우 대신 타협에 도달해야합니다. 어쩌면 작업을 분할하여 프레임 워크를 배울 필요가 최소화 될 수 있습니다. 어쩌면 몇 주 동안 각자의 방식으로 “디자인 오프”를 한 다음 팀이 어느 쪽이 가장 적합한 지 투표 할 수 있습니다. 어쩌면 당신은 후원 교수 또는 고객이 넥타이를 해결하는 사람을 참여시킬 수 있습니다.
답변
당신에게 유리한 한 가지 주장은 지식의 재사용 가능성입니다. CodeIgniter와 같이 널리 사용되고 널리 사용되는 프레임 워크를 배우는 모든 팀원은 다음 프로젝트에서 지식을 재사용 할 수 있습니다. 우연한 위험에 대한 지식인 반면 독점 “라이브러리”는 재사용 할 수 없습니다. 이 프로젝트에 대해 유용하고 재사용 가능한 지식을 얻는 것을 선호하기 때문에 다른 팀 구성원과 잘 어울릴 수 있습니다.
또 다른 논거는 개발 / 유지 보수 비용의 구체적인 측정 일 수 있습니다. CodeIgniter에 정통한 개발자가 자신의 독점 기능을 직접 작성하는 동료보다 빠르게 개발할 수 있다고 생각합니다. CodeIgniter를 사용하면 자신과 같은 웹 페이지를 작성하고 완료 시간을 측정하여이를 입증 할 수 있습니다. 그런 다음 페이지에 대한 수정 / 확장 세트를 작성하여 완료 시간을 다시 측정하십시오. 물론 사양은 중립 입장에서 싸울 수 있도록 두 사람과 독립적 인 사람이 준비해야합니다.
언급했듯이 또 하나는 코드 품질입니다. 웹 페이지가 준비되면 각각에 대해 동일한 승인 테스트를 실행하고 버그 밀도를 비교하십시오.
물론, 당신이 시간 압력을 받고있을 때, 그러한 측정을 중단하고 수행 할 가능성이 없을 수 있습니다. 따라서이 딜레마에 대한 빠른 해결책을 원할 것입니다. 다른 팀원들에게 확신을 심어주십시오 (예 : 다음 게시물에 대한 답변을 여기에서 읽으십시오 :-). 결국 그가 확신 할 수 없다면, CodeIgniter를 사용하여 프로젝트를 두 부분으로 나눌 수 있습니다. 최선을 다해 자신의 역할에 집중하고 그가 원하는 것은 무엇이든 할 수있게하십시오. 결과는 아마도 스스로를 말할 것입니다.
답변
다른 3 명의 팀원을 참여시켜야한다고 생각합니다. 당신은 그들에게 당신의 주장을 제시하고 그들이 이해할 수 있도록 설명해야합니다. 하루가 끝나면이 코드베이스로 작업해야합니다. 그리고 모두가 평등하다면, 그들이 일하고 싶은 것에 대해 이야기해야합니다.
각 솔루션이 각각의 솔루션의 이점을 설명하고 다른 팀원에게 왜 그것이 최선의 방법이라고 생각하는지 보여줄 수있는 좋은 방법이라고 생각합니다. 그런 다음 결정하게하십시오. 그중 3 개가 있으므로 타이 브레이커가됩니다.
지적해야 할 한 가지는 이것이 Sr. 프로젝트이고 다른 팀원이 다른 경험이없는 경우이 프로젝트는 잠재적 고용주에게 할 수있는 작업을 반영해야한다는 것입니다. 제대로하면 인터뷰에서 좋은 대화가 될 수 있습니다. 나는 새로운 졸업생들에게 그들의 시니어 프로젝트의 개요와 그것이 어떻게 설계되고 개발되었는지를 묻는 것을 알고 있습니다.
그들이 다른 사람의 접근 방식과 함께 가면, 당신은 그것을 빨아 들여야 할 것입니다. 그러나 희망을 포기하지 마십시오. 그가 쓰고있는 혼돈이 모든 것에 영향을 미치지 않도록 좋은 디자인을 생각해보십시오. 시간이 있다면 코드를 정리하고 그의 물건을 리팩터링하고 매번 바퀴를 다시 만들 필요가 없다는 것을 보여주십시오.
답변
나는 대학이 샌드 박스와 같다고 생각합니다. 사용자가 수행하는 대부분의 작업은 배포에 사용되지 않습니다. 따라서 편안하게 실험하고 탈출 할 수있는 더 많은 자유를 제공합니다. 실패는 큰 영향을 미치지 않기 때문에 새로운 것을 탐색하십시오. 또한 귀하의 상황에서 팀 구성원은 사전 지식을 가진 사람이 도움을 줄 수 있다는 이점이 있습니다.
경험이 풍부한 다른 팀원은 새로운 것을 배우고 싶지 않다면 대학에 오지 않아도됩니다. 이것은 새로운 것을 배우고 도구 상자에 추가 할 수있는 좋은 기회입니다.
그리고 경험이 부족한 팀원의 경우, 이력서에서 CodeIgniter와 같은 프레임 워크 (실제로 이력서에서이를 정당화 할 수있는 지식)로 고용 / 채용 가능성이 높아집니다.