Developer Productivity: Skilled Versus Average

來源:互聯網
上載者:User

標籤:

Developer Productivity: Skilled Versus Average

Neal Ford Atlanta, Georgia, U.S.

lET’S DEBUnK SoME oF ThE MyThS about developer skills for project man- agers who have been assigned for the first time to software projects. Under- stand that really good software developers are much more productive than average ones. In fact, some statistics say that really good developers are mul- tiple orders of magnitude better than poor ones. One order of magnitude is the same as multiplying a quantity by 10. The point is, a skilled programmer isn’t just a little better than an average one; the difference is huge.
What should this mean to our newly minted software project managers as they plan the development of this product? Managers erroneously think that even if you can’t get the best and brightest, you still get some usefulness out of medio- cre developers. But building software isn’t like digging a ditch, where even the poorest ditch diggers can make a hole.
In software development, what is programmed today becomes the foundation for tomorrow. If you have mediocre developers building your foundation, the really good developers have to go back and fix the flaws before they can move on. Hiring mediocre or average developers slows project velocity.* Frequently, taking a poor performer off the team is more beneficial than adding a good one.
Couple this with the fact that adding people to a late project makes it even later, and you can understand why most enterprise development moves at a gla- cial pace. The nonexperienced software project manager might reason that if adding more warehouse men allows a truck to be loaded faster, hiring additional programmers would shorten the time necessary to complete a software project.
* Velocity: A term used in agile software development to show the rate of progress for a team or a team member, i.e., how much an individual programmer will be able to produce in a given time period.
?
???????????????That won’t work. It will take time, and pull other programmers off-task, to get the new guys/gals up-to-date. In addition, the communication channels increase with each addition to the team. With a team of two, there is one chan- nel: Betsy Sue to Bill. Add Mike, and you jump to three channels. The number of channels continues to grow exponentially.
Here’s the formula: n(n–1)/2. With 12 people on the team, you have 12(12–1)/2 channels, or 66 relationships you must maintain as the project manager. Add one more person, and you now have 78 communication channels to oversee.
Building software with average developers exposes two project myths: 1) that you can shorten a project by adding people, and 2) that it’s OK to have aver- age developers produce average (buggy/off-task) code at an average pace. In truth, average developers drag overall productivity down and the project takes longer than necessary to complete.
The solution? Give good developers powerful tools. You’ll get higher-quality software faster. Second, having warm bodies doesn’t help projects, and having to babysit poor developers cuts the productivity of your good developers, who are craftsmen. Software is too complex to turn into an assembly-line manufac- turing process.
Want faster software development? Spend the extra money to hire and nurture excellent software developers. It will pay off in both the short term, and in the long term when it’s time to maintain the code.

Developer Productivity: Skilled Versus Average

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.