A Resolution for Business Analysts
While many people have resolved this year to lose weight, I encourage you to lose wait!
Downtime–waiting for instructions, feedback, and database results–is not good for a business analyst. When an end user takes too long to review your requirements document, it's easy to lose focus and momentum. Furthermore, an unexpectedly long-running query can throw you off schedule, forcing you to break valuable time commitments to your project manager and your end users. Besides, it just doesn't look good when your boss catches you surfing the Internet on company time because you don't have anything to do. Idle time is more than annoying, it's deadly.
In Lean Manufacturing, waiting is one of the seven deadly wastes. And although you’re probably not in manufacturing, you can leverage Lean practices for reducing and eliminating wait time to help make your days at work more productive. Additionally, best practices from Agile software development can be reviewed to prevent idle time from even showing up in your day-to-day life. Over decades of working with data professionals like you, I’ve discovered these and other strategies for taking wait out of your life. Let’s explore five of the best ones now.
Key Strategy #1: Process Management
Perhaps the best thing you can do to reduce wait time is understand, develop and manage your own processes. The more structured and organized you are, the less chance others have of making their urgencies your urgencies, which in turn would cause unpredictable flow and unnecessary wait time. Even if you have a well-defined software development lifecycle (SDLC) that your company follows, it behooves you to build specific process maps that relate to your work as a business analyst.
Depending on your level of skill and motivation, these can be as simple as standard flowcharts or as sophisticated as full-blown business process model and notation (BPMN) diagrams. In the design and documentation of your process flows, make wait times explicit. For instance, model a process activity labeled "Wait for end user feedback" between "Submit requirements to user" and "Revise requirements based on user feedback." Explicitly modeling wait time makes it easier to quantify waste from waiting.
Key Strategy #2: Collocation
For many decades now, Agile practitioners have used collocation to enhance communication and work efficiently. Physically locating yourself with end users, developers, or both is a fantastic way too eliminate your wait time. When I worked with Sun Microsystems on a government database project, my client and I were inseparable–and it made a world of difference. No need for voicemail or email and immediate responses to all my questions.
Of course, collocation means bodies are in physical proximity to each other with a reasonable expectation of availability. It's a step in the right direction to have a desk next to your users; however, it does no good if they're never there or always too busy to speak with you. So, to extend the idea of collocation, you must also ensure availability, which means aligning on priorities.
Key Strategy #3: Bottlenecks
Bottlenecks are areas in your process flow that take the longest to complete. To illustrate, let's use a simplified, two-step process: 1) You create requirement, 2) End user reviews requirement. If it takes you one day to create a requirement and your end user two days to review a requirement, then you are producing requirements twice as fast as your end user can review them. Your end user is a bottleneck that will eventually cause you to wait.
To resolve a bottleneck, you must either make it more efficient or slow down the rest of the process to match the pace of the bottleneck. Ideally, you should explore opportunities for getting user reviews done in a day, matching your pace of production. However, if that's not practical, explore opportunities for building higher-quality requirements in two days instead of one.
Key Strategy #4: Continuous Flow
Continuous flow–another concept borrowed from Lean–is about limiting the amount of work your end users and developers need to process at any one time. The opposite of this–which is what you should avoid–is a large batch of work that needs to be processed all at once. Let's say you have 50 functional requirements to document. You could either document all 50 requirements before passing them forward for review or send each requirement for review, one-by-one, 50 separate times.
It may seem odd at first, but the recommendation here is the latter–each time a requirement is documented, ask the user to review it. Yes, that means the user will need to do 50 separate reviews; however, it also means you shouldn't be waiting long for any one review. And if you're collocated, and your end user has the availability because it's been prioritized properly, then it shouldn't be a problem, right?
Key Strategy #5: Test Data
The last strategy that we'll cover is the effective use of test data. People aren't the only things business analysts wait on–there's also that database. How many times have you patiently waited for your long-running query to come back, only to get results you weren't expecting? It happens more often than you'd like to admit, right? This usually happens when you're trying to test simple ideas against several gigabytes (or terabytes) of test data.
Test data that mirrors production are inappropriate for most purposes. You have the same volume of data in lesser infrastructure. This is a recipe for long-running queries, which is a lot of wasted time for you. Instead, build custom test tables that only contain data required to test a specific function. This means, you'll have a whole lot of very small tables. But that's okay. It's better than waiting for one big table to finish processing.
Time is of the essence–so this year don't waste it. It's bad enough waiting in traffic to get to work; there's no sense in waiting for people and systems when you get to work. Manage your internal processes as a business analyst to discover where time is wasted, and then take proactive measures–like colocation, bottleneck reduction, and continuous flow–to reduce and eliminate unnecessary idle time. Also, enhance your unit testing skills, using small, custom-tailored data sets, so you don't waste time waiting on long-running queries. The New Year is upon us, so resolve to lose as much wait as you can!