Skip to main content

Author: Robert Galen

The Agile Business Analyst: Seeing the Forest, The Trees, and the Grass…Mostly the Grass!

galen_batimes_jan11I’ve been coaching several agile teams in a singular organization of late. The organization is quite mature from an agile perspective. However, I’ve been somewhat troubled by some of their recent “behaviors” driven from the Product Owner and business-side ranks within their teams.

In essence, I want to share & explore those behaviors here, sort of to vet my thoughts regarding how healthy they are and to explore root causes.  Here are my observations-

First , there is a tendency to favor UI-centric work over Backend work within their application domain.  The conversation goes like this-

There needs to be “customer facing” work for us to deliver with every release. Our internal stakeholders need to be able to “see” our efforts in order to understand what we’re doing and determine that it has value. Being able to visualize the work, literally, makes that process all the easier.

Not just for internal stakeholders, but also as we explain to our real customers what we’ve just delivered on a release-by-release basis.  Clearly features you can see trump those that are less demonstrable, for example, performance improvements of our backend transaction processing or internal backend bug repairs.

The second challenge surfaces around the size and relationship of the Product Backlog items. There’s another tendency to group feature related product elements together. For example, if a team is responsible for the advertisement editing, marketing & promotion social media, and promotion tracking sub-systems in their marketing support product, then they would only focus on one of those sub-system areas at a time. This conversation goes like this-

We simply must continue to work on the advertisement editing sub-system until we get all the requisite features in place for our customers and the marketplace. Others point out–but what about the tracking component? We haven’t updated it within the last two years as we play catch-up on editing. It’s getting more and more brittle with technical debt and we simply are ignoring it? And the answer is, we need to focus one ‘one’ priority!

Subsequently, there is little to no multi-tasking across the sub-systems within the backlogs. Essentially the behavior would be that of a focused Feature Team. The argument here is, again, that having closely related work delivered together increases the “what’s in it for me” aspect with the customer and stakeholders, which makes a larger impact upon release. I’ll wrap both of these challenges up into the following problem statement:

Backlog items need to relate at a feature level AND amplify UI-facing functionality so that team work can be more easily demonstrated, explained & justified, and valued by the customer.

So, What’s My Issue?

I know what you’re thinking. That I’m making a big deal out of nothing and that this sounds like a very healthy way to prioritize your Backlog. You know what, I’m struggling with that too. But here are the concerns running around my head at the moment-

In the first part, I’m thinking that backlogs shouldn’t be driven simply by visible or singular feature areas. That being able to relate the items from a demonstrability perspective, while an important consideration, is not THE most important consideration. That priority should be driven by…well priority. Whether the story is visible or not shouldn’t be a primary consideration. Whether it’s easily explained or justified or not should not be a consideration either.

What should drive priority is the business and technical need to get that story into production relative to all of the other stories. For example, if I have a sprints’ worth of high impact and important work that is all backend focused, then I should simply get on with implementing it and not worry about how hard it will be to explain or justify the work.

To the second point, it’s roughly the same concern. Singular feature areas shouldn’t be driving the backlog. There is nothing to say that the team in my example above can’t work on aspects of all three sub-systems at the same time IF the business priority drives them in that way. Sure, you’ll get less impact per sub-system. So what?

Again, if the priority clearly drives us in a direction, let’s not let fear of effort dilution challenging explanations cause us to ignore or orphan sub-systems.

Is there a Granularity Problem?

What I’m thinking is that in both of these cases there’s a granularity problem at the organization level.  Organizations need to be able to see value coming from their Product Backlogs. Whether that value is at a forest level, tree level, grass level or even the dirt level. They need to be able to get excited about all four equally well and react accordingly when their teams’ deliver at each level.

In my example, these teams were struggling with delivering grass level results. Worrying that they wouldn’t be able to explain the value or that the customer wouldn’t “get it”, and they’ve lost sight of prioritized flow as a result.

Let’s say you’re working with a customer for a medical system and they’re clearly uninterested in the defect stream associated with their latest CT Scanner in development. Instead of bug repairs, they want to see a faster progression of features.

Well, everyone wants to see their products develop quickly. But in this case, these customers and their teams are wrongly focused.

You see, in the medical product domain, bugs matter-at least to the regulators and ultimately to the customers. So as a Product Owner you have a responsibility to prioritize those repairs at an appropriate level and guide them through towards completion and sprint review. In the sprint review, you have the responsibility to explain the value those defect repairs provided even if you don’t get a standing ovation for doing so.

