I just came across the core ideas behind the Microsoft Solutions Framework (MSF) for Agile Software Development, which you can download. After you download the content, you can find the following information, which I think are great points to keep in mind while running any project:
- Partner with Customers – Customer validation is often the difference between real and fictional business value. Understanding the value proposition of your solution and communicating it effectively is a key success factor.
- Foster open communications – In order to maximize members' individual effectiveness and optimize efficiencies in the work, information has to be readily available and actively shared
- Work toward a shared vision – Having a generally long-term and unbounded vision inspires the team to rise above its fear of uncertainty and preoccupation with the current state of things and to reach for what could be.
- Empower team members – In an effective team, all members are empowered to deliver on their own commitments and to feel confident that other team members will also meet theirs.
- Establish clear accountability and shared responsibility – Failure to establish clearly understood lines of accountability and responsibility on projects often results in duplicated efforts or missing deliverables.
- Focus on delivering business value – While many technology projects focus on the delivery of technology, technology is not delivered for its own sake—solutions must provide tangible business value.
- Stay Agile, Adapt to Change – The more an organization seeks to maximize the business impact of a technology investment, the more they venture into new territories. This new ground is inherently uncertain and subject to change as exploration and experimentation results in new needs and methods. To pretend or demand certainty in the face of this uncertainty would, at the very least, be unrealistic and, at the most, dysfunctional.
- Invest in quality – An investment in quality therefore becomes an investment in people, as well as in processes and tools. Successful quality management programs recognize this and incorporate quality into the culture of the organization.
- Learn from all experiences – Taking time to learn while on tight deadlines with limited resources is difficult to do, and tougher to justify, to both the team and the stakeholders. However, the failure to learn from all experiences is a guarantee that we will repeat them, as well as their associated project consequences.
- Always Create Shippable Products – The team should be committed to creating the highest quality product while making changes. Each change should be done in the context of the belief that the product should be ready to ship at any time.