In a time when we can control our homes from our mobile phones you would have thought that building applications would be about as basic as it gets. After all, in its simplest form all we’re really doing is reading and writing data to a database, right? We’ll we’re heading in the right direction and a good example of this is low code, no code platforms such as K2 which enables business users to step up and create their very own App’s to do what they need to and how they need to do it. Check out an example at Kimberly Clark to see how they’ve rapidly rolled out over 500 App’s following this approach.

As we’ve worked with more clients over the years, specifically where we’ve used technologies such as K2 and we’ve remove the technical challenges, we’ve found that the main challenge being faced in projects is not around the development and technical capability, majority of project challenges are related to defining the requirements and translating them into simple and effective solutions.

So, we’ve got the technology and the know-how, so how do we turn this around. Here’s our top 5 ways to deliver more successful software projects –

1. Engage your user community more actively

We’ve seen a number of projects go in the wrong direction, especially in larger organizations, where managers or influencers, who are not necessarily close to the day to day activities, describe either how they think things work or the theory of how things should work during requirement gathering stage. Ultimately translating these requirements into solutions can lead to frustration and low user adoption.

To get around this challenge, identify key users at varying levels within the various teams or departments to get a broader view of the landscape. You’ll soon spot any discrepancies and identify the areas where you need to do a bit more digging.

Try using a simple technique called the “5 whys”, it’s an iterative interrogative technique used to explore the cause-and-effect relationships underlying a particular problem. The primary goal of the technique is to determine the root cause of a defect or problem by repeating the question “Why?” Each answer forms the basis of the next question.

2. Get to the right level of detail

It’s a bit cliché but we all know that the devil’s in the detail. Whilst this may be true you need to find the balance, position them too high and critical details could lead to massively inadequate estimates and throw budgets out the window. Go too detailed and you could get stuck in analysis paralysis and never get off the starting blocks.

This can be a bit tricky one to get right and takes a bit of trial and error to get there but to help steer you in the right direction we recommend you start by identifying the relevant users/roles and defining all their key activities. Following a standard User Story structure to ensures that all requirements are captured consistently, specific to a user or role with clear objectives and acceptance criteria. Often the acceptance criteria are ignored but we can’t stress the importance of this information, an invaluable insight can be gleaned from it.

3. Visualize the end game

This is where we need to rethink your approach to how you deliver your projects. In the same way architects, have evolved from using technical drawings and blueprints, to using 3D computerized walkthroughs to help people visualize the end result of their design. Software projects are no different, you would be foolish to think that end users can read and digest reams and reams of documentation only to have the exact same understanding and vision as the author intended.

Traditional approaches have failed time and time again and by adapting and making incremental changes to your process, you will be surprised in the shift of the end result. As an example, using wire framing and prototyping techniques can bring ideas to life extremely quickly. More importantly they allow you to visually collaborate with users and have the flexibility to adapt and evolve at a fraction of the cost of reworking and coding or configuration.

This doesn’t have to be complicated, simple tools like Balsamiq are very simple to use and abstract away from a polished image to avoid debates over colour, images, etc.

4. Define the technical landscape and constraints

Technology is evolving quickly and easily, cost effective access to incredible tools and accelerators are enabling solutions to be built faster than ever, this is especially relevant in the cloud space with players such as Amazon AWS and Microsoft Azure.

Whilst this is great we need to be mindful that organizations are still adjusting to the idea of relinquishing control and having data moving between on-premises and the cloud. In fact, some organizations such as financial services companies are constrained by rigorous data protection policies and simply aren’t able to make this shift.

Whether you’re looking to build new capabilities or extend any existing applications you need to understand the technical landscape and organizational constraints to ensure the appropriate solutions can be designed.

Here are a few key questions you need to be asking before you embark on your journey –

  1. Is the cloud an option or are you limited to on-premises implementations
  2. Is there an existing product on the market that meets our needs?
    1. If there are viable solutions out there but they don’t fit 100%, do they allow for extensions to enable us to close that gap
  3. If their product option isn’t viable then do, we want to leverage a platform or develop a solution from the ground up
    1. There are pro’s and con’s either way but depending on the problem you’re tackling its likely to lean one way or the other

Ask these questions in the early stages of your projects to ensure that you clearly identify the target landscape and organizational constraints.

5. Priorities Your backlog objectively

Whether you’re working with an internal delivery team or working with a partner you need to have a clearly defined backlog of stuff that you want to deliver. Most importantly these need to be prioritized to ensure that items that deliver the most value are delivered first to be able to start realising your investment as soon as possible. The question is how do you take the emotion out of this process to avoid giving in to the person who shouts the loudest or is the most convincing?

As a standard practice, we priorities our backlog against business benefit, we break this down into key indicators that combine into a single overall value, and cost/effort. this ensures we can deliver the most value in the shortest possible amount of time. This approach takes the guesswork out of it and turns it into an objective exercise.

If you’re interested in finding out more about our approach to projects, or training your existing team to gear them up for future initiatives and accelerate their learning, reach out to us at