That work is equally or more important with feature work and you have to work hard at explaining that value to your business stakeholders. Not only work at explaining it, but demanding an appropriate level of understanding and response from them.

You have the ultimate responsibility to provide a Well Balanced Backlog that is not influenced by what’s easy to explain or not. But instead, it’s influenced by driving high priority business value elements that are well-connected and balanced across all aspects of your application.  I’d consider this your prime directive as a product owner and it should serve as the central theme of your external communications.

Two Quick Techniques

I don’t want to end this post simply complaining or pointing out an issue without suggesting some way of improving things. In this case, I think there are two tools or techniques that are useful in helping teams to balance their backlogs-to prevent the skew we’ve been exploring in this post.

The first one is simply an extension of this posts’ theme – Forest, Trees, and Grass. Instead of looking at the world as a series of sprints that need to be executed, the Product Owner needs to illustrate to their business constituents and customers how things are being evolved, balanced and invested across both the fine-grained and course grained elements of their application.

Of greater importance is explaining how things connect in an overall strategy of evolution on a release-by-release level; perhaps by using the roadmap framework below. For example, if a release is focused on grass level elements, then clearly explain the WHY behind that decision. Please don’t avoid it because the communication may be difficult or hard. Or avoid it because it’s much harder to “split” the backlog in that way. Instead, have a story to tell and then connect it towards future releases.

   Release Roadmap

 

Forest Elements

Tree Elements

Grass Elements

Dirt Elements

Release 1

 

 

 

 

Release 2

 

 

 

 

Release 3

 

 

 

 

Release n

 

 

 

 

And don’t get fooled into thinking that you need an excruciatingly detailed why. You don’t. You need enough details to explain your thinking or the under-the-covers drivers, but in the end this is your job. And your stakeholders need to trust your decision-making process and judgment.

The second technique is to establish clear goals for each of your elements within your organization. For example, bug fixing and minor feature evolution points are clearly a “Grass Element”. Establish release-over-release percentage targets for that sort of work within each of your teams. Track that work and report out on it at a team level and at the organizational level. Make it transparent. In retrospectives, consider whether you need to increase or decrease these levels and also how healthy your overall backlog balance is.

Wrapping Up

My hope is that teams stop crafting backlog work based on reception perception, but instead focus on balanced value and clear priority. As Agile BA’s, you can also partner with your Product Owners in avoiding these patterns.

Let me know if you’ve seen these patterns yourself and have any comments whether they’re a problem or not. As I said earlier, I’m still mulling all of this over and am open to it not being a problem 😉

Don’t forget to leave your comments below.

It Isn’t “Safe” Being an Agile Business Analyst

Galen_BAtimes_Dec21I’ve often thought that roles in waterfall processes are somewhat “safe”. There is a rhyme and a reason to waterfall projects with each discipline stepping up to the plate at a different time. They do their work, get it reviewed or achieve a milestone, and then move onto another project or focused effort. Usually the project managers and architects are up first. They envision the project from a planning and a structure perspective, and then leave their artifacts behind for others to execute.

Next up are the BA’s. It’s usually an intense time early on in the projects-gathering stakeholders and eliciting requirements. There’s a whole lot of listening, writing, reviewing, editing and reviewing some more. It’s a lot of hard work to get everything right, but then there’s the final review and customer sign-off-and your work is essentially done.

The development team is up next to implement the functionality. Usually they are incredibly optimistic in the beginning and over commit to work and delivery dates. But that’s what the business wants to see-unbounded aggressiveness. However, reality soon shines it’s light on the team, as does 90% done syndrome, and things take quite a bit longer than expected. The customers become impatient and begin to loose their confidence.

But then something magical happens the developers reach a point of closure and then…pass the code over to QA for testing. Whoo Hoo!

Need I say more? QA will normally test in a defect-rich environment and work oppressive overtime. Every bug that is found is somehow QA’s “fault” for making the project longer. But there comes a day, when the business accepts the resulting code quality proposition, and proudly presents the applications to the customer for UAT.

And what a day it is. You’ve all been there. The customer fires up the application in anticipation. But quickly they’re mumbling to themselves and scratching their chins in consternation. Then you hear that dreaded cry-this isn’t what I expected!

What if something goes wrong?

As a traditional BA you have the stage for a short time. Your job is “safe” in that you rarely stick around for the end of a project. Your efforts are typically front-loaded and intense. There’s also positive energy in the beginning-as all projects start out as naïve, “can do” efforts. Your work is often finished quickly and you usually change your focus towards a new effort. You convince yourself that this is the essence of things and quite natural in the workflow.

