Insights, Resources

8 Tips to Help You Manage Complex Software Projects

8 Tips to Help You Manage Complex Software Projects

Summary:

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.

USE THIS PLAY TO…
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.

 

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

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

Principle 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

Principle 4 – Trust

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

Principle 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

Principle 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

Principle 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

Principle 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.

 

Article originally published by Atlassian


About Us

Cubility are the trusted advisor to some of Australia’s largest oil and gas, mining, utilities and public companies. We help ensure your company is operational ready and business effective through modern technology strategies, program management and IT support.

Helpful links: