Blog Culture How to spot development issues and fix them fast
2017-10-16
7 min read

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.

spot-dev-issues.jpg

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

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

New to GitLab and not sure where to start?

Get started guide

Learn about what GitLab can do for your team

Talk to an expert