A flip-side example of this is the testers. They’re often quite idle in the beginning stages of projects. Yes, they’re “preparing” for testing-but the focus and intensity is quite low. They’re depending on the early phases to do a complete job so that they can immerse in testing at the end.

We all know that this phased approach to delivery doesn’t work that well, but it does create “safe zones” for each of the teams’ functional groups. It means that traditional BA’s can do their job and then “hide” from the reality of success. If the project is successful in the eyes of the customer, then it was the requirements that drove the success. If not, then there was someone else to blame. Either the customer was wrong-in that they didn’t know what they truly wanted or needed. Or those pesky developers simply didn’t fully understand the requirements. Or the testers simply didn’t work hard enough to get things done on time. You get the point-functions and people can “hide” in this model and pass the buck. Not always true, but sad when it happens.

Is it “Safe” being an Agile BA?

The agile BA has no intense periods of activity, nor safe idle periods. They have to always be “on” within the team. They’re incrementally defining requirements, helping them get implemented, perhaps doing a little testing, and continuously collaborating with the customer to elicit valuable feedback.

There’s no “quiet time” while they go off and write a long series of use cases for an application. No, long periods totally focused on requirement writing. And no, they have to share their results with their teams continuously. It’s this change that is quite difficult for many traditional BA’s who are making the transition to agile teams. Some say it might even be an exciting transition.

I’ve often spoken of agile projects as having a nature of “controlled chaos” in that you don’t know exactly where you are going day-to-day. You’re on the edge much of the time, figuring out your path as you go. Never knowing what’s directly around the next corner. It’s this capacity to go with the flow, as you sort through technical hurdles and customer needs and expectations, that is inherent to agile.

And what if you’re serving in the role of Product Owner?

Another common transition for agile BA’s is adopting the role of product owner within a team. The decision is usually driven by the notion that product owners write most of the user stories in their product backlogs, so who better than a BA to assumes that role. However, the PO role is even more chaotic and driven than the agile BA. And yet, it’s another role that increases your exposure and ability to drive your teams towards even more success.

In this role you adopt more visible traits, making your priority-based decisions transparent across the organization. You’ll be defining the “now & later” states for the project while defining a stream of features that will incrementally define the product. It’s a just-in-time view that loads high-value features first and constantly engages the customer in progress.

In fact, you’re role will also focus on acceptance criteria, so work will be reviewed and accepted within each iteration. This role is a powerful extension for most BA’s in that it extends into product management, project management, and leadership activities. Nonetheless, it’s a wonderful extension for the agile BA.

Wrapping Up

If you’re a traditional BA who likes it slow and steady. Who likes to work for periods, undeterred and uninterrupted on requirements. If you would prefer to become detached from your project after your job is essentially done. If you like throwing requirements over the wall for implementation, then becoming an agile BA might not be for you. It may be too much for you…or too “chaotic”. So stay in your safety zone and happily fulfill your traditional project responsibilities. It’s ok!

However, if you like being in the thick of things in setting the functional direction for a project. If you like collaborating with customers and stakeholders during the entire software lifecycle.  If you’ve come to understand that software projects are tricky beasts full of uncertainty that resists planning outcomes. If you enjoy being the “glue” that continuously connects the customer to the team. Then perhaps you have what it takes to become an Agile BA. Trust me though, wear a helmet and be ready for a bumpy ride. Also be ready for success as well…and enjoy the ride!

Don’t forget to leave your comments below.

Where Do User Stories Come From? Part 2

In my last post I introduced the topic of User Story Writing Workshops. These are planning meetings where a product owner can gather a team (existing or potential) together where they collaborate to create a list of user stories to be used in seeding a product backlog.

It’s a wonderful technique for generating loads of stories-quickly! It also has some serious side-benefits that I think are valuable as well. But, enough of that…

Let’s Get to Writing Stories

There are many ways to attack story writing in groups. I’ll be emphasizing my preferences here, but don’t let that limit your own approaches. The key element is to:

  • Generate as many stories as possible
  • Across as broad a spectrum of features / work as possible
  • As quickly as possible
  • And along the way, collect as much Meta-Data as you can

I like to have the roles drive the brainstorming, so for each role, I’ll allocate 10-15 minutes of story writing time. Usually, I start this with the entire group-so everyone is writing. I’ll “call out” each story as I collect it to let everyone know what’s being written and to reduce the number of duplicate stories produced.

