To be effective at program management, we embrace these philosophies:
- Accept a common vision. There should be a common vision for the goals and desired outcomes for the program that is shared across the teams. This increases your ability to get all the sub-teams aligned and working together effectively.
- Embrace change. Given that programs tend to be long-term initiatives, it is very likely that your environment will evolve during that time, the needs of your stakeholders will evolve, and very likely the people involved will change over time. Embrace the fact that change will happen and be prepared to sense and then respond to those changes.
- Coordinate often. The sub-teams within your program, including the leadership team, need to coordinate their activities on a regular basis that reflects the risk faced by the program. This reduces waste resulting from duplication of efforts and reduces dependency risks between teams.
- Communicate often. Program leadership needs to communicate regularly with program members above and beyond your coordination efforts. This enables the teams to remain aligned and increases your ability to detect risks early.
- Integrate often. The work of the sub-teams – documentation, components, software, and so on – should be integrated regularly to ensure that it works together as expected. This reduces functional risk and enables you to potentially deploy your work products more often to your customers.