매일 프로그래밍 생산성을 추적하려면 어떻게해야합니까? [닫은]


16

전날보다 생산성이 높은 소프트웨어를 개발하고 있음을 어떻게 추적 할 수 있습니까?


15
1 단계) 생산성의 지표로 코드 라인을
버리십시오


1
실제로, 제거 된 모든 코드 라인은 5-10의 가치가 있어야합니다.
limist

2
생산성을 정의하십시오.
luis.espinal

답변:


18

간단한 대답이 있습니다. 할 수 없습니다. 또한, 당신은해서는 안됩니다.

자신의 생산성을 측정하고 싶지만 일반화 할 수 있습니다. 프로그래머의 생산성을 어떻게 측정 할 수 있습니까? 우선 "생산성"의 의미, 즉 생성되는 코드의 양을 정의해야합니다. 구현 된 디자인 (또는 사양)의 양은? 해결 된 문제 수? 생산 된 코드의 품질? (예, 품질은 생산성 카운터입니다. 불량 코드를 많이 생성하거나 우수 코드를 거의 생성 할 수없는 이유는 무엇입니까?) 이러한 모든 값을 일일 기준으로 매핑 할 수는 없으며 일일 생산성을 추적하려는 시도는 프로젝트, 회사 및 프로그래머에게 위험합니다.

내 조언은 "생산성"이라는 의미를 명확하게 정의한 다음 측정 단위를 정의하고이를 주 단위 및 월 단위로 적용하는 것입니다.


7

생산성을 측정하는 가장 좋은 방법은 매일 그날에하고 싶은 일에 목표를 설정하고 완료하면 생산성을 고려하는 것입니다. 상당히 주관적인 척도이지만, 객관적인 것보다 훨씬 보람이있을 것입니다.


2

아래의 두 가지 제안은 귀하의 필요에 따라 대략적으로 채택 될 수 있지만 두 경우 모두 사전에 추정을 수행 한 다음 임시로 분석해야합니다 (솔직히 말해서 이것을 측정하는 다른 효과적인 방법이 있는지 확실하지 않습니다. TheLQ를 사용하면 기간 당 코드 줄을 전혀 사용할 수 없습니다).

민첩한 개발 방법론
단일 개발자 시나리오에 얼마나 효과적으로 적용 할 수 있는지 잘 모르겠지만 애자일에서 사용되는 일부 원칙은 달성하려는 목표에 유용 할 수 있습니다. 애자일 (Agile)은 개발자 (들)가 개발주기의 시작 시점에 구현 복잡도에 따라 점수를 매긴 (포인트 단위) 스토리를 구현하는 것을 목표로하는 주기로 작업 한 다음 각주기의 끝에서 분석됩니다. 이를 통해 속도, 즉 개발자 또는 팀이 단일 개발주기 내에서 완료 할 수있는 포인트 수를 결정할 수 있습니다.

작업 방식으로 일부 원칙을 채택하고 작업을주기별로 구성 할 수있는 경우 개발주기속도 메트릭을 사용하여 효율성을 추적 할 수 있습니다. 주기는 일반적으로 2-3 주 동안 지속되지만,이주기를 자신 만 사용할 때 단축 할 수 있습니다. 환경에서 그러한 방법론을 채택 할 수 있다면 모든 것이 가능합니다.

증거 기반 예약
기본적으로 견적을 개선하기위한 것이지만, 생산성을 낮추는 추세를 추적하는 데 효과적으로 사용할 수 있어야합니다.


2

Lorenzo에 동의하여 생산성을 정의하십시오.

나는 또한 이렇게했다 : 1. 모든 작업을 분류하십시오 (높은 수준 또는 낮은 수준의 분류). 2. 각 작업의 작업 시간을 추정하십시오 (각 작업마다 지연 버퍼를 설정하는 것을 잊지 마십시오). 3. 작업을 완료하십시오. 4. 각 작업을 다시 검토하여 생산성이 충분한 지 확인하십시오.


2

여러 증거 기반 예약 스냅 샷 을 생성하는 의미 있고 정확한 생산성 측정 방법은 다음과 같습니다 .

며칠 분량의 통계를 수집 한 후 Monte Carlo 시뮬레이션을 실행하고 그래프를 관찰하십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 하루 이상의 작업을 수행하고 시뮬레이션을 다시 실행하십시오. 그 날 생산적이었던 경우 그래프는 다음과 같이 변경되어야합니다.

여기에 이미지 설명을 입력하십시오

가장 중요한 것은 해당 날짜에 제품을 구매 한 경우 해당 날짜 이전에 시뮬레이션을 마지막으로 실행 한 이후로 특정 날짜의 배송 날짜 확률이 증가 해야한다는 것입니다. 그것이 줄어든다면 그날 생산성 이 떨어 졌습니다 .