Once you have a large set of stories, I like to stop action (writing) and get the team engaged in “cleaning up” the stories. If I’ve posted them on a whiteboard, I’ll invite the entire team up to the board to start removing redundant stories, consolidating stories where there are obvious relationships, and writing new stories to fill in any ‘gaps’.

Often I’ll oscillate between writing as a group and this collaborative clean-up effort. It helps to keep the whole group engaged in the process and it maintains energy and focus in the meeting. Once you’ve developed stories for each one of your roles, you’re essentially done with “Round #1”, Then you move onto massaging (ordering in time sequence, considering risk, filling in gaps and dependencies, etc.) in your stories.

The Chess Analogy

Once you have a fairly healthy list of stories, I like to spend a fair amount of time on ordering them. This gets everyone thinking as soon as possible about execution. And because we’re thinking of overall workflow instead of pure feature development, another rich set of stories soon emerges related to things like quality and testing, release preparation, design and architecture, prototyping, UX design, software packaging, etc. You know, all those things required to get the project ready for customer deployment need to be captured in story-form as well.

In order to do this, I ask the team to place the stories in largely three buckets: opening moves (early stories), middle game (middle – mostly execution based stories) and end game (stories focused towards completion and delivery).

While this is truly not a WBS or Gantt chart, it does serve to get the team organizing the story mix into a rough workflow and begin thinking of linear dependencies and breaking things down for construction and integration. So the flow is illustrated below-

09-11-2010_10-54-52_AM

 

 

 

 

 

 

Overloading Your Stories, Meta-Data

Perhaps it’s just me, but if I’m taking time from a team for a story writing workshop, I want to maximize the data that I collect. To do this I usually ask the team to overload their cards with other bits of useful information that I might (keep in mind might) use later. For instance; Adding estimates, in either weeks or story points, can be a useful exercise at this point. This becomes the starting size estimate for each story and even though it’s simply a guess, it does help to communicate size and level of effort across the group.

Another thing to consider is team assignments, especially those for any specialized skills. For example, if there’s a database story that the entire team knows only Sally can effectively handle, then we might say that on the card. Or if the card requires a skill that we don’t currently have on the team, then specifically identify that gap.

I try to avoid any notion of “tasking assignment” at this point, so don’t do this for every story. Just mine these connections as a natural consequence of the writing.

Related to this point is the notion of capturing dependencies and risks. Again, we’re just writing our thoughts down on Post-it Notes, so ask the team to note cross-story dependencies right on the Post-it Notes. You should also visually orient the stories to be “close together” on your board. And while the team is collaborating, I always ask them to identify risks as they go along. I usually maintain them as a growing risk-list off to the side.

I find that this sort of meta-data gathering enhances the quality of the workshop, but also reduces the time it takes for later processing of the stories into a Product Backlog. This data can be equally valuable as the stories themselves.

Finally, What’s Next?

Once I have the “opening move” stories defined, I usually will ask the team to do a bit more detailed expansion around these early stories. The logic goes that while I have your time and attention, why don’t I leverage it a bit more to increase the depth of visibility into high priority stories. This also serves to set the stage for “next steps” immediately following the workshop. So dig into the details on your highest priority stories.

Wrapping Up

So there you have it! By investing perhaps a half day of time, you can come out of a User Story Brainstorming Workshop with a wealth of information. You have stories. You’ll have a view to workflow, what needs to be done right away, and what’s deferrable. You’ll have a sense for key skill stories and for dependencies and risks. And you’ll have a solid view towards next steps.

But most importantly, your team will have created a “shared view” of their overall project. I’ve found this outcome to be critical when the team starts to iteratively attack the work. Since everyone contributed collaboratively to the overall scope of the project AND contributed to workflow details, they’ll have an innate sense of what is needed and where things are headed.

How cool is that?

Don’t forget to leave your comments below

 

Where do User Stories Come From? Part 1.

Business Analyst Use case StoriesAn Approach for Generating User Stories

I see many agile Product Owners struggle with backlogs on their own for new projects. Quite often they insist on personally owning the backlog-which equates to authoring every story themselves. While this approach certainly works, it does require a lot of additional vetting time with their teams-bringing them up to speed on the story content. So it can be time intensive and a bit wasteful.

In his book User Stories Applied, author Mike Cohn discussed the notion of User Story Writing Workshops. These are collaborative, whole-team events where you spend time writing a set of stories to instantiate a product backlog for a new project or for any large chunk of new work. From my perspective, these look very much like traditional JAD Sessions — if you are familiar with those.

