Archive for the 'agile anlayst' Category

Agile driven requirements

 One of the biggest challenges for me when developing requirements specifications, is that requirements can and do change and I’ve often struggled with the prescriptive “waterfall life-cycle” approach to software development. This sequential process does not guarantee success of the project nor does it decrease risk, in fact it is often the opposite as this process does not support change or vital feedback from users and the business.

I wrote about the BA life-cycle awhile back when I embarked on a project that was stalled and despite extensive analysis, the project had not yet begun development and we could not get sign-off or agreement on the requirements for this complex system. We had hundreds of Use Cases, lots of Architecture design documents, User scenarios and volumes of analysis and feedback gained over two years of review of the problem to be addressed, in short, the bureaucrats had taken over and we were in analysis paralysis.It was “groundhog day” as neither the business nor the development team had a clear idea of how to move forward. To jump start the process we adopted an agile approach.

The Agile Alliance Manifesto defines four values of encouraging better ways to develop software:

  1. Individuals and interactions over processes and tools - the most important factors to consider are people and how they work together. User and Stakeholder engagement is vital
  2. Working software over comprehensive development - we are there to create a system, not documents (although it is noted that documentation is important for our understanding of the system and some documentation is required to understand how and why a system was built). As Jonathan recently asked in his blog does paperwork really add any value?
  3. Customer collaboration over contract negotiation - customers are unlikely to be able to fully specify the system they want, they will not get it right at first and they are likely to change their minds, therefore communication  and collaboration is vital.
  4. Respond to change over following a plan - I know all the project managers who cling to their Gannt charts will cringe at this but change is a reality and the software development process must reflect this.  You need a project plan approach that is flexible

The key trigger to our move to agile was that the Change Manager took over responsibility for Project Lead. Myself and my colleague Matt in the design and analysis team, were charged with the task to  think differently, be innovative and just make it happen. Given the User Centred Design focus of me and Matt and our colleagues, its not surprising that we focused on the people orientated issues, the Users understanding of the business processes and followed analysis techniques that readily supported change and flexibility. We used storyboards, iterative prototyping and business process mapping notation (BPMN) to convey and confirm the requirements and before long we had a working prototype that the business had approved and sign-offed.

We have embarked on three new projects since this original foray into agile, and are refining our documents and processes. It’s quite exciting as many of the developers and business teams we are working in, were at first a little nervous about the “agile” approach as they are traditionally quite risk adverse, however they are now seeing real benefits. Matt recently blogged about the tools we are using to specifiy design and requirements. These tools and techniques are easy for the business to understand, flexible enough to meet their changing needs and allowing greater collaboration. To the bottom line - this is saving them time, they understand what they are signing off on  and its also giving them a more useable end product.

Agile environment

I recently attended the BA World symposium in Sydney and was finally able to have a word to describe my current project environment - “agile environment”. the conventional approach to software development assumed that it was possible to identify all the requirements early and that costs could be managed by limiting changes once the specifications and requirements had been accepted and signed off by the business. However, as we all know, the environment out there is changing and that change is rapid.


Doug Boast from Monash IT spoke about RAD Tools and Techniques for the BA in an Agile Environment.

 

Doug stressed that in an agile environment, we need Agile software development methods to meet this challenge. We now need Software development methods that attempt to answer the eager business community’s need for lighter weight along with faster and nimbler software development processes.It was noted that this is especially the case with the rapidly growing and volatile Internet software industry as well as with the emerging mobile application environment.

This is certainly the case in my current engagement, not only is change anticipated, we expect it, embrace it and have tried to ensure our approach to requirement analysis and design is flexible and nimble.

My Information Architecture (and fellow blog) friends Matt, Andrew and I are using storyboarding and rapid prototyping to meet the changing needs of the business and get constant feedback to inform technical decisions and the need to build the system whilst still developing the system requirements. It is an iterative process with a fast turnaround of weeks and days (not months).

The real key to our success in navigating this agile environment has been teamwork and collaboration between the development, analyst and business teams. Without this interaction, between members, our project would not be progressing well with the project. Communication is so important and as an agile analyst, I believe this capability is a core skill in an agile environment.

Requirements management

Scope creep is annoying, but what is more annoying is doing all the business process maps and documentation in visio and word. The changes and flow-on affects of these changes then need to be manually changed in the documents.

I am currently looking at some software tools to support my current project so that I can have enhanced traceability and be able to quickly work out what requirements are impacted when a certain element changes (eg cannot now be delivered in this current release).

I am working in an agile environment where there is rapid change and the business needs are evolving and this needs to be manged. Requirements are never really complete until the project is finished as the needs of the business will inevitably change over the life of the project development. Telling the business “it is not in the spec” doesn’t solve the issue that they need this change.

In this type of environment it important to know the “ripple” effects of a change to a particular requirement (eg architecture, design, code, tests and deployment). What a first may be a minor change, can indeed be very costly.

Requirements management done well can help your project to deliver the benefits the business is looking for, without you having to get frustrated by the process. I am hoping that the tools we evaluate may help to support our requirements process and help to ensure we can adapt to the rapid changes required in this agile environment.