Oct 16, 2017 - Patrick Foster  

How to spot development issues and fix them fast

Guest author Patrick Foster shares how to get things back on track when a development project starts to go awry.

Development issues can be expensive to fix — and the later you uncover them, the worse it is. If you’re running (or dependent on) a development project it’s really important that you stay on the ball at all times. Communication, transparency, and accountability are all essential. Here are some development project red flags that you need to be aware of – as well as how you can address things if it looks like they are starting to go wrong…

Track developer stress and coping strategies

Start with getting to know the team behind the work – learn how to track their stress levels accurately.

If you are working with developers or managing a team of them, you will start to get a feel for their stress levels via your day-to-day interactions. If you know them reasonably well, you will probably be able to recognize stress in the things that they say, or in way that they act. (Everyone handles stress differently, depending on their personality and past experience).

The easiest way to diagnose developer stress? Over-complication of simple tasks. If you find it’s taking you about 16 emails to discuss some simple edits to a site menu, it’s probably a sign that something is wrong, and that undue pressure is being applied somewhere along the line. Once we enter stressful realms, communication tends to get very fraught and people will start to feel on edge all the time.

It’s important to address any workflow or workload issues that might be causing stress, but don’t forget that one of the biggest stressors is probably other people. It could be that development personalities and job responsibilities are clashing in unproductive ways. Development teams need the right mix of people and skillsets in order to function harmoniously (just like any other team). Does your team have all of these crucial attributes? It could be that the team is out of balance somewhere, so spend some time with people in order to improve team dynamics and implement coping strategies.

Stop little things from snowballing

If little tasks and small instructions are constantly getting ‘lost in briefing’ it could signal that there is a missing chain in the communication workflow. Small oversights can quickly build and create mountains of frustrations for the team. Missing even the most minute detail can completely derail an otherwise successful development project, so react immediately if you spot any oversights, no matter how small.

Features like Issues and Issue Boards can help everyone break down complex tasks into smaller individual ones and track their progress across the development lifecycle. Singular tasks are often be the best way for developers to tackle a subject – this is especially true for junior developers and trainees. Overloading people with too many tasks at once will crash their bandwidth, so approach briefs in a very ordered manner.

Adopt ‘slow’ solutions (where needed)

Sometimes it’s not possible to whack a plaster on an issue and call it a day. Some solutions to development problems are just as complex as the problems themselves, and you need to focus on proper, rather than fast, implementation. You might need to factor in extra time or budget (gulp) in order to get a development project or team back on track. The effort you put into the (right) solution will pay off in the long run.

A good example of a ‘slow solution’ is the steep learning curve developers face when adopting new tools and ways of working like Git – but that shouldn’t put you off. It may be that right now your development team need to spend some time getting to grips with a process, framework, or tool that will save hundreds of development hours further down the line.

You may also want to take advantage of the Minimum Viable Change Principle that takes into account the full scale of development complexity, but focuses on moving the project forwards with a minimum viable fix, allowing for further iterations when the time is right. This is a great strategy that should be implemented on a regular basis, especially when time is of the essence and a full raft of features is not immediately feasible.

Focus on logic

Development is an extremely logical task, and you need to approach development troubleshooting in the same logical and methodical way. Development problems need to be fully mapped out in a logical sequence, not treated reactively with ‘creative’ solutions.

Specificity is a really important thing when discussing potential development issues. Unclear and vague pronouns aren’t helpful – be ready to be super analytical and direct.

Development projects are notorious for running over-budget and taking up loads of business time, which can cause logic to fly out of the window in a state of panic. Think carefully about any knee-jerk reactions, and don’t be so ready to burn a whole project because of a few final teething problems.

Review your team model

It all works better when you embrace the idea that “product,” “design,” and “engineering” are just different perspectives on the same thing.Greg Veen

Slow progress or projects stalling could come down to your software team model. When was the last time you reviewed yours? There are a few different software project management methodologies that can really help structure and improve previously ‘messy’ development teams. Have a look around you, and see whether it’s time your team went in for an upgrade?

From Scrum to Kanban, there is an increasing focus on DevOps as a way to have more joined-up development and software teams. A product engineering model can be a great way to improve company and project efficiency – it’s certainly helped big software companies like Shopify refine their development strategy.

Measure constantly for project agility

If you want to find problems, you need to be tracking them first! From collecting the right data, to testing and tracking, make sure that you constantly keeping tabs on the project as it progresses. Adopting tools like Cycle Analytics will ensure that you always stay on track with how your projects are progressing, and the data you’ll harness will become an invaluable source of business intelligence.

One great way to incentivize teams and fix any looming issues on the horizon is to make performance and progress visible, then discuss them openly. When a problem does surface, treat it as a single entity and don’t wait for any more to pile up – this is a much more agile approach that will help keep projects streamlined.

Build communication into the project

Show, don’t tell. Development progress needs to be communicated in clear and visual terms – language is often an insufficient medium for development (and developers). Consistent bug reporting and watertight specifications are important. Specification quality needs to be at 100 percent, otherwise you can’t expect the code you get back to be 100 percent either.

If development is rubbing up against teams with little development experience, communication becomes even more essential. Reducing the amount of jargon can help non-developers stay in the loop, but at the same time, it’s important that a business learns how to adopt development and software language (especially if it relies on it for its income).

It’s disheartening to see how little some software company employees actually know about software development – better communication can help rectify this issue.

The halfway point check-in

The halfway point is a critical yardstick for any development project. It’s a great time to check in with your team and see how they are getting on. By then, you should have a pretty robust feel for how people are coping, and whether the project is going to be delivered in time.

Having a formal process and meeting for the halfway point isn’t always feasible (it largely depends on project size), but it’s a good idea to do nevertheless. Getting the team together and getting visibility on progress is also a morale booster.

If things aren’t looking good halfway? Don’t just cross your fingers, and hope for the best for the rest of the time – you need to tackle the issue there and then. Go away and review all the data that’s available to you before you make any rash killswitch decisions.

In order to keep your development projects on track, you need to become good at communicating with your development team, embracing agile solutions wherever possible. What’s your number one project management tip?

About the guest author

Patrick Foster is an ecommerce consultant and coach, and has been helping founders and ecommerce startups for longer than he cares to admit. A passionate advocate of ecommerce journeys and stories, he is always looking to find likeminded thinkers and entrepreneurs. Come say hello on Twitter.

Cover image by Alexander Shustov on Unsplash

For the latest and most detailed news follow @gitlab on Twitter. Future blog posts suggestions RSS

Install GitLab in 2 minutes

With Ubuntu, Debian, CentOS, openSUSE, and Raspbian packages or from source

Install GitLab Now

Try GitLab Enterprise Edition risk-free for 30 days.

No credit card required. Have questions? Contact us.