I see way too much individualized story writing and too little group-based activity, so I wanted to spend some time in my next two posts discussing the dynamics and merits of User Story Writing Workshops.

Getting a Facilitator

One of the most critical success factors in the workshop is finding or declaring a facilitator. This is best served by someone with facilitative training and experience, someone who is also a bit removed from your project-perhaps from another organization or team. The more independent they are, with little to no context in your project, the better the job they’ll be able to perform.

If you can’t get someone who’s independent, then go for facilitative experience. If you can’t find that, then perhaps engage a Scrum Master or someone with a similar background. The key point is to not try this yourself, but rather go get some experienced help. Someone who’s full-time job in the workshop will be facilitating the team dynamics and driving the outcomes of the workshop.

The first thing the facilitator will do is coordinate workshop logistics.

Workshop Logistics

You’ll need to invite your entire team to the workshop. While you’re at it, invite the central business stakeholders and customers-as many as you can since you’ll want to get a mix of perspectives. Make sure you schedule the workshop at a time when everyone is available. Beyond that, ensure they commit to attending and actively participating. The earlier you begin setting expectations, the better. So check-in with each of them explaining how important their role is and discussing any unique contributions you need them to make.

Beyond finding a solid facilitator, another key to meeting success is preparation. You’ll need to sit down with your facilitator and “game plan” the meeting. First up is the sort of documentation or presentations needed to give attendees a sense for the vision and scope of the project. Sometimes good old fashioned requirement artifacts do that. Other times, a focused slide deck will do. In still others, a high level project charter is shared.

Ensure that you spend some time thinking of how you’ll “Set the Stage” for the workshop and who will be best to do that. Sometimes it will be a team of folks and quite often, most of their presentation materials already exist. They just might need some reformatting.

You’ll need Post-it notes, markers, flip charts, white boards, etc. for the physical meeting. The more the merrier. I prefer different color notes to represent that various perspectives-green for the business, yellow for quality, blue for development, and pink for key stakeholders. This way, you get a quick visual representation of perspective as you order the stories.

The room should easily accommodate your group, with the potential for “break out” areas for smaller sub-team discussions. For example, the quality and test folks might want to break out on their own and discuss test-driven stories, and the overall workflow for the effort.

And finally, you’ll need to pull this all together in an agenda that will drive the workshop. I like to think in terms of the following steps:

AGENDA

  1. Introduction
    • Goals for the meeting; Key Outcomes
  2. Overview of the project – Business Case, High level Scope, Team,
  3. Q&A – Allow time for the team to internalize the effort and mine for questions…
  4. Role Brainstorming
    • Human roles
    • System roles
  5. Review Roles & Consolidate Stories
  6. For each Role, Brainstorm Stories, Pass #1
    • 10 minutes, for each role, consolidate and organize stories under each
  7. As a team, Consolidate the Stories
    • Remove redundant Stories
    • Combine related Stories
    • Begin to organize them into Themes
  8. Review the Story list, looking for obvious ‘gaps’ and filling them, Pass #2
  9. Break into functional teams (Front/end, Back/end development, Testing, etc.)
    • Look for functional ‘gaps’ and fill them, Pass #3
  10. Final End-to-End Team Review
  11. Discuss Next Steps—Actions & Owners

Brainstorm Roles First

I highly recommend brainstorming application roles before diving in and writing your stories. Roles help to bound your brainstorming steps and focus your team on specific areas of responsibilities. And don’t think of roles as simply human-centered or user- centered. You can and should create a broad spectrum of the key roles that will be driving and using your application.

Roles can surround physical users: normal user, super user, administrative user, secure user, stakeholders / the boss user, etc. They can also include malicious users, for example: hacker user, disgruntled ex-employee user, criminal intent user, etc.

Non-physical user roles can be equally interesting to define. They might include some of the following: system AP’s, outside vendor data feeds, external databases, business processes, regulatory processes, periodic events, quality activities, etc.

As a general rule, you’ll want between four and10 roles within your story mix. Less is fine, but more will probably become unwieldy. You can fairly easily consolidate roles if you have too many; just ask your team how to condense them.

Wrapping-Up

I hope this initial post was useful in setting the stage and beginning your User Story Writing Workshop. I also hope I convinced you of how important planning and preparation are to a successful workshop. In my next post, we’ll get into the details of writing, organizing, and ordering the story results. I’ll also show you how additional meta-data points can be derived from simply writing stories as a team. See you then…

