| > Managing to metrics is harder, because the metrics (bugs retired, KLOCs written) are so meaningless and easily fudged. Agreed, managing to team metrics is usually the road to hell. But tracking some metrics can uncover problems. Maybe your team is bad at estimating. Or there's a lot of rework to new functionality due to shifting requirements. Or maybe there are a lot of bugs after a release because the engineering process is broken somewhere. > Also, good programmers tend to be undisciplined. I find this to be untrue. You're not really a good programmer if you ignore the ancillary activities that contribute to a high-functioning project/team, unless you're someone who is writing code only for yourself. Communication, coordination, documentation, and following good processes wastes less time, reduces mistakes, and reduces the damage done when someone leaves the team. The cowboy programmer can do a good job writing code but if they're not attending to all of the other stuff a software engineer needs to do, they are dragging down the productivity and resilience of the organization. > Replacing them with mediocre but disciplined programmers doesn't usually improve things. Yes you'd certainly rather have a good programmer who needs to improve on process than someone who can barely program. But even better to have someone who is both disciplined and good. |
To a first approximation, everyone is bad at estimating software development times.
See: https://news.ycombinator.com/item?id=12149515 and https://news.ycombinator.com/item?id=4328660 and http://www.romenrg.com/blog/2015/09/28/why-asking-developers...
and The Mythical Man-Month, too.