사람들이 "네, 멀티 태스킹은 정상입니다"라고 말할 때 나는 완전히 동의하지 않습니다
정상 이 아닙니다 ! 개발자가 여러 프로젝트에서 멀티 태스킹을하는 것은 부자연 스럽습니다 (나중에 자세히 설명하겠습니다). 반면에 멀티 태스킹은 개발자들 사이에서 매우 일반적 입니다. 이것은 분명히 익숙해 져야 할 것입니다. 따라서 귀하의 질문에 대한 진정한 대답은 멀티 태스킹 방법 입니다.
우선, "당신은 훌륭한 직원"이기 때문에 단순히 운명을 받아들이지 말아야합니다. 즉, 처리 할 수있는 것보다 더 많은 작업을 수행해야합니다. 전혀 그렇지 않습니다. 다른 사람이 없기 때문에 사람들에게 여러 작업이 제공되는 경우가 있습니다. 때때로 관리자는 업무를 처리 할 수 없으므로 위임 하여 프로젝트 일정을 제대로 처리 할 수 없기 때문에 팀에 멀티 태스킹을 시행 합니다. 따라서 업무 의 일부 이거나 다른 사람이 무능 하기 때문에 멀티 태스킹을 요청 받았는지 확실히 확인해야합니다.. 어느 쪽이든, 당신은 그것이 수용 가능한지 아닌지를 스스로 판단 할 수 있습니다. [직장과 함께] 편안하지 않으면 직장을 구할 수있는 다른 장소가 있습니다. [개발자 인 귀하는 필수품입니다. 고용주는 이것을 알고 당신이 그것을 깨닫지 않기를기도합니다.]
이제 멀티 태스킹에 대해 사람들이 "예, 앞뒤로 전환하고 각 프로젝트에서 같은 양을하고 있는지 확인하십시오"라고 말하면 100 % 동의하지 않습니다. 미안하지만 그것은 매우 나쁜 조언입니다.
먼저 소프트웨어를 개발할 때 두뇌가 어떻게 작동하는지 알아야합니다 (다른 작업이 관련되어 있음을 알고 있지만 그에 중점을 두겠습니다). 먼저 "유선"을 가져와야합니다. 즉, 머리에 모든 것이 매핑 된 위치에 집중해야합니다. 모든 변수 및 메소드 이름, 코드의 워크 플로우, 객체 모델, 나란히 진행되는 스레드, 모든 것. "지역에"도착하는데 보통 15 분에서 20 분 정도 걸립니다.
그 상태에 도달하면 자전거를 타는 것처럼 실제로 비행하고 코드를 작성합니다. 당신이 중단되는 순간 당신은 그것을 모두 잃을 수 있습니다. 중단이 충분히 길면 (5 분, 10 분, 30 분) 해당 상태를 잃어 버리고 다시 시작해야합니다.
따라서 멀티 태스킹은 "영역"을 떠나 다른 것으로 이동해야하기 때문에 끔찍합니다. 끊임없이 전환한다면 새로운 작업 / 프로젝트로 변경할 때마다 영역에 다시 들어가기 위해 15-20 분을 잃을 필요가 있기 때문에 생산적이지 않다는 것을 의미합니다 (뇌를 천천히 녹이는 것은 말할 것도 없습니다).
멀티 스레딩과 같습니다. 어떤 시점에서 몇 사이클마다 스레드 컨텍스트를 전환하는 비용이 너무 높아 CPU가 실제 작업을 실행하는 것보다 컨텍스트 전환에 더 많은 시간을 소비하게됩니다.
이 문제에 대한 Joel Spolsky의 기사를 읽는 것이 좋습니다.
http://www.joelonsoftware.com/articles/fog0000000022.html
그래서 내 충고는 : 멀티 태스크가 일반적이기 때문에 멀티 태스크를 수행하는 방법을 배우십시오. 또한 편안하게 작업하십시오. 어떤 사람들은 멀티 태스킹을 할 때 다른 사람들보다 집중하는 데 더 많은 시간을 할애 할 수 있습니다. 그리고 그것도 괜찮습니다. 일반적인 것으로 간주되는 것이 일반적이기 때문에 아닙니다.
요엘은 이렇게 말했습니다.
사실,이 모든 것의 진정한 교훈은 사람들이 한 번에 여러 가지 작업을해서는 안된다는 것입니다. 그들이 무엇인지 알고 있는지 확인하십시오. 훌륭한 관리자는 사람들이 한 가지에 집중하고 실제로 달성 할 수 있도록 책임을 장애물 제거라고 생각합니다.