>  기사  >  백엔드 개발  >  프로그래머 작업 효율성에 대해

프로그래머 작업 효율성에 대해

WBOY
WBOY원래의
2016-07-25 08:52:571023검색
오늘 아침 저는 George Stocker의 "프로그래머의 작업 효율성을 파괴하는 방법"이라는 기사와 Joel Spolsky의 "A Shot and a Change of Place"라는 기사를 접했습니다. 이 두 블로그 게시물은 프로그래머 생산성 문제, 특히 생산성을 감소시키는 패턴에 대해 설명합니다. 그래서 생산성 향상에 대한 실제 경험을 공유하려고 생각했습니다.
열정
생산성을 높이는 첫 번째 비결은 매일 진행하는 프로젝트에 열정을 갖는 것입니다. 당신은 당신이 하고 싶은 프로젝트에 대해 진심으로 낙관적이어야 합니다. 지금부터 1년, 2년, 3년이 지나면 얼마나 멋질지 상상해 보세요. 몇 번이나 생각하는 시간을 가졌습니다. '안녕하세요 NDepend(내 프로젝트)가 지난 2년 동안 너무 많이 발전했습니다. 2년 전, 나는 이 모든 새로운 기능과 개선 사항이 공상 과학 소설일 것이라고 상상했습니다. 오늘날 그것은 현실이 되어 전 세계의 실제 사용자에게 제공되었습니다. 정말 멋지다!
인내와 믿음
그래서 열정뿐만 아니라 사랑과 인내도 필요합니다. 지난 X년간의 작업 성과를 측정하면서 한 번에 하나의 기능을 수행하고, 하나의 개선을 수행하고, 하나의 버그 수정을 수행하고, 한 줄의 코드를 작성하는 이러한 한 번에 하나씩의 생각이 나를 계속 발전시킨다는 것을 깨달았습니다. 과거의 모든 성공은 미래의 더 많은 성공을 낳습니다. 이보다 더 중요한 것은 없기 때문에 매시간 생산성을 높이도록 동기를 부여하십시오.
오늘은 하루 종일 귀찮은 버그를 처리하는 것 같았는데, 그렇게 멍청하지 않았다면 아마 30분 안에 고칠 수 있었을 거에요! 부담감은 전혀 없습니다. 과거에도 이런 일이 너무 많았습니다. 지난 몇 년 동안 제가 걸어온 길을 되돌아보면 이것이 제가 가고 싶은 길이라는 것을 이해합니다. 이것이 바로 자신감입니다.
지금 시작하세요
프로젝트의 핵심은 어디로 가야 할지 아는 것이어야 합니다. 단기(일, 주), 중기(개월), 장기(년). 단기적 의미는 내 코드 베이스가 우선순위 주석으로 가득 차 있으며 우선순위 5가 우선순위 4보다 더 긴급하다는 것입니다. 이는 매우 기본적인 할 일 목록 접근 방식처럼 들리지만 할 일 목록에는 강력한 이점이 있습니다. 프로그래밍 작업이 이루어져야 하는 곳에 실행 계획이 나타납니다. 따라서 실행 계획 작업을 시작하면 프로그래밍 우선 순위를 어디서 시작할지 파악하는 프로세스가 필요하지 않습니다. 즉시 시작되는(또는 즉시 시작되지 않는) 이러한 동작은 생산성을 저하시킵니다. 따라서 즉시 코드 작성을 시작하는 데 도움이 되는 모든 것은 생산성 자산입니다.
액션 계획의 또 다른 이점은 모든 계획이 완료되면 작업이 완료된다는 것입니다. 프로그래밍과 관련된 모든 작업(테스트 작성, 코드 검토, 검증 등)은 실행 계획에 정리될 수 있고 정리되어야 하므로 실행 계획은 더 이상 수행된 작업에 대한 단순한 정의가 아닙니다.
초점
물론 어느 시점에서는 행동 계획을 세우고 코드는 가장 가능성이 높은 위치로 크롤링해야 합니다. 일반적으로 이는 작업(제품 백로그 항목)에 대한 작업을 시작할 때 발생합니다. 이 시점에서 제품 백로그 항목은 제품 백로그 항목의 크기에 따라 우선순위를 갖는 (여러 개 또는 여러 개의) 우선순위 백로그 항목으로 변환됩니다. 고치는 데 한 시간이 걸리는 버그일 수도 있고, 개발하는 데 3개월이 걸리는 기능일 수도 있습니다.
한 번에 할 일의 우선순위 항목이 10개가 넘으면 안 됩니다. 생산성 향상을 위한 중요한 팁은 현재 하고 있는 일에 집중하는 것이기 때문입니다. 따라서 이 기능은 90개의 1급 우선순위 할일과 10개의 2급 우선순위 할일로 나누어서 90개의 1급 우선순위 할일 중 10개를 선택하여 완료할 수 있습니다. 현재 진행 중인 두 번째 우선순위 할 일이 너무 가치 있는 경우 세 번째 우선순위 할 일로 전환할 수 있습니다.
이렇게 하면 매일 아침 작업 공간에서 할 일 항목만 검색하면 무엇을 해야 할지 즉시 알 수 있습니다. 오늘 무엇을 해야할지 생각할 필요가 없습니다. 바로 시작하고 집중하세요.
목표
중기(개월) 목표와 장기(년) 목표를 상상해 보면 업무 열정과 일상 업무 효율성을 키울 수 있습니다. 이를 위해서는 두 개의 할 일 목록이 있어야 합니다. NDepend는 Visual Studio 릴리스와 밀접하게 연관되어 있으므로 스프린트 기간은 약 12~18개월입니다. 그래서 우리는 지금부터 다음 주요 버전을 출시하기까지 N개월 사이에 수행해야 할 작업에 대한 중간 목록을 가지고 있습니다. 중기 목록은 ROI(투자 수익, 개발 투자에 대한 기능 효율성 비율)와 각 향후 기능의 성능에 대한 좋은 의견을 제공하는 사용자 의견에 따라 결정됩니다. 스프린트 기간에 구속되지 않는 목록을 제외하고 장기 목록에도 동일하게 적용됩니다.
심리
지금까지 열정을 그대로 유지하는 것이 어떻게 생산성 향상으로 이어지는지 보여주는 몇 가지 프로젝트 관리 및 조직 경험을 강조했습니다. 그러나 열정, 인내, 정보, 시작, 집중, 목표 설정은 모두 심리학에 관한 것입니다. 다음은 생산성을 유지하기 위한 몇 가지 고전적인 심리학 관례입니다.
건강하고 행복한 삶을 사는 것은 물론 필수적입니다. 개인적으로 저는 프로그래밍 외에 친구, 가족, 아이들, 취미 등 내 삶에 다른 것들이 필요합니다. 매일 코드가 아닌 다른 일에 전념해야 하는 몇 시간이 있습니다. 잠을 잘 자고 정규 시간에 일해야 합니다. 일에 가장 집중할 때(보통 이른 아침이나 늦은 밤)에는 시간을 정하고 이 특별한 시간에 일하도록 노력해야 합니다. 이것은 당신(그리고 나)에게 당연하게 들릴 수도 있지만, 매우 불쾌한 사람들은 이것을 알아야 합니다. 하루 14시간 동안 코드를 입력하면서도 장기 프로젝트에서 생산성을 유지할 수는 없습니다.
운동은 내 프로그래밍 경력을 향상시키는 가장 창의적인 방법이 되었다고 생각합니다. 정기적으로 달리는 것은 나에게 생산성을 높이는 루틴입니다. 이 과정을 통해 자연스럽게 새로운 아이디어가 나올 뿐만 아니라, 지구력 운동을 하면 엔돌핀 호르몬이 빠르게 분비되어 통증과 스트레스를 매우 잘 완화할 수 있습니다. 달리는 사람들은 실제로 이것에 쉽게 중독될 수 있는데, 이는 매우 즐거운 과정입니다. 나는 운동시간을 근무시간의 일부로 생각한다. 이렇게 하는 것은 매우 실용적이며 회의를 절대 놓치지 않습니다. 덧붙여서, 나는 최근에 Alan Turing이 달리는 동안 그의 훌륭한 아이디어를 많이 생각해냈다는 것을 발견했습니다(그는 1948년 올림픽 마라톤을 거의 달릴 뻔했습니다).
운동 외에 명상도 매일 하고 있는데, 특히 MBSR(Mindfulness-Based Stress Reduction)을 좋아합니다. 이렇게 하면 나는 더 조용해지고, 더 평화로워지고, 더 집중하게 됩니다. MBSR은 매우 간단하며 단 몇 분의 회의 중에 하루에 여러 번 수행할 수 있습니다. 이는 주로 호흡 관찰, 인식, 환경에 대한 느낌을 통해 현재 순간을 느끼는 능력을 개발하는 데 기반을 두고 있습니다. 핵심은 "사물에 만족하지 않고 자신에 대해 슬퍼하지 않는"능력을 키우는 것입니다. 근육을 키우려면 운동을 해야 한다는 것은 모두가 알고 있지만, 뇌가 잘 기능하도록 훈련할 수 있고 훈련해야 한다는 사실을 이해하는 사람은 거의 없습니다. 일반적으로 MBSR과 명상은 뇌와 인지 능력을 훈련하고 개발하는 데 사용됩니다.
심리와 업무 효율성을 연결하면 '플로우'라는 개념을 자주 듣게 됩니다. "흐름 상태에 있다"는 것은 현재 활동에 완전히 집중하는 것을 의미합니다. "흐름"의 조건에 도달하는 것은 업무 효율성의 신입니다. 일에 대한 열정과 탄탄한 기술을 유지하는 것입니다. 우리는 기술을 익히려면 10,000시간의 연습이 필요하다는 말을 자주 듣습니다. "흐름"은 숙련된 프로그래머에게 더 많이 발생합니다. 마법의 "흐름"이 발생하기 위한 또 다른 조건은 충분히 도전적인 작업을 받아들이는 것입니다. 단순한 일을 해서 "흐름"을 이루는 것은 불가능합니다. 좋은 소식은 프로그래밍이 쉬운 일이 아니라는 것입니다.
물론, 방해를 받지 않는 것도 생산성에 있어 매우 중요한 측면입니다. 온라인 토론 대신 배치 모드로 하루에 두 번 이메일을 처리하고, 때때로 소셜 네트워크를 탐색하는 등 통제할 수 있는 몇 가지 방해 요소가 있습니다. 집중력이 향상되기 때문에 명상과 운동이 중요한 역할을 하는 곳입니다. . 동료든, 회의든, 아이들이든(재택근무하는 경우) 통제할 수 없는 방해도 있습니다. 이러한 방해를 처리하고 최대한 빨리 집중하는 것 외에는 선택의 여지가 없습니다.
저와 함께 일하지 못한 분들을 위해 보너스 이론을 하나 드립니다. 예를 들어 그룹 단위로 3시간 코딩 작업을 하고, 그 다음에는 한 시간 동안 해변에 갑니다. 이것은 나에게만 효과가 있는 것이 아닙니다. 일을 마치고 해변에 가고 싶다면 보상으로 생각합니다. 보상 이론은 자신의 일에 열정이 없는 사람들에게도 효과가 있을 수 있습니다. 당신의 직업의 첫 번째 책임은 당신을 열정적으로 만드는 직업을 찾는 것입니다.
LAMP Brothers의 원본 PHP 튜토리얼 CD/"Essential PHP in Details"를 무료로 받아보세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요: http://www.lampbrother.net
PHPCMS2차 개발 http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat 개발       http://yun.itxdl.cn/online/weixin/index.php?u=5
모바일 인터넷 서버측 개발 http://yun.itxdl.cn/online/server/index.php?u=5
자바스크립트 강좌 http://yun.itxdl.cn/online/js/index.php?u=5
CTO교육 캠프                                                                             5


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.