Re[2]: Система учета рабочего времени для исполнителя (программиста)
От: velkin Удмуртия https://kisa.biz
Дата: 21.02.15 12:04
Оценка:
Здравствуйте, Abyx, Вы писали:

A>каждое изменение занимает несколько минут, и если их где-то описывать, на это уйдет гораздо больше времени чем на сами изменения.

A>даже если пишется новый код, "процедур xxx1" будут десятки, и на написание большинства из них уйдет 1-5 минут
A>при этом будет дофига операций "удалил процедуру xxx1", "перенес xxx1 в файл yyy" и т.п.
A>разумеется все адекватные программисты от вас убегут

Если разработчик делает коммит через каждые 5 минут, то он прежде всего должен убежать сам от себя, так как уже ведёт сверхдетальный анализ работы. Собственно говоря от того будет он писать время или не будет, уже ничего не изменится. Вот если бы задача автора топика была не вести учёт времени, а заставить делать коммиты каждые 1-5 минут, тогда да. Но проблема мне почему-то видится в мнении, что на разработчика нужно учиться, а вот менеджером может стать любая девочка или продавец картошки. Недавно мне здесь рассказывали, что программисты никакие не учёные и Computer Science существует только за рубежом, а у нас они вроде рабочих у станка, исправно пилят детали.

А потом продавец картошки или коммуникативная девочка становятся менеджерами проектов, в какой-нибудь жирной фирме, которая может себе позволить терять разработчиков пачками, но не может позволить нанять менеджера с множеством успешно реализованных проектов. Это так же как если нанимаешь специалиста, но обращаешься не к специалисту по поиску этого вида персонала, а в фирму в которой сидит та же девочка, или к Васе Пупкину, потому что считаешь его хорошим разработчиком. А я тут в соседней теме узнал, что говнокод это оказывается единственная форма существования кода. Для Васи может быть весь код говно и все другие программисты говнокодеры по определению. А девочка может не возбудилась от мужика в свитере и обиделась, или наоборот, в свитере — не мужик, то есть ненастоящий программист. Вот имеем то, что имеем.

Чисто для примера:
cd ~/work
~/work$ git clone https://github.com/bulletphysics/bullet3
~/work$ cd ./bullet3

Cloning into 'bullet3'...
remote: Counting objects: 50853, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 50853 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (50853/50853), 70.04 MiB | 486.00 KiB/s, done.
Resolving deltas: 100% (38425/38425), done.
Checking connectivity... готово.
Checking out files: 100% (1983/1983), done.

~/work/bullet3$ gitk

Представление => Новое представление
author: erwin.coumans@gmail.com
since: 2014-08-1
until: 2014-09-1

И всё, смотрим в удобном графическом виде, что делалось и когда.

Или чтобы было понятнее команды из консоли.
git log --pretty=format:"%h %ad | %s%d [%an]" --date=short --author=erwin.coumans@gmail.com --since="2014-08-1" --before="2014-09-1"