물론 EBS의 정확성은 시간과 경험에 따라 증가하므로 선적 날짜 확률 값이 변경되는 또 다른 이유가 될 수 있습니다. 그래서 적어도 며칠 분량의 샘플 작업을 한 후에이 작업을 시작하려고합니다. 그럼에도 불구하고 언젠가 생산성이 크게 향상되면 확률이 상당히 높아질 것입니다.


2

코드 라인 수는 코드 품질에 대한 통찰력을 제공하지 않지만 일반적인 생산성을 결정하는 데 사용할 수 있으므로 불완전한 측정입니다. 사용하는 언어에 따라 코드 라인을 계산하는 다양한 도구가 있지만 Git 리포지토리 인 BitBucket은 생산성 관련 통계를 추가하도록 요청했습니다.

https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics


3
LOC를 개인 측정 값으로 사용하는 한 (측정하는 유일한 측정 값이며 측정 값을 사용하는 유일한 측정 값) 많은 단점이 무용지물이됩니다.
Jay Elston

1

아침에 컴퓨터에 앉아 9gag, 페이스 북, 레딧 등과 같은 업무와 관련되지 않은 활동을 수행 할 때까지 걸리는 시간을 측정하십시오. 그날의 생산성은 해당 숫자에 비례합니다.


0

생산적인 것은 시간을 관리하여 모든 작업 시간을 활용하여 작업을 완료하는 데 시간을 낭비하고 낭비되는 시간에 기여하는 모든 것, 즉 작업을 완료하지 못한 시간은 비 생산적인.

실제로 할 수있는 유일한 일은 하루 종일 다양한 활동에 참여할 때 시간을 기록하는 것입니다. 시간 복싱은 다양한 목적으로 사용되는 기술이지만 하루 동안의 활동을 기록하려는 이러한 노력에 적합합니다. 단순히 몇 가지 작업을 수행하는 타이머에서 15 분을 보내십시오. 작업이 진행중인 작업 인 경우 시간은 생산적이었습니다. 블로그를 편집하거나 신문을 읽거나 회계에서 그 멋진 소녀에 대해 공상하는 것을 발견했다면 시간이 비생산적 일 것입니다. 하루가 끝나면 분을 더하면 생산성이 어느 정도인지 느낄 수 있습니다.

그러나 캐치가 있습니다! 다른 분들은 어떻습니까? 5 분의 휴식을 취하고 점심을 먹으며 상사가 당신이 마지막 낚시 여행에서 잡지 않은 큰 물고기에 대해 말하도록 방해하게합니까? 그것도 모두 기록하십시오. 10-15 분마다 5 분씩 휴식을 취하지 않는 한 정신 건강과 복지에 기여한다면 휴식 시간은 낭비되지 않습니다 !! 나머지 작업과 관련하여 다른 작업 관련 문제를 처리하는 중단.이 모든 사항을 추적 할 수 있습니다.

물론 이런 종류의 물건에 집착하는 것을 발견 할 수 있으며, 상사가 시간 복싱을보고 더 많은 일을 쌓거나 노력을 비판하는 이유를 정당화하는 데 사용하는 사람들 중 하나 인 경우 신이 도와줍니다. 생산적인 시간에 대한 집착의 문제점은 하루 종일 일할 수 있고 실제적인 관련성을 얻지 못한다는 것입니다. 언젠가는 뇌에서 버터가 녹는 것처럼 코드를 작성할 수 있고 화면을 부르는 샌드위치에 코드를 작성할 수 있습니다. 다른 날에는 같은 방법으로 357 가지 다른 방법으로 시도하면 심각한 정신 차단이 가능합니다 실패하는 것을 보는 것만. 많은 사람들은 지속적인 "실패"가 비생산적 일 수 있다고 말하지만, 하루 중 시간 표시와 시간 기록에 관계없이 그 자체로는 도움이되지 않을 것이라고 말합니다.

그것을 보는 다른 방법은 단순히 자신에게 여러 목표를 설정하고 하루와 일주일 동안 완료 한 다음 목표를 달성하는 것입니다. 실제로 목표를 달성 한 경우 생산적이라고 주장 할 수 있으며 목표를 달성하지 못한 경우 목표를 달성하지 못한 이유를 이해하고 생산적이지 않은지 결정해야합니다. 목표를 놓친 실제 이유를 기반으로합니다. 궁극적으로 필요할 때 작업 코드를 제공하고 테스트를 통과하고 작업을 완료 할 수 있다면 생산성이 높아진 것입니다. 나중에 통계적으로 분석해야 할 정당한 사유가있는 경우에만 측정이 가치가 있습니다.

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