Monday, 11 December 2023 by Richard Willems

Common challenges in software delivery

image-100

In a previous blog post, I delved into the 10 steps of software delivery and the six key roles involved in the process. If you missed it, feel free to catch up here.

Today, I’m shifting the focus to three prevalent issues that often arise in the software delivery cycle, along with some strategies to effectively address them.

Challenges

Unclear Goals and Scope

One frequent obstacle in software delivery is the lack of clear objectives and scope at the outset of a project. While overarching business goals are often evident, the specific path to achieving these goals is usually less defined.

A notable example of this disconnect is seen in the separation between the roadmap process and project execution. Often, roadmaps are discussed using free-format documents like Word or Google Sheets, while project execution is managed through a specialised project management tool. This decoupling can create communication gaps and inconsistencies, hindering effective communication, project planning and execution.

Such challenges place a significant burden on Product Owners. They are tasked with the complex responsibility of translating vague ideas into concrete project plans, a process that often involves navigating through unclear directives and conflicting information. This lack of clarity at the start not only increases their workload but also adds unnecessary stress and complexity to their roles. Moreover, when goals and scope are not clearly defined from the beginning, it often leads to scope discussions mid-project. These discussions can disrupt project timelines and lead to misallocation of resources, affecting the overall efficiency and success of the project.

When organisations use quantified figures to determine if a project should start, Product Owners may feel pressured to ‘sell’ the project idea, often presenting overly optimistic project benefits. This issue is compounded when there is no feedback cycle in place after the completion of the project. Without a mechanism to review and assess the realised project goals, the organisation fails to learn from its experiences. This lack of learning perpetuates a cycle of unrealistic planning and expectation setting. The absence of a feedback cycle is a critical gap in the software delivery process. It is essential for organisations to implement post-project reviews to evaluate the success of completed projects. This enables them to adapt and refine their approaches for future projects, breaking the cycle of over-optimism and ensuring more realistic and achievable project planning.

Poor Project Management

Effective management is crucial during the execution phase of a project. This phase is a critical period where the entire team collaborates to achieve set goals. Managing daily tasks can be challenging, particularly in teams with diverse sizes and skill sets. One indicator of potential areas for improvement is the length of standup meetings; unusually long meetings can signal underlying issues in task prioritisation and communication.

It’s essential to consider all facets of project-related tasks. Beyond building new features or fixing bugs, tasks related to testing, documentation, process implementation, and managing dependencies are equally important. Acknowledging all related tasks ensures a more holistic approach to project management.

Progress discussions, which are often conducted in steering committees or with the project owner, can sometimes take on a free-form format. This approach, while flexible, may lead to communication gaps and potential miscommunication, especially when discussions delve into details better handled at the team level. To ensure effective communication with senior management, it’s important to steer these discussions towards key areas: the project’s progress against timelines, the quality of deliverables, budgets vs actuals, and the morale and state of the team.

Structured and documented progress updates are crucial in mitigating the risks associated with free-form discussions. Regularly documenting progress in a clear and concise manner not only aids in better communication but also ensures that all stakeholders are consistently informed about the project’s status. This level of transparency enables more informed and effective decision-making, keeping the project aligned with its business objectives.

Knowledge Gap

A significant challenge in software delivery is the scarcity of skilled (technical) staff and domain-specific knowledge. This scarcity can severely impact the productivity of a team, leading to delays and potential budget overruns. The onboarding process for new team members is particularly affected, often being resource-intensive and diverting critical attention from ongoing project progress. If knowledge transfer to new staff is suboptimal, the long-term efficiency and effectiveness of the team can suffer.

Ensuring that domain, process, and architecture decisions are thoroughly documented is crucial for building knowledge and efficient onboarding. However, these elements are frequently addressed during project execution and, too often, are documented in different systems, leading to difficulties in retrieving information. This fragmentation poses a challenge in updating the documentation when features change, primarily because product documentation is not seamlessly integrated with project execution.

For example, high-level process and architecture designs may be documented in Confluence, while detailed task-related information is stored in Jira. Discussions about these tasks might be spread across various platforms, such as email, Microsoft Teams, or Slack. This fragmentation often forces team members to resort to browsing source code to understand specific feature implementations, which is a no-go for non-technical team members.

Consequently, the disjointed nature of these systems and the lack of integration with project execution make the organisation dependent on key staff members.

Guidelines

To address these challenges, we’ve developed a set of opinionated guidelines to help organisations improve their software delivery process.

  1. Treat roadmap development and project execution as one interconnected process
  2. Use high level requirements during the roadmap process and work towards detailed requirements during project execution.
  3. Implement a feedback loop to evaluate the realisation of business benefits, fostering continuous learning and improvement.
  4. Ensure comprehensive task definition and management, considering all aspects of the project.
  5. Emphasise structured and transparent progress reporting.
  6. Focus progress reports on planning, costs, quality, and team dynamics.
  7. Prioritise documentation as a project deliverable, subject to external review.
  8. Centralise product documentation and discussions to a single platform.
  9. Streamline processes to minimise dependence on individual team members.

These guidelines are adaptable to various software tools and methodologies. The key is to integrate them into your organisational practices to enhance the overall efficiency of the software delivery cycle.

We took these principles and used them as a starting point when we created the project delivery software at Orange Elements. If you’re interested in exploring our solution, you’re welcome to try it out here.

Home Terms Privacy Data processing About us Contact us