Managing Complexity: Best Practices for Software Development Project Managers

DrupalCamp Spain 2023 - Sevilla, Spain

DrupalCamp Spain - Sevilla

Managing Complexity: Best Practices for Software Development Project Managers

DrupalCamp Spain 2023 - Sevilla, Spain

Software development projects are inherently complex, requiring management skills to balance competing priorities such as deadlines, quality, and stakeholder expectations. To be successful, managers must be able to navigate these challenges while keeping their teams motivated and focused on project goals.

In this session, we explore and discuss strategies for managing the top challenges that managers face in software development projects.

Video:

Slides:

Managing Project Scope

What is included in the project.

Main Issues

  • Lack of definition on requirements
  • Unclear/incomplete list of requirements (but fixed price!)
  • False agreements: Time and Budget over Scope first, then all Scope demanded!
  • Scope Creep

Tips

  • Set Clear and Comprehensive definition of: Objectives, Requirements, Deliverables, Assumptions, Constraints, and Exclusions!
  • Work Breakdown Structure (WBS): user stories, epics
  • Monitor and Control (scope creep!)
  • Project Management tools: shared board, Transparency

Ensuring Time Delivery

When is the project delivered

Main Issues

  • Unrealistic Deadlines
  • Unmanaged Scope Creep / Change request
  • Unmanaged Resources constraints and Dependencies
  • Unmanaged Risk Management
  • Unforeseen events (illness, disasters)
  • Technical challenges

Tips

  • Constraints and dependencies management in advance (all teams)
  • Shared Calendar: Milestones, Sprints, Bank holidays/Vacations…
  • Sprints must be milestone oriented (all teams)
  • Iterative and Incremental development
  • Realistic deadlines (+ MARGIN!)
  • Identify risks

Managing Project Budget

The total projected costs to complete a project over a defined scope and a period of time

Main Issues

  • Unrealistic budget (Scope, Complexity)
  • Scope creep
  • Resources constraints
  • Lack of visibility into spending
  • Changing requirements
  • Lack of previous experience
  • Uncertainties
  • Fixed-Price Contracts

Tips

  • Realistic Budgets (Scope, Complexity)
  • Manage change
  • Learn from experience (yours and others)
  • Track/Review spending regularly: communicate with Stakeholders (Transparency)
  • Agile contracts:
    • Time & Materials
    • Time & Materials with spending ceiling,
    • By Sprint (Story points)
    • Fixed Profit (cost/hour + profit)
    • “Money for nothing. Changes for free” (changes same size)

Managing Stakeholders Expectations

Those whose interests will be positively or negatively affected as a result of project execution

Main Issues

  • Unrealistic Expectations (start and along the project)
  • Lack of Stakeholders buy-in
  • Conflicts on Stakeholders priorities
  • Lack of transparency
  • Lack of trust
  • Personal misalignment

Tips

  • Define a clear Backlog refinement process
  • Invest time clarifying requirements
  • Share previous experience and solutions
  • Regular communication
  • Be realistic
  • Bad news as soon as possible
  • Build trust every day. Trust is hard to gain and easy to lose!
  • Engage!
  • Shared Goals! WIN-WIN situations

Managing Change

Strategies, plans, actions and steps that focus on project change impact.

Main Issues

  • Lack of risk management
  • Resistance to change
  • Poor communication
  • Lack of buy-in from the team
  • Unrealistic expectations
  • Impact on schedule and budget
  • Scope Creep

Tips

  • Communicate effectively
  • Get buy-in from the team
  • Set realistic expectations
  • Manage scope creep effectively
  • Identify and mitigate technical risks
  • Update the project plan
  • Test thoroughly
  • Be flexible and adaptable

Managing Team Communication

Encompass the exchange of information between all the individuals in the project.

Main Issues

  • Duplicated information on different channels
  • Large teams
  • Different communication styles
  • Language barriers, Cultural differences
  • Remote work (unmanaged)
  • Lack of Trust
  • Fear of Conflict
  • Information Overload
  • Lack of time (no communication)

Tips

  • Establish clear communication guidelines
  • Regularly
  • Single Source of Truth: ONE Right tool
  • Avoid Emails (please!)
  • Be proactive, clear and concise
  • Be respectful, open and honest
  • Context-less communication
  • Resolve conflicts quickly and effectively
  • Lead by example

Managing Team Morale

The enthusiasm, excitement, and optimism of a group of coworkers who have common goals.

Main Issues

  • Unrealistic expectations
  • Lack of communication
  • Lack of recognition
  • Unfair treatment
  • Overwork, Lack of work-life balance
  • Toxic work environment
  • Lack of opportunities for growth and development
  • Lack of fun

Tips

  • Creating a positive and supportive work environment, celebrating successes, and engaging in team-building activities.
  • Be empathetic and supportive
  • Set realistic expectations
  • Recognize and appreciate team members
  • Treat everyone fairly
  • Avoid overwork, Promote work-life balance
  • Provide opportunities for growth and development

Ensuring Software Quality

Capability of a software product to conform to requirements.

Main Issues

  • Not clear / Ununderstood requirements
  • Poor design
  • Coding errores
  • Integration problems
  • Testing challenges
  • Unrealistic expectations
  • Changing requirements

Tips

  • Define and document quality standards (Definition of Done)
  • Implement a quality assurance (QA) process
  • Use automated testing tools
  • Monitor software quality metrics: code coverage, static analysis
  • Empower a culture of quality
  • Manage change effectively
  • Release the software only when is ready.

Managing Technical Complexity

Those that whose interests will be positively or negatively affected as a result of project execution.

Main Issues

  • Poor understanding of the technical complexity of the project
  • Lack of communication between the project manager and the technical team
  • Lack of technical expertise on the project team
  • Unrealistic deadlines
  • Technical challenges
  • Poor testing
  • Lack of documentation

Tips

  • Get a good understanding of the technical complexity of the project
  • Communicate effectively with the technical team
  • Build a team with the necessary technical expertise
  • Set realistic deadlines
  • Identify and mitigate technical risks
  • Implement a comprehensive testing plan
  • Create and maintain good documentation
  • Be flexible and adaptable
  • Get help from experienced professionals

Managing Project Risks

Undesirable events that may or may not occur during a project.

Main Issues

  • No Plan
  • Unmanaged Dependencies, Agenda incompatibilities
  • Technical difficulties
  • Legal constraints
  • Resources contraints
  • Employee turnover

Tips

  • Risk Management plan: Risk, Consequence, Likelihood, Action plan
  • Explore potential risks: similar projects, past experience (all teams!)
  • Implement Risk Mitigation Plans
  • Balance Risk Mitigation Cost and Benefits (Safety first!)
  • Monitor and Control: Risk Register Log

Conclusions

Find your own path!

  • Manage Scope
  • Ensure Time Delivery
  • Manage Budget
  • Manage Risks Plan
  • Manage Stakeholders Expectations
  • Manage Change
  • Ensure Software Quality
  • Manage Technical Complexity
  • Empower Team Communication
  • Empower Team Morale

See also