Can a group of software developers, located in Mexico, achieve CMMI® certification and set the standard for their larger U.S. parent company to follow? A software branch of Freescale Semiconductors Inc., located in Guadalajara, did exactly that. Developing the CMMI® processes and procedures that made business sense for a remote software group was tricky, but not as tricky as assuring that they aligned their practices with the parent company's processes and requirements. The months of work that led to this achievement were filled with high points-and big challenges. Jeff Fiebrich discusses the planning, budgeting, and implementation that contributed to their ultimately successful CMMI® certification. He addresses the collaboration between their parent company and the local government that was an essential part of this effort. And, most importantly, Jeff reveals the immediate impact of their certification on the entire company.
Jeff Fiebrich and Diego Garay, Freescale Semiconductors, Inc.
Achieving CMMI® Level 5 Capability as an independent test organization takes a tremendous effort. However, achieving CMMI® Level 5 or a lower level compliance is not out of your reach. Join Kristen Bevans as she describes how the IBM Global Test Organization team successfully completed a formal SEI CMMI® Level 5 SCAMPI Class A appraisal as an independent test organization. The appraisal used the Continuous Representation of the SEI CMMI-SE/SW/IPPD/SS V1.1 Model achieving CMMI® Level 5 in the project planning, project monitoring and control, risk management, and verification process areas. Discover how to develop your CMMI® core team, establish the scope, plan the effort, prepare for an appraisal, and conduct the appraisal with SCAMPI methods. Kristen shares her thoughts on what they would do differently-and what they would do the same-if they had it to do over again.
eXtreme programming emphasizes test-first coding-you write the tests before writing the implementation code. You can apply the same approach in design when developing a complex system, including an architecture to support testing. To be successful, systems developed with agile methods must support a high level of testability and test automation. For large distributed systems, more sophisticated testing is needed to help determine which components may be contributing to failures. For such complex systems, you should architect the system for testing rather than add testing functionality as an afterthought. Ken Pugh presents a framework that employs polymorphic-style internal and external interface patterns to ease the work of testing and debugging. He also covers adding test-only functionality, test-only outputs, and test-only logging to interfaces.