Customers Shifting Requirements

My process on when customers shift requirements mid-work. Thought it might be helpful to others:

Immediately scope out the work. Get an estimate for how long it will take you to do. Write a paragraph or so in a journal on what you need to do to get it done. This doesn't have to be hyper-specific, just enough to know the rough scope like how we do it in task poker. If the work can be done in under a day and doesn't have any secondary work required with it (ops burden, UI work, etc.), do the work. If the work takes longer than a day or could add more work outside of me later, push back.

About pushing back in detail/how and when to do it:

If they ask more than a few times or especially if they go back and forth on the same subject, push back. Never do work that undoes other work without conferring with the team and don't do significant amounts of work without re-addressing scheduling.

Sometimes, when pushing back, the wise thing to do is to confer with your teammates, manager and the PM first to come up with an action plan. This is especially true for requirements that come from groups that are less familiar with software development or who aren't very cooperative/helpful. It should be a goal of yours to build the highest level of trust that you can, but sometimes customers lack the knowledge to work closely with you. That is okay.

Don't explicitly commit to anything without talking with your teammates unless you're 100% confident the work can be done in a matter of minutes. If you tell the customers you're going to do it, it's set in stone. If you don't, you can always back away after a few hours and say "This is too much work to do ad hoc. Let's schedule it."

Customers are delighted when they find out you just took care of something for them and show them the results. Whereas if you give them an expectation, you'll likely either get acceptance on success or disappointment on failure. This is only for small requests from the customer though --  you need to set expectations for large projects or you won't get enough customer feedback, and you need to be fair to them in terms of letting them know how progress is going in order to build trust.

Always make sure the team is aware of anything you're working on, especially the PM. Sometimes, the customer and PM don't align and it's important to surface that before you start work.


Popular posts from this blog

Low Level Design Part 3: Estimates

Low Level Design Part 1: Reading and Gathering Information

Using Kanban Boards to Stay Organized and to Stay Motivated