- Be agile. Whether the process model you choose is prescriptive or agile, the basic tenets of agile development should govern your approach.
- Focus on quality at every step. The exit condition for every process activity, action, and task should focus on the quality of the work product that has been produced.
- Be ready to adapt. Process is not a religious experience and dogma has no place in it. When necessary, adapt your approach to constraints imposed by the problem, the people, and the project itself.
- Build an effective team. Software engineering process and practice are important, but the bottom line is people. Build a self-organizing team that has mutual trust and respect.
- Establish mechanisms for communication and coordination. Projects fail because important information falls into the cracks and/or stakeholders fail to coordinate their efforts to create a successful end product.
- Manage change. The approach may be either formal or informal, but mechanisms must be established to manage the way changes are requested, assessed, approved and implemented.
- Assess risk. Lots of things can go wrong as software is being developed. It’s essential that you establish contingency plans.
- Create work products that provide value for others. Create only those work products that provide value for other process activities, actions or tasks.