Don’t forget to leave your comments below

Read My Lips: Requirements Provide NO Value!

I was telling a colleague the other day a coaching story that I found somewhat humorous. I was visiting a potential client not that long ago and my timing was just right. That day they were running their sprint reviews, so I asked if I could attend and they generously agreed.

I remember each of the teams showing PowerPoint presentations that represented the results of their 2-week long sprints. They had apparently spent hours on the slides, searching the web for interesting artwork and photos that somehow represented the features that they’d worked on. They worked incessantly to match their slide prose to the images and try to tell a very compelling and humorous story that captured their overall sprints efforts.

From my perspective, alarm bells went off after the first review that I attended. Something was amiss.  It struck me that the team unfortunately didn’t understand the fundamental point of sprint reviews nor one of the core tenants of agility.

So what was missing you might ask?

They forgot the software in the sprint review. They literally had shown no working software-not one bit! You can show all sorts of things in a review, but the most important doesn’t revolve around PowerPoint or documents of any kind.

No! It’s in showing honest to goodness working software. Software that has been thoroughly tested, verified, and “accepted” by the customer. In other words, creating value by instantiating your requirements in software. That’s what its about and the Agile Manifesto thoughtfully reminds us of that in one of its four core tenets.

We Prefer Working Software over Comprehensive Documentation

It’s not to say that the team was entirely wasting its time. Sure, connecting with the audience was important-as as showing creativity and engagement with the project. However, the entire point of software development is producing software that has value in the eyes of the customer that is directed by the customer towards addressing their most pressing needs.

So as I was leaving the client, I shared this insight with their coaches. As time has passed, they’ve become much better at demonstrating working code and it’s made a huge difference in their customers’ perception of the value the team is delivering.

Nice Story, But What’s the Point?

Extending from the story, I think that we need to approach software project documentation (the wide variety of plans, status reports, regulatory checklists, and most importantly for this post – requirements) from the perspective that it serves no eventual purpose except delivering working software.

The documents have no value independent of the software…none!

So am implying that we don’t need any documentation? No, nothing could be further from my point. But we must stop producing documentation as if it’s a salient deliverable on its own. It’s not! Requirements are intended to drive the evolution of a product, nothing more and nothing less.

Can you sell them to a client? No! Are they tangible without the software? No! Do they usually stay current with the software’s evolution? I’d say quite rarely, so they can easily become dated and inconsistent. 

So, What are Some of the Key Attributes of Working Software?

So if working software is our ultimate goal and value proposition, let me share a few key attributes that come to mind:

  • Working software drives feedback. Not by reviewing a document or diagram, but by observing the behavior within a running system. It exemplifies that old adage that a picture is worth a thousand words. Working software is worth immeasurable words.
  • Working software is the great equalizer. You’re not 90% done or “almost there”. You can either demonstrate the feature or you can’t. It works or it doesn’t. Usually in a more robust environment that is established and stable.
  • Working software doesn’t always have/need a UI. It does need some mechanism to share behavior and workflow in a fashion that can be exposed to and simply explained to your stakeholders, but don’t get caught up too heavily in UI exposure under all circumstances.
  • Working software is a confidence builder. First, with you stakeholders. It takes us from the normal hand-waving associated with documentation and requirements and brings us visually into focus for their perusal.
  • It also builds confidence inside the team. It should progress, in small chunks of understandable and simple functionality. It facilitates the team working together to deliver on a small and achievable goal. They inherently want to get to the next piece.
  • Working software focuses us on testing, making the feature work, checking design quality and exception handling. Checking acceptance criteria with our customer early in development; gaining their feedback and making adjustments.
  • Working software is done. Think of it as inventory. We should be able to put it on the shelf and declare this small section of the product complete fully ready for adding or integrating with other features. The customer is convinced that it meets their needs.
  • Working software includes all of the software. Unit tests and functional tests can be a part of the effort. If the software works-so do the tests.
  • Working software is continuously working; meaning it can’t regress. If we had it working once but now its broken, then making the software and the associated tests work becomes our highest priority.

Wrap-Up

The key discussion here isn’t about requirements. Nor is it about artifacts. It’s focused towards the BA’s role in guiding your products towards working software. I’d argue that the largest part of your value is here. Not in writing or reviewing or updating or interviewing or drawing, but in taking all of these activities and driving them into effective execution and articulation within your software. Making it work as viewed and assessed by your customer.

That’s where true value lies and I hope you start skewing your attention more and more in that direction.

Don’t forget to leave your comments below