Requirement Refinement Madness: How We Lost Our Way and Got Stuck with Lego-Loving Users

·

·

5 min read

Leadership Bytes for Coders


Goodbye bug squashing, hello people problems! Your guide to navigating the tech-to-leadership transition.

Like a twister I was born to walk alone...

Requirement Refinement Madness: How We Lost Our Way and Got Stuck with Lego-Loving Users

Created on 2024-05-08 16:15

Published on 2024-05-08 16:25

Let’s be brutally honest: most of our end users see us, the mighty software developers, as wizards. They picture us waving magic wands, instantly conjuring up apps, reports, and flashy new features, all with a few keystrokes and some cryptic muttering. I’ll admit, we’ve partly created this monster. In our eagerness to please, we trained our users to expect a fast-food mentality when it comes to IT development.

At some point in your IT career you realize that your end users are all using Lego Duplo blocks to squish ants, while your team is building complex Rube Goldberg machines with Lego Technic sets to automate ant farm care. Sadly, all this bolt-on scope-creep complexity comes at a long-term cost of code spaghettification.

How did this glorious mess happen? Why do so many IT projects derail due to runaway requirements and sky-high expectations? Let’s break down this ‘requirement refinement madness’ and figure out a path to sanity.

The Curse of Being Awesome

Remember that time we whipped up a quick fix to change a button color in a day, saving the big product launch? Or when we churned out that custom report on celebrity puppy purchases overnight, just because the VP of Marketing asked nicely? We’re our own worst enemies in this respect.

Our dedication and “can-do” attitude have backfired. Instead of respect for the complexity of software development, we’ve bred a sense of entitlement within our user base. They think every request is “simple” and that bending reality is part of our job description. Yes, technically, with infinite resources, IT can pretty much do anything – but do you, Junior Developer, have 50,000 hours and $30M to spend on bringing in some SAP variant? Keep the discussions focused on what’s reasonable and feasible based on real-world limitations.

PS – using the words “simple” and “easy” are fireable offences on my teams. When you say those things, end users think fast, quick, and cheap. Use straightforward instead, as it doesn’t have a time connotation associated with it.

The “Just Do It” Trap

The more we fulfill seemingly frivolous requests quickly, the more we become the go-to fixers for any problem, big or small. It’s a vicious cycle – they ask, we deliver, they expect more. Suddenly, the team whose primary purpose is building core infrastructure and strategic software solutions becomes glorified help-desk heroes.

This leads to unrealistic expectations, where every minor tweak is treated with the same misguided urgency as a production system outage. Soon, strategic development grinds to a halt as we play a never-ending game of whack-a-mole with minor user demands.

Key Strategies to Regain Control

We’ve spent enough time dwelling on the problems. Let’s ditch the wizard hats, reclaim our sanity, and switch our mindset from reactive fixers to strategic masterminds. Here’s how to break this requirement refinement madness:

1. Stick to the Process

I know, processes aren’t always sexy, and they feel slow compared to the instant gratification of hacking quick fixes. But a well-defined process for requirement gathering, prioritization, and approval is our safety net. It prevents IT from becoming a chaotic free-for-all and allows for strategic alignment of projects.

The trick is to sell the process to the users. Don’t just enforce bureaucracy; help them understand why a thorough process benefits them in the long run. Better requirements upfront mean fewer costly changes and reworks down the line. It’s painful, and your users will scream at you until you’re blue in the face – but, with time, they will start to see the benefits, start trusting in the process, and eventually think this was all their idea to begin with (taking all the praise).

You see, Karen from finance is a naturally occurring squeaky wheel (not that her needs might not be valid), so to get her off your back, you decide to quickly finish her task and be done. Well guess what, she comes back 2 days later with another “quick” thing for you to do, then another. Karen is also a gossip, so soon Kevin is coming to you as well. Suddenly everyone is walking up to you at all hours of the night asking you to do things for them. This zombie apocalypse could have been avoided if you just gently pushed Karen to use the change request system…

2. Manage Perceptions Carefully

We need to cultivate the perception of responsiveness without sacrificing long-term sanity. This means not making rash promises, even for seemingly simple changes.

