Personal Software Development Performance Improvement

Summary

Genius at first is little more than a great capacity for receiving a discipline.
—George Eliot
The Software Process Class teaches you the engineering skills you need to succeed in today's highly competitive software marketplace. You will learn what it takes to truly develop software on Internet Time. When the class is over you will know effective methods for estimating, planning, scheduling, defect management, individual performance analysis and improvement, and much more.

Essential Skills You Learn

The class teaches you the essential skills you need to be an outstanding software engineer:

  • Software project estimation, planning, and management for you and for your team.
  • Personal process definition, measurement, analysis, and improvement.
  • Defect estimation, planning, and management.
  • Effective methods for reviews, inspections, and walkthroughs.

Historical Background & Sources

People creating software had long struggled with the problems of properly planning, estimating and tracking their work, delivering software that solves a real customer need, and making that software virtually defect free. The class grew out of the need to solve the above—often elusive—problems.

Multiple sources are at the origins of the material for the class. The primary contribution came from Watts Humphrey's book: A Discipline for Software Engineering, "The PSP Book." Humphrey describes how you can apply sound project management and measurement techniques to software development work.

Other sources include: Peter Senge's work on systems thinking and organizationl change and evolution, Tom Peter's work on management and life in organizations. The object-oriented analysis and design parts of the class are based on work done by Craig Larman, John Lakos, Peter Coad, Ed Yourdon, Grady Booch, Ivar Jacobson, James Rumbaugh, Bertrand Meyer, Scott Meyers, and many others. The measurement framework is based on Six Sigma work done by many contributors, and on work done by W. Edwards Deming, who in turn based his work on the work of Walter P. Shewhart. See the Reading Lists for more.

While the class is great in summarizing the above mentioned people's work, by no means is a substitue for reading them. I encourage all of you to go ahead, pick up the books mentioned and read them. You can get much further when you solve problems that have not been solved yet.

Personal Process Framework

The focus of the class is to teach you the discipline of the Personal Process Framework (PPF). It is vital to think of the PPF as a discipline and not as a technology. Discipline is defined in the dictionary as "a branch of knowledge or teaching." Following a discipline is means following a path to accumulate more knowledge. That's what the PPF attempts to accomplish. When you learn the methods embodied in the PPF, you will be able to examine how you work and you will be able to make measurable improvements.

Key elements of the PPF are:

  • defined processes
  • process measures
  • defect definitions, defect count
  • defect injection rate, defect removal rate
  • estimation technique
  • schedule (calendar)

Key activities of the PPF are:

  • planning
  • estimating
  • process definition
  • process enactment
  • process analysis
  • data collection (size, time, defects)
  • data analysis

Lectures on Related Topics

The Software Process Class does not include lectures on software development topics that are not related to process issues. The class should be followed up with lectures on software development topics of interest to the team. There are introductory lectures available on the following topics:

  • Requirements Management
  • Object-Oriented Analysis
  • Object-Oriented Design
  • Configuration Management

Class Format & Timeline

The class takes 12 days, and 15 minutes per attendee for presentation on a day within 3 days of the conclusion of the class. The attendees have to complete 10 programming assignments, an informal warm-up assignment, and write two reports during the class. A typical class day starts with an about two hour lecture, followed by the presentation of the new process elements to be used, and the presentation of the assignment. Each programming assignment and report takes 3 to 4 hours to complete.

Note to Attendees

It is very important that you do the programming assignments and reports in order! Each assignment builds on the previous ones. If you skip assignments or reports you will not get the expected results out of the class; your learning will be incomplete.

Next Steps

Please call or send email to the address below to setup an appointment to see how You and I could work together to make your organization even more successful.

I am looking forward to working with You!

Call (512) 775-7864 or send email to teleki@acm.org to setup a free, no-obligation appointment.


 © 2000-2004 Steven Teleki » teleki@acm.org » Home | Consulting | Speaking | Reading Lists | Writings | Biography | About