Sunday, March 14, 2010

   Quick Links:   Articles     MA Blog     Community Blog     Templates     Books     BA Humor     Events     Jobs     Interview Questions         RSS Feeds

Blogs for Business Analysts and Systems Analysts

Community Highlights



New Blogs Announcement!!!
Modern Analyst has revamped our blogs to provide greater value to you! Two new blog pages have been created. Follow the links below to access the new blog pages or access them directly via our top navigation menu.
You can still access our Original Blog Posts below.
 
Our Community Blog puts a different spin on our original blog page. Instead of each community member creating a separate blog, all community members have the opportunity to contribute their very own blog posts to a single community blog. This provides greater benefit to both the bloggers and readers. Some of these benefits are:
  • Viewers can RSS the Community Blog by a specific blog post author
  • Many members contributing to a single blog attracts more viewers, increasing the readership for all bloggers
  • Blog contributors can give more time and attention to each blog post since no single blogger has to provide continuous content to keep the blog fresh
  • The Community Blog gives bloggers the opportunity to make a name and brand for themselves in the business analysis profession
  • Community Blog contributors may be extended an invitation to become a blogger for the Modern Analyst blog
Our Modern Analyst Blog features blog posts from pre-selected Modern Analyst bloggers, many of which are influential contributors that are shaping the business analysis profession. In addition, the most intersting and insightful Community Blog posts are selected by the Modern Analyst team to be added to the Modern Analyst Blog.
 
While our original blogs and blog posts will remain available for viewing, community members will only be able to contribute new blog posts to the Community Blog. The Community Blog and Modern Analyst Blog have been seeded with blog posts from the original blog page.
Modern Analyst Blogs
Jun 29

Written by: adrian
6/29/2007 4:35 PM 

If you are managing a team of business analysts or systems analyst you probably have two main goals in mind:
- to make sure your team understand the requirements (the real ones)
- to make sure that you develop a solution which makes sense in the context of your constraints.

The chances are that one of your biggest constraints is a current system. Few of us have the luxury of working on developing brand new systems starting with a clean slate.

Most of us need to be able satisfy the new requirements in the context of an existing system. But do you know what the current system does?

Do you know the “AS-IS” of your system?

At the core of the Agile manifesto is the call to value “working software over comprehensive documentation”.

I could not agree more!

After all – what good to anybody is the documentation if the software doesn’t work?

Unfortunately many proponents of Agile development tend to miss the fact that the agile manifesto does not say “no documentation”. Whether this is by mistake or by design, I don’t know.

But I do know that, as a business analyst or system analyst, decent documentation made my life much easier and saved my clients a ton of money.

Let’s assume for a second, that the software does work… and that whoever specified and implement the first version did such a great job that the software satisfies all the initial requirements.

But also assume that there’s not documentation!

Now you are hired as the next business systems analyst and are being tasked to help out with the development of version 2 of the software. You might be able to do a great job gathering the requirements but when it comes to specifying what needs to change about the system – you’re stuck! You don’t know what the system does… Yes – you can play with the current system and try to infer what it does but unfortunately the only documentation is “the code”.

Let’s be honest – the technical landscape is constantly changing and most business analysts (even the technical ones) do not have the time or the inclination to maintain enough development skills so that they would be able to navigate their way through a number of technical layers (databases & stored procedures, middle layers and services, web server code and client side-script, etc.) a variety of languages (SQL, C#, JavaScript, Java, etc.), as well as a mixture of architectural models (Client-server, SOA, n-tier, etc.)

You are now at the mercy of the developers – and hope that some of the ones which developed the first version are still around.

These types of environments are the ones where the developer is King. The analyst finds himself at the mercy of those who can read code and navigate the technical layers.

I am not advocating that, as a business analyst or system analyst, you do not increase your technical skills; I’m just saying that, unless you become a developer, you’ll need some level of system documentation to point you in the right direction.

As a rule of thumb here are a few project characteristics which would indicate that maintaining live system documenting might be advisable:
- the project is large (with a large team)
- the business domain is very complex
- analysis is done on-shore but the development is done off-shore
- the system is supposed to be in use for years to come (i.e. there will likely be lots of turnover in staff over the years)
- regulatory requirements exist which require certain level of system documentation (at least in the area of security, legal compliance, etc.)
- building services or components which will be re-used by other teams (the clients)

I will be the first to admit that maintaining decent (good enough) system documentation is not easy. In large teams and large projects you must have the commitment of the management (the folks with the money) to maintain system specifications.

I have worked on many a project where the initial set of documentation was quite good but as soon as the first “emergency” arose, exception was granted to code without specs which were supposed to be updated “later”. In such cases – “later” usually never comes.

Another must for your organization, if you’re going to maintain system specs, is guidelines and standards. Whatever level you decide to maintain your specs you must create and publish a set of standards for your documentation. This way everybody knows how to read it and how to keep it in synch with the code.

Do you maintain system documentation? Why or why not?

Tags:

3 comment(s) so far...

Re: The Case for System Documentation AKA “Developer is no longer King”

One thing I see a lot: a project starts out to fill a very specific (small) but also very pressing business need. The development "team" consists of a very small number of team developers who "do it all," and to quote a former co-worker, "the coding is the analysis." The management team is looking for a "quick win," and there is no time to waste in providing this simple solution to the business. Translation: "Documentation is an overhead that cannot be afforded."

As you pointed out, this does not scale... for two reasons: 1) people come and go, and the more layers of enhancements and bug fixes that are applied to the original code, the more complicated it becomes, contributing to an increase in the learning curve for new team members to come up to speed. 2) Small, "simple" projects, particularly stop-gaps, have a habit of transmogrifying into large, complicated ones as soon as the business users start using it and providing the requirements that should have been elicited up front.
I have also seen a lot of projects where the documentation started out being great, but somewhere along the line the documents are not updated when they should be, as you have described.

