Managing complex software projects

So you have to manage a software project where products, platforms, and cross-functional teams come together. Here are the principles and practices you need to wrangle a ludicrously complex project.


Get off to a great start and keep the momentum high.

Increase your chances of delivering a once-in-a-career, game-changing project.

If you're struggling with shared understanding or velocity on your Health Monitor, running this play might help.

Copy link to heading Copied! Read more

So you've been asked to lead a super complex, mission-critical technology project for your company. This is the one keeping your CEO awake at night, and probably involves one or more of the following:

  • integration of a platform or shared component across multiple products
  • collaboration across multiple teams or departments (some who haven't worked together previously)
  • significant technical risk
  • lots of dependencies between different teams
  • teams in multiple timezones
  • an aggressive timeline
  • intense scrutiny by senior stakeholders

Congratulations on being trusted with such a large scale, high-visibility project. You're in rare territory here – only the brave dare enter, and only the slightly crazy come out alive. This calls for a play with a twist!


As the project manager, read through this play independently and then re-tool your project plans with a focus on the stuff that really matters.

Then walk through it with your project sponsor and stakeholders (so they know you're in it to win it).

Some software projects are so complex you'd think it was a joke. Here's how to manage them.
User Team


Measure Clock

60 min

Difficulty Easy


Running the play

Carve out an hour and get ready to step beyond standard project management, embrace the challenge, and get ready to crush it!


Your existing plans

Red pen


Principle 1

Conscious collaboration

Plan in the same room – Every team on the project should be part of the planning process, and literally be there in the room. The travel costs are a drop in the ocean compared with the cost of building the wrong thing.

Agree on the rules of engagement up front – Answer questions like "Will platform teams do the integration work?" and "How will we engage teams like marketing, support, and operations?"

Cross-pollinate between teams – Secondments, rotations, embedded teams, or even combined teams are effective ways to reduce risk and Get $#!τ Done. The empathy and trust they build doesn't hurt, either.

Plan for roll-out, migration, and/or adoption – Don't lose sight of how you get this project to customers. Share your plans with the team and stakeholders, and keep them up to date. Bonus points for running a roll-out simulation to test and gain confidence.

Assist and reward adoption – There will be problems to flush out and fixes to make. If you're building a platform service, save some bandwidth to help the first product-side teams who adopt it.

Challenge the org chart - Bring teams from across the company together for the life of the project within a dedicated project organization.

This will help you avoid...

  • Wasting time trying to realign roadmaps and priorities between teams
  • Shoehorning in additional teams after plans are made
  • Unproductive meetings
  • Painfully protracted decision making
  • Doubts about whether the platform will actually work
  • Teams trust each other
  • Teams' goals and roadmaps align
  • Engagement models and resourcing plans between teams are clearly understood
Principle 2

Shared understanding

Clarify the "why" and "what" – Set goals collectively as a team of teams so you're all aligned. Where possible, platform teams should propose initiatives in terms of business value so they can be prioritized easily against product initiatives.

Make scope and progress visible – Share your roadmap and keep it up to date. Pro-actively let your team know about changes to scope and/or timelines (there'll be plenty!).

This will help you avoid...

  • Teams not buying in to the project
  • Delayed decisions or mistakes on trade-off discussions
  • Insufficient resources for the scope you've agreed to
  • Day-to-day coordination issues like wasted work or duplicated effort
  • Everyone on the team knows the elevator pitch by heart
  • Teams reference your project poster to make sure they're on course
  • Health Monitor sessions are trending green
  • Revisions to shared plans happen frequently and painlessly
Principal 3

Clear ownership

The "administrative" stuff – Assign a full-time owner for the project (if you're reading this, it's probably you!). Have your executive sponsor promote the project internally, and be on call to unblock when bottlenecks pop up.

The technical stuff – Include a cross-product architect in your project team so they can look after high-level design and implementation concerns. Agree on who owns the overall customer experience (e.g., platform, or product?), as well as who owns each major deliverable.

Map it out – Run the Roles and Responsibilities play with the entire project team (or representatives from each sub-team). Bonus points for running it within each sub-team, too.

This will help you avoid...

  • Team members treading on each other's toes
  • Generally creating bottlenecks
  • Work falling through the cracks
  • Bloodthirsty sponsors who didn't get an update about changes to scope or timing
  • Decisions are made quickly
  • Stakeholders know who to contact with questions
  • The full-time owner communicates updates each week
  • Deliverables are shipped on time
Principal 4


Recruit in the right people – Gather your best communicators, integrators, those that quickly build trust & have a positive attitude. You need folks with a high degree of attention to detail and urgency.

Swap trade secrets – Encourage the platform teams to draw on the product teams' wealth of knowledge about your customers. And bring the product teams up to speed on platform work through brown-bag presos, internal blogs, lunch dates, etc.

Build momentum – Go for a shared quick win early on to boost morale and cement the teams' trust in each other. And don't forget to run Health Monitor sessions every month!

This will help you avoid...

  • Frequent roadblocks and broken promises

  • Uninspired problem-solving

  • Low morale

  • Teams enjoy working with each other
  • Milestones are celebrated and communicated jointly
  • Interpersonal or collaboration issues are discussed openly and resolved quickly
Principal 5

Shared milestones

Track your progress – Share your project timeline and use it as your single source of truth. Keep it updated to reflect reality, even if this means weekly adjustments. Which it will.

Ship (and celebrate) in small increments – Recruit members of the project team to act as cheerleaders who help keep velocity and morale high.

Collectively own quality – Build integration and testing time into the plan, and make sure your "definition of done" is agreed upon and documented.

This will help you avoid...

  • Surprises during testing
  • Slow (or no) progress
  • Misaligned deliverables and delivery dates
  • Stakeholders are delighted by your steady progress

  • Customers start reaping the benefits well before the project is complete

  • You're getting value out of the platform faster than expected, and with little overhead

Principal 6

Effective decisions

Be thoughtful – Take both long and short-term implications into account. Carefully consider who should make the call. Don't just assume the full-time owner or exec sponsor is best suited.

Optimize for efficiency – Run the Trade-off Sliders play so individuals and teams are empowered to make every-day decisions autonomously. For major decisions, use the DACI framework.

Organize and communicate – Set up a decision register to keep track of what's being (or has been) decided, and refer to it in your weekly project communications.

This will help you avoid...

  • Teams becoming more uncertain with every decision they make as there's too much information lying "below the waterline"
  • Considering a solution or timeframe based on outdated or incorrect information
  • You revise and recount the same decision numerous times
  • Decisions are made quickly
  • Different views are heard before accepting a single decision
  • Decisions aren't being reopened or disputed
Principal 7

Manage dependencies

Anticipate bottlenecks – Make a table or diagram that maps out who your team relies on, and who relies on your team.

Keep tabs on it – Assign one owner from each side who looks after each dependency. Make sure the dependency owners understand and communicate the impact of changes to all upstream and downstream teams.

This will help you avoid...

  • Downstream delays and missed milestones
  • Frustration, flailing, and general hand-wringing
  • You have a concise, comprehensive, self-serve way to keep track of dependencies

  • You can visualize the dependencies as a map or chart

Principal 8

Communicate, adapt, celebrate!

Create a shared communication plan – Weekly: face-to-face meeting for general project updates. Fortnightly: demos, status updates to stakeholders. Monthly: Health Monitors, project "all-hands". Or something like that. Enlist your engineering managers, PMs, and architects to help get comms out.

Make the most of project meetings – Include a 10-minute demo or problem-solving session in your weekly meetings to keep the room engaged.

Sync 1-on-1 – Meet weekly or biweekly with the team lead and product manager of each work stream to check progress against your schedule, identify any schedule changes, discuss new risks or issues, and talk about team morale.

Be easy to find – Establish a HipChat room or Confluence page as your forum for Q&A and/or escalating problems.

Celebrate even the small wins – They snowball into big wins faster than you'd think!

This will help you avoid...

  • Team members losing sight of the bigger picture
  • Low morale and high burnout
  • Unfocused, unproductive meetings
  • Stakeholders feeling blind-sided by changes to status, risks, milestone dates, etc.
  • Stakeholders look forward to receiving your status updates
  • Team members are aware of the big picture
  • Momentum builds up and becomes unstoppable

Nailed it?

Be sure to run a full Health Monitor session or checkpoint with your team to see if you're improving.


  • Share the stakeholder list widely so everyone knows who's who.
  • Resist the temptation to reconcile existing independent plans - it's much better to start from scratch and build an integrated plan that involves all the teams.
  • In addition to planning together up front, remember to re-plan together continuously throughout the project.
  • Don't feel confined by the org chart – challenge it, and bring teams together.
  • Limit the number of cross-product projects that each team is working on.
  • Make sure all teams are specifically including time in their schedules for non-project time (e.g. conferences, leave, company events, other meetings, etc).


You've probably recognized some gaps in your project plans, and have ideas on how you'll change your approach.

The kicker here, though, is to not add more work!

Kill activities or cancel meetings that aren't adding value and re-purpose that time for the activites you've picked up.

Related Plays


    Goals, signals & measures



Want even more Playbook?

Drop your email below to be notified when we add new Health Monitors and plays.

Thanks! Now get back to work.

Got feedback?

Drop a question or comment on the Atlassian Community site.