Dr. Mark Paulk teaches software engineering at the University of Texas at Dallas and is a consultant and author in software engineering, software process improvement, high maturity practices, agile methods, and statistical thinking.
Dr. Paulk was a Senior Systems Scientist at the Institute for Software Research at Carnegie Mellon University from 2002 to 2012, co-authoring the eSourcing Capability Model for Service Providers. From 1987 to 2002, Dr. Paulk was with the Software Engineering Institute at Carnegie Mellon, where he led the work on the Capability Maturity Model for Software. He was co-project editor of ISO/IEC 15504-2 (Software Process Assessment: Baseline Practices Guide), is a 2014-2017 member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Executive Committee, and is the 2016 Vice President of the Standards Activities Board for the IEEE Computer Society.
Dr. Paulk received his PhD in industrial engineering from the University of Pittsburgh, his MS in computer science from Vanderbilt University, and his BS in mathematics and computer science from the University of Alabama in Huntsville. He is a Fellow of the ASQ, a Certified ScrumMaster, and a Senior Member of the IEEE.
University of Texas at Dallas
Computer Science Department
DVP term expires December 2019
Investing in Software Process Improvement: An Executive Perspective
This presentation discusses some of the empirical evidence on the value obtained from investing in software process improvement using the Software Capability Maturity Model (Software CMM) or CMM Integration (CMMI) for Development developed by the Software Engineering Institute (SEI) at Carnegie Mellon University. Business drivers for process improvement and some challenges in organization change are described, along with data on the impact on cost, schedule, and quality of achieving the five maturity levels in CMM(I). From an executive perspective, the crucial point is that continual improvement depends on systematically addressing the problems facing the organization — regardless of the improvement framework selected. This “constancy of purpose depends on management sponsorship, support, and investment.
Software Process Improvement in Small Organizations and Small Projects
Process improvement frameworks, such as the Software CMM and CMMI for Development, have been criticized for being applicable only to large organizations and projects, yet many small organizations and projects have used these models successfully in their process improvement efforts. Some of the common problems with interpreting process frameworks for the small project/organization include:
- What does “small” mean? In terms of people? Time? Size of project? Criticality of product?
- What are the CMM “requirements”?
- Are there key process areas or goals that are “not applicable” to small projects/organizations?
- Are there “invariants” of good processes?
The conclusion of this presentation is that the issues associated with interpreting process frameworks for the small project/organization may be different in degree, but they are not different in kind, from those for any organization interested in improving its software processes.
Using these frameworks effectively and correctly requires professional judgment and an understanding of how they are structured to be used for different purposes.
Agile Methodologies and Process Discipline
Agile methodologies have been touted as the programming methodologies of choice for the high-speed, volatile world of Internet and Web software development. They have also been criticized as just another disguise for undisciplined hacking. The reality depends on the fidelity to the agile philosophy with which these methodologies are implemented and the appropriateness of the implementation for the application environment. Extreme Programming, Scrum, and similar agile methods are disciplined processes that incorporate good engineer and management practices, albeit with extreme implementations tailored to a specific kind of environment. Many of the challenges to agile methods arise from considering how they would fit in different environments; the degree to which agile methods can be adapted without losing their emergent properties is passionately debated. The compatibility of agile methodologies with process improvement frameworks, such as the Capability Maturity Model for Software and CMMI for Development, is summarized and critiqued, with the conclusion that appropriately implemented agile methods can be useful additions to an organization’s set of standard processes.
People Issues: The “Soft Side” of Software Process Improvement
“Our greatest asset is our people.” This platitude is frequently followed by announcements of layoffs, downsizing, and similar Dilbertesque decisions. If people are the most important single factor in success, how do we incorporate that fact into our process improvement programs? This tutorial provides an overview of “people issues” for software engineering, management, and process improvement from an individual, team, and organizational perspective. People issues for the individual include order-of- magnitude differences in individual performance and temperament differences such as those indicated by the Meyers Briggs Type Indicator. Team issues include those associated with establishing effective and high-performance teams.
Organizational issues include decision making styles, organizational culture differences, and varying national cultures. For human-centric, creative work such as software organizations perform, the foundation for performance excellence is the competence of the people doing the work as enabled – or hindered – by the environment they work in.
Practices of High Maturity Organizations
The Capability Maturity Model (CMM) for Software, developed by the Software Engineering Institute at Carnegie Mellon University, was a five-level model for improving the process capability of organizations, which has been widely adopted in the software community and beyond. It has now been superseded by CMM Integration (CMMI) for Development, which integrates systems and software Engineering. Although CMM(I) has been widely used, comparatively few organizations have achieved the higher levels of organizational maturity – Levels 4 and 5.
Conceptually the focus of Levels 4 and 5 is to use measurement – and an understanding of variation – to control and improve the process. This is usually viewed as applying the concepts of statistical process control (SPC) to the software process, but software processes are quite different from the manufacturing processes where SPC was developed. The lack of wide-spread experience with high maturity practices has been a challenge for assessors who wish to appraise Level 4 and 5 organizations and for those working to improve their organization’s processes. The purpose of this presentation is to discuss the engineering and management practices typically found in high maturity organizations that adequately address the statistical thinking in CMM(I).
Mature Software Project Management
This one-day seminar addresses the challenges, strategies, and tools for managing software projects. The seminar is structured according to the knowledge areas of the Project Management Body of Knowledge. Customer relationship management, decision making, earned value, critical path, critical chain, and agile methodologies will be discussed. Effective project management is a prerequisite for meeting commitments, yet all too many software projects fail to meet customer expectations for budget, schedule, functionality, and quality. Many customers now require their suppliers to demonstrate their commitment to process improvement and quality management by using, or being certified against, various models and standards. Project management is a fundamental requirement to achieve Level 2 against the Capability Maturity Integration (CMMI) for Development or to be certified against ISO 9001.
Effective project management requires more than implementing a set of basic functions, however. It implies selecting qualified people who can work together effectively, structuring decision making processes both internally and externally, managing customer expectations, monitoring progress, managing risks, and taking corrective action as appropriate. None of these are easy, although there are a number of tools that can help. This seminar is therefore a broad survey of a variant of project management styles and techniques, as used in diverse environments. The perspective of the discussion is that of “mature” processes, i.e., processes that are well-defined, managed, measured, controlled, and effective.
- Investing in Software Process Improvement: An Executive Perspective
- Software Process Improvement in Small Organizations and Small Projects
- Agile Methodologies and Process Discipline
- People Issues: The “Soft Side” of Software Process Improvement
- Practices of High Maturity Organizations
- Mature Software Project Management