At the root of both of these, lies the misconception that effective documentation requires an undue amount of effort, is time consuming, or whatever.

Although I agree that updating or maintaining the documentation is time consuming, there are somethings that can be done to resolve this. One technique that I have found to be effective is the working meeting where documents are updated in the meeting itself, either through the use of comments, or even actual updates. For many of the changes I have seen, the team spends as much time talking about the issues as it would take to update the document... so, why not update the documentation right there when the decisions are made? Obviously, this cannot be done in every case, but its something that, if done more often, would provide a lot of benefit down the road.

By dmacioce on   7/4/2007 4:05 PM

Re: The Case for System Documentation AKA “Developer is no longer King”

Totally agree with both of your comments. This brings me onto the subject of Requirements Specs & Functional Design Specs, personally and from prior experience Im of the belief that I think they should be two totally different documents.

The Requirements Spec should contain the "Statements" and the Funtional Spec should detail those requirments in terms of how the software is going to operate, however sadly the latter often is not considered (especially where I work currently).

I think Functional Design is really important especially in detailing how the system works for future Analysts working on the next iteration of the software. Functional Requirements statements in the SRS on their own, do not stand up to testing without any context, conditions or logical design behind them.

Unfortunately half my battle where I work is that the people that are writing the Business Requirements are also writing the Software Requirements, the concept of BA / SA or BSA is not widely adopted (very frustrating)...so the developers have to spend hours trawling through badly written SRS's which dont actually detail how the system will work... I myself have had to on occasion rewrite SRS's because of this...total nightmare!

By L_Tomlin on   7/24/2007 6:03 AM

Re: The Case for System Documentation AKA “Developer is no longer King”

I totally agree with all of the aforementioned comments. It has been my experience that no one wants to take the time nor pay for doing things rignt and that would save money in the end. I've worked on maintaining legacy systems that have had no requirements documentation at all or at least it had not been maintained. In my opinion in order to maintain a good product, there needs to be some written requirements that can clearly express what the system is suppose to do. Without specifications it does truly make the developer King which is bad business. We all know that resources come and go for whatever reason that's just the nature of the beast, so we (business analyst/system analyst) need to start having the ability to capture and document the requirements so that product can be maintainable without having to rely on the code.<br><br>I've always looked at the Requirements Specification as a collection of multiple documents. I've used the software/system requirements specification as a suitcase to house all of the other specs (e.g. use cases to describe functional scenarios step-by-step, business rules catalogs, interface specifications. I've tried to get architects, designers, and implementors to use the various requirements specifications to provide the "How" detail within the design specification. I tend to not want to limit the creativity of the architects, designers, and implementors by telling them "How" within the requirements specifications to implement the requirements unless it is truly only one and only one way that it should be implemented and with that being said it would be a constraint.

It's great to finally start seeing the BA/SA position take off. I've been waiting and wondering for 10+ years now for this.

By maharvey on   8/14/2007 11:48 AM

Your name:
Your email:
(Optional) Email used only to show Gravatar.
Title:
Comment:
Add Comment   Cancel 

Do you twitter?: If you want short updates on what's going on in the BA world and at ModernAnalyst.com, simply follow us on Twitter: http://twitter.com/ModernAnalyst



Blog Roll


Search Blogs


Blog Archive Minimize
Privacy Statement  |  Terms Of Use
Copyright 2006-2010 by Modern Analyst Media LLC