ModernAnalyst.com: To complement those competencies and skills, what tools and techniques do you see the analyst using on an agile project?
Scott Ambler: The techniques are all there, they’ve been there for a long time. A lot of the techniques in agile modeling are actually reworking those user centered design concepts from the late 80s, early 90s.
So, doing a little bit of modeling at the beginning, initial requirement positioning… just spend a couple days, maybe a week or so of gathering initial requirements to do basic scoping so somebody can ask you for some sort of rough estimate or rough schedule. Some sort of description of what you’re going to build.
That doesn’t mean that you need to create detailed documentation with it. It means you need to do a little modeling. Modeling on a daily basis. Do model storming. Doing iteration modeling at the beginning of each iteration…
As far as tooling goes, the most common tools are white boards and paper, particularly for working with stakeholders; this is a uniquely specific tool technique to allow them to be actively involved in the modeling effort.
The people are also using drawing tools. The more sophisticated ones are using CASE tools. At Rational, we got a very interesting product called Rational Requirements Composer. It’s a more simplified modeling tool that’s geared for the business analyst that enables them to do analyst level modeling to get the value out of modeling, which helps to communicate but not take the hit of unnecessary documentation.
If there’s a need for detailed documentation then RequisitePro or DOORS; those are better options for you. But for the vast majority of projects that aren’t under a regulatory environment, something like Requirements Composer would probably be better off for them.
ModernAnalyst.com: So, on an agile project, there isn’t much need for the more traditional requirement management tools such as RequisitePro or DOORS?
Scott Ambler: Yeah. All things being equal, it’s not a paradigm issue, it’s an environment issue. If there’s a regulatory need for strict requirements traceability or strict requirement specification, then you’re going to have that need if you’re agile or traditional. Those are the type of factors that are going to drive the decision for do you need a more formal requirement management tool; at least in my mind.
ModernAnalyst.com: Are you suggesting that, for the vast majority of the projects, agile can be the methodology of choice?
Scott Ambler: I would think so, yeah. When you look at the facts, all the numbers point toward agile… and away from traditional. But the problem is that the religion that we see around process and the IT community doesn’t see them; so ends up not motivating people to question their beliefs.
There’re a lot of people that really still believe in the traditional way of working and don’t really understand agile, don’t want to understand the implications of traditional and yet they still cling to their old beliefs. It’s really unfortunate.
So yeah, all things being equal, the vast majority of projects should in fact be agile. And we’re seeing a movement towards this… But it requires greater discipline. It does require people have a wider range of skills, to be more open minded, to be flexible. So, some of the things that we rewarded people for in the traditional world sort of hamper them in the agile world.
Some people are not going to make the jump to agile and not everybody needs to. There will still be traditional work out there but not so much over time.
ModernAnalyst.com: What advice would you have for business analysts who are pondering moving on to agile project or have landed a job on an agile project and they’re wondering, “Now what?”
Scott Ambler: I think the important thing is to be flexible; to view documentation as almost always as a risk. You need to do some documentation but it should be your option of last resort. You should always be asking, “How can I achieve these goals in a more effective manner?”
The real goal of analysis should be: let’s identify the requirements, let’s explore and understand what people actually need, and let’s communicate and make sure that the developers actually do that…
- You’re going to have to be actively involved in the team because there’s not going to be eight hours a day of analysis work to do. Splitting yourself across multiple teams is highly frowned upon in the agile world. That should be highly frowned upon in the traditional world as well. We need to be able to go and talk to somebody with business knowledge right away.
- Becoming focused on capturing requirements specifications in the form of tests is critical. You’re still going to be doing some diagramming and high level stuff; you’re never going to get away from that. But the detailed requirement specifications, if you’re not capturing that as test, that could be a problem. This is a very clear direction that we’re seeing in the agile community. So, I highly suggest doing that.
- Being prepared to work with others; actually trying to pick up skills from other people, trying to help people pick up your analysis skills. Wanting to collaborate is vital.
ModernAnalyst.com: Is there a case or a place for so called “live system documentation”, documentation that evolves over time and is kept up to date for various reasons?
Scott Ambler: Yeah. That’s why in the agile community, there’s this focus on executable specifications, because then a specification actually adds true value to the developers, which in this case just validates their work and to do so in an test manner, they’ll keep it up to date, right? Because, if I change my code and I break a test, I’ve either got to fix my code to make sure it still performs that test or I’ve got to update that test. And if that means to renegotiate the requirement, then so be it.
Now can everything get specified in the form of tests? No. But can the vast majority of information be captured that way? And this, I think, is one of the reasons why we see Agilists producing measurably higher quality and achieving measurably higher business stakeholder satisfaction. We’re doing more testing and more testing generally leads to higher quality.
And working iteratively, working closer with stakeholders increases the chance that you actually understand what their true needs are and then implement that and act accordingly. This is why working in priority order helps insure that we get things out the door faster because we are much more likely to code the critical functionality first.
And then showing visible progress in the form of working software, in each iteration, is absolutely critical. It gives the business stakeholders visibility into the project. This is one of the very interesting implications of agile is that because we are working in a more collaborative manner, because we’re working in a more open manner, our stakeholders know exactly what’s going on. They can see software being produced regularly. They know exactly what they’re getting for their money. They can actually steer the project and assure they get software that meets their needs and not just something that’s built to spec. Building something to spec is a phenomenally risky way of working.
ModernAnalyst.com: Anything else that you want to get out there to business analysts about the role of the business analyst on agile projects?
Scott Ambler: I think the important thing is be open-minded about agile… If you find yourself in this position where you think Agilists don’t do ‘X’. Please go on to Google or your search engine of choice and Google the term “Agile X” and you’ll find there’s a wealth of material out there. I constantly run into people that tell me Agilists don’t document. They don’t model. They don’t test. They don’t do this, they don’t do that. You’re not doing yourself a favor by having a gross misunderstanding.
And the other thing is to just recognize that agile is coming your way. If it’s not in here now, it soon will be. It’s very clearly growing. It’s just not a fad. We’re on the exact same sort of adoption crew that would sell all this technology in the 90s. So it’s here to stay. All the numbers show that this works. This works in practice…
Don’t look for excuses not to do agile or not to be agile. There’s always an opportunity to be more agile no matter what you’re doing. agile is a continuum. So, you might not be doing everything that we’re talking about but if you can adopt one or two agile ideas to improve the way that you work, then maybe on the next project adopt one or two more ideas.
Take time to invest in yourself, invest in your career. Read and talk to people. Find out what’s actually going on.