Train users to respect the process by setting realistic expectations from the start. Phrases like “Let me check with the team and get back to you with a timeline” can work wonders, giving you space to assess the real impact of the request.

Don’t be afraid to say ‘no’ (diplomatically, of course). Instead of a flat refusal, offer alternatives: “That specific functionality isn’t feasible at the moment, but could we explore option X or a phased approach?”

3. Tame the Shouting-Into-the-Void Syndrome

Nothing derails a project faster than users feeling ignored. If the official change request system feels like a black hole, no wonder they find our desks more appealing!

Make communication and transparency a priority. Invest in a ticketing or project tracking tool that provides regular updates to users. Even a simple “We’ve received your request, and it’s in assessment” message can make a world of difference. Go even further and give them some ETA on when they can expect to hear back from you on this – won’t get around to it for 2 weeks, let them know. But then, when the 2 week comes around, make sure you’ve gotten back to them with some next steps (which could be an update that it’s going to be 4 weeks or whatever – not the best, but the transparency builds trust and silences squeeky wheels).

4. Responsiveness and the Illusion of Magic

The key here isn’t necessarily to become faster; it’s about giving users better visibility into what’s happening. The first step is to acknowledge requests immediately – an automated “We got this!” email the moment a ticket is created goes a long way in calming frantic users. Provide regular status updates, even if they’re as simple as “Your request is in the queue for analysis.” This keeps users in the loop and combats the sense of helplessness a silent void creates. Another trick is to break down complex tasks into smaller milestones: “Requirement gathering complete,” “Initial design underway,” etc. This way, users can sense progress even if the overall project timeline is lengthy. (PS – it’s why UAT and sprint demos need user involvement).

5. The Fine Art of Requirements Gathering

This is where the most epic battles of this madness are fought. Users rarely know what they really need – they often describe symptoms, not root causes. It’s on us to dig deeper to uncover the true problem to be solved. Don’t take requests at face value; ask “why” repeatedly until you understand the real challenge they’re facing.

Agile approaches actually give us some flexibility here. We don’t need a 100% complete picture of all requirements to get started. However, we do need a solid directional framework and a project charter. This is crucial to limit the disruptive “requirements swing” late in the game.

Think of it like building a house. In traditional waterfall, you’d need a full architectural blueprint down to the last light fixture. In Agile, you can start with the foundation and overall framing, knowing the rooms and their purposes. This leaves room for refining the interior design details later, within the agreed upon structure.

Get users actively involved in the process. Conduct early workshops and iteration reviews to refine the core requirements and get their continuous feedback. This shared understanding and adaptable framework help prevent major surprises and rework down the line. Remember, meticulous requirement documentation might seem tedious initially, but it will save you countless headaches during development and prevent misunderstandings.

6. Approval and Triage: Putting Guardrails in Place

No process is complete without gates and prioritization. If everything is a #1 priority, then nothing is a #1 priority. We can’t do everything, and users must understand this. Establish a clear approval chain, whether it’s a steering committee or a designated project manager. This way, you ensure only validated and prioritized requests move forward. Speaking of prioritization, it’s crucial to classify requests carefully (ex: critical bug vs. nice-to-have feature). Be transparent about how prioritization decisions are made so users feel heard. It’s also important to set a ‘Definition of Done’ early on. When is a requirement truly considered complete? Avoid moving goalposts by agreeing upfront on what constitutes a successful outcome. (And don’t be afraid to run to their bosses when they start getting silly with their requests, you know they’ll be running to yours when their “brilliant idea” adds an additional 10 weeks to the delivery schedule).

Final Thoughts

Changing ingrained user behavior requires a shift in mindset on both sides of the IT fence.

We built this Lego-loving monster, and we can retrain it. It won’t be fast or painless, but consistency is critical. By sticking to a well-defined process, prioritizing transparency, and actively managing expectations, we can guide users away from the Duplos and reintroduce them to the beauty and potential of those intricate Technic gears.

Remember, the goal isn’t to become unaccommodating or rigid. It’s about fostering true partnership between IT and the business, ensuring that our technological wizardry is aligned with the company’s real needs, solving real problems, and driving innovation.

Copy Link

// COMMENTS

Discover more from Does God Exist?

Subscribe now to keep reading and get access to the full archive.

Continue reading