This question was originally asking 'What KPIs do you use to in a software development organisation'. Unfortunately it seems that KPI is a four-letter word, and the immediate assumption is that KPIs are always mis-used (maybe they are?).
So, I've hopefully improved the question to get at the underlying goals which I originally thought KPIs were useful for. Assuming you have some process for how you (or your organisation) develops software. Secondly assume, that you (or your team) wants to become better at developing and delivery software. Finally, assume that one of the ways to improve is by refining your process.
Given all this, how do you know if your process refinements are having a positive impact? If these are KPIs, or SMART goals please provide individual, or groups, of KPIs/SMART goals that you have found the be effective. If it is some other mechanism please explain what it is. Finally, I guess, if you don't think that improving processes is a useful thing, I guess you can explain that too.
The areas of improvement I think would be useful are: quality, timeliness of releases, productivity, flexibility. If there are other aspects of an individual or team of developers, then that would be interesting to know.
Clarifying notes:
The question is not about how to best adapt or change a process, or what a good process improvement process is (be it Kaizen, retrospectives, etc). Nor is it about root-cause analysis or other approaches used to determine what specific aspects of a process should be improved.
The use of measures to determine if process improvement has been achieved, should not be confused with ongoing, as it happens, process improvement. (That is a good thing, but it isn't what the question is about!)
The process could be anything; scrum, agile, extreme, waterfall, ad-hoc. This question isn't about which process is best for certain types of software development, rather it is how to improve that process over time.
Obviously the specific metric will depend on the process that is involved, and the perceived problem that is trying to be improved. This question is simply designed to get examples of metrics used, which would obviously span a number of different processes and improvement areas.
The metric need not be something that is used all the time, for example, it could just be used while testing if a process change works. (For example, it could be too expensive - time or money wise - to measure and track at all times, so you just track it will tweaking the process).
It is taken as a given that if implemented poorly, the use of metrics can have a detrimental effect as developers game the system or otherwise. It is assumed that the person implementing the process change is aware of this problem and has taken effective steps to mitigate it.
All software organisations are different and how they fit into their company, so will have different specific things expected of them within the company, however I would think that product quality, productivity, flexibility and timeliness of releases are applicable to most if not all organisations. (With obviously different emphasis depending on the specific organisation.)
This question has nothing to do with source lines of code! In particular, I am not interested in measuring programmer productivity, especially in terms of SLOCs or # of bugs fixed, or any other naive measurements. I'm interested in higher-level way a team or individual measures their improvement. I am not interested in using a single KPI to measure anyone's performance. I am interested in using a range of KPIs to measure and improve my team's software development processes.
I know of horror stories about KPIs being misused and being ineffective (you don't need to search very hard to find them), but I can't believe that no-one out there tries to continually improve their processes, so there must be some good examples of KPIs out there.
I know all about the drawbacks of simplistic metrics that are applied to individual software programmers. I am really hoping to get examples of KPIs or alternative strategies that people have found as useful, rather than all the reasons why I shouldn't be using KPIs.
I'm mostly interested in processes and performance related to a development organisation within a larger company, as opposed to a software development company as a whole. For example, a software company should ensure that the products have the right features for the market, but generally that is product management's role, rather than engineering. And yes, there is a complete other discussion as to why and to what extent engineers should be involved in product management, but that is a separate discussion.