Software

Causes of software development woes

Reg readers point the finger at ambiguous requirements

By Dale Vile, Freeform Dynamics

72 SHARE

Research "Agile development" can mean different things to different people. To some it's about easing up on traditional rigour, and even legitimising a quick-and-dirty approach to getting stuff out of the door. To others it's about implementing a different kind of rigour, in order to bust project backlogs in a more robust manner, and generally keep up with constantly changing business demands.

The one thing few dispute in all this is the 'constantly changing demands' bit. If you work in and around software development, we'd be surprised if you weren't experiencing pressure to produce new releases and roll-out change-requests faster than ever before. Indeed, this came through strongly in a Reg reader survey (sponsored by CA Technologies) that we ran towards the end of last year, as did the difficulty of dealing with these dynamics.

Wrapped up in all this is the behaviour of fickle users and stakeholders, who often guess or assume too much up front, then change their minds later when you deliver what they asked for. Not everyone on the business side of the house falls into this category, but if you're an experienced developer, you will undoubtedly have come across them.

But are these kinds of people becoming more common? It sometimes seems so, but the truth is that even the most thoughtful and responsible of users and stakeholders are finding it increasingly difficult to pin down their needs.

This is especially the case in relation to customer-facing applications deployed in a fast-moving market context. But with lots more activity 'going digital' across the business as a whole, volatility is becoming the norm rather than the exception.

Advocates of Agile will be quick to point out that this is a pretty good reason for taking a more iterative and forgiving approach – one in which you don't necessarily need to have everything spec'd out before you cut a line of code. Fine in theory, but unless you are both organised and efficient in one very fundamental area – requirements engineering – it's hard if not impossible to get sustainable results. Put simply, whether you are using Agile or not, if you are in an environment where requirements are either iteratively defined or constantly evolving, you need mechanisms in place to handle that.

Various forms of requirements-registers and change logs have a role to play here, and there are lots to choose from, including open source options. Visual tools connected into requirements databases and models can then make both change management and communication of requirements and dependencies a lot easier and more effective.

The research tells us, though, that the facilities actually in place now are often piecemeal and/or clunky. As a result, despite the use of alternative methodologies, requirements-ambiguity comes top of the list of factors cited in the study as likely to undermine software quality and efficacy.

If any of this sounds familiar, we have written it all up into a short report that you might find useful, along with a few tips and recommendations. And if you find some of the stuff we are pointing out a bit obvious, we make no apologies for that. While many indicate they know what they should be doing, they clearly aren't acting on that insight. It's usually not their fault, it's more likely to be down to difficulty finding time to stand back and look at all of the dependencies and root causes of the issues.

You can download your copy of the report here.

Sign up to our NewsletterGet IT in your inbox daily

72 Comments

More from The Register

IBM gives Services staff until 2019 to get agile

Exclusive 'Agile Ceremonies', Slack instead of email, but still some red tape to cut through

Agile development exposed as techie superstition

Try fast, frequent and frugal experiments instead

Continuous Lifecycle 2018: Agile pioneer Dr Linda Rising to keynote

Events Call for papers closes today – get your skates on

Agile consultant behind UK's disastrous Common Platform Programme steps down

Departure follows Register exposé

So you're 'agile', huh? I do not think it means what you think it means

Doing stuff quickly is only scratching the surface

Kaspersky dragged into US govt's trashcan as weaponized blockchain agile devops mulled

Updated Trump signs defense law with No Eugenes clause, Kaspersky weighs options

The Agile and the Continuous: Database Drift ... Neat film title but something to avoid

Devs: Talk to your friendly neighbourhood DBA

Who really gives a toss if it's agile or not?

Comment Just show me the money!

Culture, schmulture. DevOps, agile need to be software-first again

Decades of preaching about meatware complicated dev life

Tell us your DevOps, Agile, CD and Container stories

Continuous Lifecycle 2017: Call for papers closes in one month