Chapter 31. Freelance Requirement Elicitation – A Guide for Feature Development

Imagine for a minute that you're a freelance developer who was handed a new feature to build by a client. Then picture yourself building an elegant feature, all the code working perfectly. You follow best practices and ensure that all the potential edge case scenarios are covered.

Now imagine that you're demoing the bright and shiny new feature to the client. But instead of telling you that you're the best developer in the world and they're going to name their first child after you, they look at the application confused, because what you built didn't match what they had in their mind at all.

This is a scenario that is played out all too often in the freelance development world. And in many cases, it's due to a poor requirement elicitation process. The story I just mentioned is not a made-up parable, it happened to me recently. And when I say recently, I mean yesterday (at the time I wrote this).

My Name is Jordan and I Wrote a Poor Requirements Doc… "Hi Jordan…"

So, what did I do wrong? The issue was caused by me rushing through the requirement elicitation phase. I have worked for this specific client for over 5 years and I got lazy confirming the exact set of requirements needed for the feature.

Freelance requirement elicitation

Let's walk through what happened so you can avoid the same embarrassment and wasted time.

How it started

A few weeks ago, the client contacted me and said that an application I built for them needed a new feature. The application is an invoicing system that their drivers utilize to generate invoices for clients:

How it started

In an email, the client attached this spreadsheet. He said that the application had to generate this invoice to give to the customer.

The build

After receiving the email, I spent a few days modeling the new feature. I put a list of all the messages that would be passed between modules. I built UML diagrams to ensure the data was modeled properly. After careful planning, I spent two weeks building the new feature and it came out perfectly.

To be 100% honest, I was very proud of the work that I did. The feature was flawless and completely bug free. It also fit in perfectly with the rest of the application. I deployed the code to the staging server and I waited for the client to start showering me with praise… but the praise never happened.

The problem

I emailed the client and gave a video demo of the feature. A few hours later I received an email from the client that said:

I'm confused, what exactly is all of this? In my email, I just meant that we need the invoices to be formatted like this spreadsheet.

So, it turned out that the client didn't want a new module built into the application at all. Instead, they simply wanted an additional format option for their invoices.

Who was at fault?

So, who exactly was at fault? It may seem natural to put the blame on the client since they didn't make their request clear at all. And I was tempted to get upset and blame them (especially for the first 10-20 seconds of my fury). But then I realized that this issue was completely within my control.

As freelancers, it's our job to manage each stage of a project. If we rush through the requirement elicitation phase, anything that happens after that stage will fall on us.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.24.134