3b7a700 2014-08-31 | Merge pull request #230 from erwincoumans/master [erwincoumans]
57b3886 2014-08-31 | Merge pull request #229 from erwincoumans/master [erwincoumans]
6760cee 2014-08-28 | Merge pull request #224 from erwincoumans/master [erwincoumans]
8595928 2014-08-28 | update appveyor badge [Erwin Coumans]
1451232 2014-08-28 | update badges for README.md [Erwin Coumans]
81bafac 2014-08-28 | rename to see if travis message works with .md extension? [Erwin Coumans]
613beab 2014-08-28 | Update readme.txt [erwincoumans]
09e758b 2014-08-28 | Update appveyor.yml [erwincoumans]
4004ab4 2014-08-28 | Update appveyor.yml [erwincoumans]
7c4a5fc 2014-08-28 | Update appveyor.yml [erwincoumans]
8f27aaa 2014-08-28 | Update appveyor.yml [erwincoumans]
d0d6de1 2014-08-28 | Update appveyor.yml [erwincoumans]
aa8c1e9 2014-08-28 | Create appveyor.yml [erwincoumans]
a51382e 2014-08-28 | Merge pull request #223 from erwincoumans/master [erwincoumans]
e40606e 2014-08-26 | Merge pull request #222 from erwincoumans/master [erwincoumans]
3c558ec 2014-08-26 | explicitly deserialize btCapsuleShape date (margin, scaling, halfextents), because the API modifies them [
a0778a1 2014-08-26 | CMakeLists.txt: OSX check is below 10.9 (not below 10.10), and add new files [Erwin Coumans]
2b35911 2014-08-26 | X11OpenGLWindow: create stencil buffer for shadows in OpenGL2 mode (OpenGL3 uses shadow maps) Add 'createC
1e956c8 2014-08-25 | Merge pull request #220 from erwincoumans/master [erwincoumans]
6cbf899 2014-08-25 | move the clearForceAndTorque to after the stepVelocities, see also https://github.com/bulletphysics/bullet
8e64ee5 2014-08-22 | fix a few warnings, and matching class/struct in forward declaration [Erwin Coumans]
2c19a27 2014-08-22 | add missing ConstraintPhysicsSetup.* files [Erwin Coumans]
954d488 2014-08-22 | cmake+premake disable OpenGL 3 demos on Mac OSX versions below 10.9 See also http://www.bulletphysics.org/
ade897c 2014-08-22 | Merge pull request #219 from erwincoumans/master [erwincoumans]
bc96d5e 2014-08-22 | Update ImportURDFSetup.cpp [erwincoumans]
edbc187 2014-08-22 | Merge pull request #218 from erwincoumans/master [erwincoumans]
e1e54f7 2014-08-21 | Merge pull request #217 from erwincoumans/master [erwincoumans]
60ab931 2014-08-21 | Merge pull request #216 from erwincoumans/master [erwincoumans]
4118495 2014-08-21 | Merge pull request #215 from erwincoumans/master [erwincoumans]
590504b 2014-08-21 | Merge pull request #201 from bgossage/fix_pointer_cast [erwincoumans]
ed637a6 2014-08-20 | fix mac build [Erwin Coumans]
cb55f7d 2014-08-20 | Merge pull request #214 from erwincoumans/master [erwincoumans]
7b28e86 2014-08-20 | add improved btGeneric6DofSpring2Constraint, thanks to Puhr Gabor and Tamas Umenhoffer! improved the new d
d2509ae 2014-08-19 | Merge pull request #212 from erwincoumans/master [erwincoumans]
cd22ccd 2014-08-19 | Merge pull request #187 from filipwasil/subproject_build_fix [erwincoumans]
34baab5 2014-08-19 | Merge pull request #196 from jackoalan/parallel_linear_bvh_cl_fix [erwincoumans]
2442977 2014-08-12 | Merge pull request #209 from erwincoumans/master [erwincoumans]
4027ed0 2014-08-03 | Merge remote-tracking branch 'bulletphysics/master' [Erwin Coumans]
5ed49cc 2014-08-03 | fix missing implementation [Erwin Coumans]
f85e251 2014-08-03 | add missing files to CMakeLists [Erwin Coumans]
ae98ffe 2014-08-03 | add Obj and STL import demo, work on URDF import [Erwin Coumans]
ba5a8a4 2014-08-03 | Merge remote-tracking branch 'bulletphysics/master' [Erwin Coumans]


Время есть, хотя можно было бы смотреть его вплоть до секунд, но это уже пошла другая история, а именно метрики кода.

https://ru.wikipedia.org/wiki/Метрика_программного_обеспечения

Потенциальные недостатки подхода, на которые нацелена критика:

Неэтичность: Утверждается, что неэтично судить о производительности программиста по метрикам, введенным для оценки эффективности программного кода. Такие известные метрики, как количество строк кода и цикломатическая сложность, часто дают поверхностное представление об "удачности" выбора того или иного подхода при решении поставленных задач, однако, нередко они рассматриваются, как инструмент оценки качества работы разработчика. Такой подход достаточно часто приводит к обратному эффекту, приводя к появлению в коде более длинных конструкций и избыточных необязательных методов.
Замещение «управления людьми» на «управление цифрами», которое не учитывает опыт сотрудников и их другие качества
Искажение: Процесс измерения может быть искажён за счёт того, что сотрудники знают об измеряемых показателях и стремятся оптимизировать эти показатели, а не свою работу. Например, если количество строк исходного кода является важным показателем, то программисты будут стремиться писать как можно больше строк и не будут использовать способы упрощения кода, сокращающие количество строк.
Неточность: Нет метрик, которые были бы одновременно и значимы и достаточно точны. Количество строк кода — это просто количество строк, этот показатель не даёт представление о сложности решаемой проблемы. Анализ функциональных точек был разработан с целью лучшего измерения сложности кода и спецификации, но он использует личные оценки измеряющего, поэтому разные люди получат разные результаты.


https://compscicenter.ru/media/slides/seintro_2012_spring/2012_05_14_seintro_2012_spring.pdf
https://www.lektorium.tv/lecture/13787
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.