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.
Better Software Conference & EXPO 2007
When some people hear the words "agile planning," they think it is an oxymoron. While more knowledgeable people think of agile planning as getting ready for one iteration of development, there is more to agile product planning than a single iteration.
How do we know if we have made the right choices regarding the way we tested a product? Did we focus our efforts in the right areas? Only a careful and orchestrated analysis of customer-found bugs will give us the answers. You can obtain a wealth of information from post-release bugs: the need for more code coverage in our tests, the value of our regression testing, the validity of our load generating scripts, our choices of target environments, tests we do not need to run, and more.
In recent years, psychologists have come to a nearly unanimous consensus on the number and nature of human personality dimensions. A recent large scale study involving several hundred software engineers and "regular" people (non-engineers) revealed that the personalities of developers, testers, and managers tend to be different from each other and from the general population as a whole. So, how can you use this information in your job?
Today, the competitive marketplace demands the best of everything-the highest quality, lowest costs, and shortest possible schedule. The Team Software Process (TSP) and the Personal Software Process (PSP) shift the focus away from testing and verifying at the back-end to encouraging each engineer and the team as a whole to prevent defects throughout the project lifecycle. Incorporating Six Sigma quality practices with TSP/PSP can improve the quality-cost-schedule relationship even more.
Agile practitioners are aware of the business benefits that can be derived from faster and more effective software delivery. At the same time, companies in many industries are facing increasing regulatory compliance issues. What do you do when you want to apply agile software development methodologies in an audited, validated industry? How do you get regulators, who want your software to work right and who have the force of the law behind them, to believe that it's all going to be OK using agile development?
The primary reason that projects deliver significantly less value than customers expect-or fail outright-is incomplete, ambiguous, or poorly understood requirements. Because text-based requirements have been the norm, perhaps they are a part of the problem. Text-based requirements documents have difficulty expressing the needs, desires, and constraints of stakeholders because they use words that, by nature, can have multiple meanings and interpretations.
As manager of a software team, you often rely on your staff for assistance when conducting technical interviews to fill positions in your organization. However, even the most technically competent people may not necessarily be good interviewers. Some reasons include lack of interest, thinking that they "can just tell" if a candidate is a good fit, or simply not knowing the fundamentals of interviewing. All these issues must be addressed to improve the interviewing skills of your staff.
The days of plan-driven command-and-control technical management are gone. Flexible software development and the adoption of agile methods are driving factors. Add to this the fact that the I-decide-You-obey paradigm never worked very well anyway. Today, a coaching model is replacing command-and-control within more self-directed teams. This shift drastically changes the skills required of today's leaders, many of whom are struggling with questions such as: If I don't make the decisions, what is my job? Is my position really needed?
The practice of continuous integration facilitates early visibility into the development process by regularly incorporating new modules into the build much earlier than the classic "big bang" integration approach. Continuous integration helps reduce the time between when a defect is coded and when it is discovered, thereby making it faster and easier to repair. Software teams see their build process as much more than a simple compile and link process because the build exposes new bugs immediately.