TLDR; is a book review series. Often, those covered can help improve your career and help you sleep at the same time! This book is no exception. I would recommend it specifically to people looking to lead teams in the design, programming or integration of factory automation.
The Capability Maturity Model: Guidelines for Improving the Software Process reviews the "maturity" of software organizations. A start up, with lots of thrown together code, is viewed as an immature model. The high-end of maturity would be the development team for the space shuttle, with few bugs (if any) making it to production.
I will shamelessly put forth an excerpt from this book and dare you to think about your team's programming and design...
"The five levels can be briefly described as:
Initial The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined and sucess depends on individual effort and heroics.
Repeatable Basic project management processes are established to track cost, schedule and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
Defined The software process for both management and engineering activities is documented, standardized and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.
Managed Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
I find that most factory automation teams are between 1-3.
Let's go to some later quotes on level 1 teams... "Overcommitment is a characteristic... During a crisis, projects typically abandon planned procedure during and revert to coding and testing. Success depends on having an exceptional manager and a seasoned and effective software team... In spite of this ad hoc, even chaotic process, level 1 organizations frequently develop products that work, even though they may exceed the budget and schedule"
Compare this to level 2... "The software managers track software costs, schedules and functionality; problems in meetings commitments are identified as they arise. Software project standards are defined and the organization ensures they are faithfully followed."
And level 3... "A well-defined process can be characterized as including readiness criteria, inputs, standards and procedures for performing the work, verification mechanisms (such as peer reviews), outputs and completion criteria."
The chapters are...
Introducing Software Process Maturity
The Software Process Maturity Framework
The Structure of the Capability Maturity Model
Interpreting the CMM
Using the CMM
A High-Maturity Example: Space Shuttle Onboard Software
The Key Process Areas for Level 2: Repeatable
The Key Process Areas for Level 3: Defined
The Key Process Ares for Level 4: Managed
The Key Process Areas for Level 5: Optimizing
One key part they hit on is the culture shift that must happen in order to progress. The first steps (1=>2) are primarily setting (and applying) standards. The next steps (2=>3) involve training on those standard and tracking results. Later steps emphasis additional reviews and making the search for bugs... fun! (Or as close as it can be.)
Applying this to our field seems fairly straightforward to me. If I can get a team to just document, standardize, label, fix and repeat, I am satisfied!
In the spirit of peer review, I must note that the index lists the title for chapter 7 as "The Key Areas for Level 2: Repeatable." The chapter itself instead reads "The Key Process Areas for Level 2: Repeatable." The fun should kick in any minute now...
Comentários