65

How to measure software development productivity? - Dmitry Melnikov - Medium

 4 years ago
source link: https://medium.com/@dmelnikov/how-to-measure-software-development-productivity-5246be34cdfd
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

How to measure software development productivity?

Image for post
Image for post

There are average criteria for assessment for every field of work. If we take real estate, for example, that would be square meters. Cost per square metre rate is more or less generic for the industry. It is a method of expressing building costs used for centuries, which allows to estimate construction budget.

Speaking about software development, we’ve got two universal measures: man-month and source lines of code (SLOC, or simply LOC). First method is especially efficient when dealing with outsourcing development teams. The other one can be used to evaluate IT assets you possess.

But I must warn you straight away: SLOC is absolutely unsuitable for measuring developers’ productivity. This criterion can only be used to evaluate one’s product in general, or for comparative analysis.

Example:

Modern technology allows to write a CRM system with at least 100 000 lines of code. Average code writing speed per developer is 30* lines of code per day. Which means that it will take one developer approximately 13 man-years to build a CRM system. But if you’ve got 5 developers in your team, it will take them 36 months. A well-known SuiteCRM (SugarCRM fork), for instance, contains somewhat 1 800 000 lines of code, and this product has been under constant development for the last 15 years.

*This metric is still under study, there are lots of discussions if it at all should be used. For the sake of this article I reserve the right to use an average 30 LOC per day metric.

Task:

Count how many developers you need to build a system similar to SuiteCRM in 5 years, considering that your productivity will be 130 % in comparison to SugarCRM team (it’s always easy to copy somebody’s work, isn’t it?)

Correct answer: 38 developers. And in 5 years you will build a CRM system of the same functionality SugarCRM offers now. That’s sad, isn’t it?

Now, let’s look at OptimaJet metrics…

Workflow Engine contains approximately 36 000** lines of code, including:

· .NET (C#) — 24 000 lines

· JavaScript — 11 000 lines

· SQL — 1 000 lines

**This metric does not include examples code, documentation, etc.

To launch Workflow Server we had to write another 19 000 lines of code. Current version of our BPM platform contains 50 000 lines of code plus 36 000 lines for Workflow Engine. It means that code length in this case is approximately 86 000 lines of code.

So, if you’ve decided to add workflow functionality to your project, you will have to pay for tens of thousands lines of additional code (15 000 LOC at the very least). Now think that average development speed is 30 lines of code per developer per day. How much will it cost you to build such a system?

Conclusion

SLOC metric is perfect to evaluate one’s IT system as asset. You can use comparative assessment method to measure software development costs. For example, if you’d like to add workflow functionality to your business system, your team will have to write at least 15 000 lines of code.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK