Jul 28, 2010

WIll be back soon

Reactions: 
Its been a long time since I have posted something here. Almost 8 months. The  reason for inactivity is my laziness and a lot of action on personal and professional front.

But now I am back and have a lot to share, in past few months I had an opt. to  work on various project and in different capabilities:
-  Lead a  team of Business Analyst across geographies to build  an enterprise portal for a pharma major. I have a lots of learning to share.
-  Handled a very politically  charged project( I was drained out in 3 weeks!!) for a mobile company. We were buiding their support  center application and I created the testing plan. I do have few learning to share... but the major learning is not to  get involved .
   

Nov 29, 2009

Go by the Rules

Reactions: 
I have been reading a lot about  Business Rules  lately mostly  by  following  blog of practitioners. Though I have been documenting rules during the analysis in someway or the other but not in the way recommended or the way 'Business Rules'  should be treated and written.The major learning  has been  separating Rules from Business Process/Use Cases. Often they got mixed up in the Business Process Model  or are hidden in the use cases(I could have saved a lot of pain if I separated rules from the diagrams). 


For folks who are getting into  the profession I would recommend treating  and learning  Business Rules as par with  Use Cases, Process Modelling  or any other technique.  For Starters I would suggest the following text on the internet: 


1.  The Business Rule Manifesto-  Clearly  specifies the importance of Business Rules and various principle of rule independence.
2.  RuleSpeak- Is a set of guidelines for expressing  rules in concise and business friendly  fashion. This site also two  very  good documents which are freely  available for Download, they  are
Basic RuleSpeak Do's and Don't and RuleSpeak Sentence Form.
3. Introduction to  Business Rules By Scott Ambler -Provides a template for detailing  Business Rules. 
4. 'KISS' Process Modelling  Technique by Kathy  Long - Kathy  gives a beautiful example on Separating  Business rules from Business Process. 
5. Business Rules Hidden In Use Cases by Scott  Sehlhorst -A very interesting article on separating rules from requirements and how the rules are commonly hidden in the use cases.   


Let me know if you come accoss more such articles, I would love to add them to the list :)

Oct 17, 2009

Why I Like Being a Business Analyst?

Reactions: 



Reading the last page of the book which has been lying on the table besides the bed for months is most fulfilling. I recently completed reading Outliers by Malcolm Gladwell. In this book Gladwell explores the reason why some people are so accomplished, so extraordinarily and more successful than others. Gladwell argues that some people are successful not because just because they are really smart, but success is a function of culture and community and family and generation the person belongs.


The book is a very good read and highly recommended. As you read through the book few things stick with you for  example the 10000 hour rule, the  trouble with geniuses, the Chris Lagan Story and the facts about airplane crashes.  But this one caught my attention the most, for a  job to  be satisfying, Gladwell says, it should have 3 qualities: Autonomy, Complexity and  Connection between effort and reward. This is how he describes: 


Those three things--autonomy, complexity, and a connection between effort and reward--are, most people agree, the three qualities that work has to have if it is to be satisfying.


Isn't this true? No matter how well you  are paid you can never continue and be 
satisfied with a job which is monotonous, non challenging under an autocratic(let’s say  non-democratic) management. This I like best about Business Analysis and being a Business Analyst.


Autonomy : Throughout the project lifecycle, process and requirements management is a highly autonomous job. Not to sound boastful but I have realized that I am never under pressure from managers or clients during the lifecycle (off course I make sure not screw up things) nobody interferes during the process or questions your approach, in fact there is less or no interference from the delivery teams during this period. All that I have to make sure that all stakeholders are well communicate and there expectation well mapped. It is indeed an autonomous task.


Complexity:  Well do  I need to  explain this point? We analyze the complex Business processes, liaison between various Business Units, work hard with the IT teams to  make sure that the solution is made right, negotiate requirements, help PMs in estimations...and what not and as Jeff Martin wrote in his post We help  the companies change .. Isn't it complex?


Connection between effort and reward:  Organizations have realized that experienced BAs are their most valuable resources. Their ability to communicate, facilitate and analyze makes them indispensable. Today companies need people who understand both business and technology well and BAs get amble exposure to both ...and yes they are one of the best paid professionals currently in market. 


I like my job. I am working with for an IT outsourcing company and have experienced this in my projects and with the pressure on optimization and cost I feel the BAs still enjoy more freedom then other roles in a project. Personally the most satisfying experience is the day when my role gets over, the requirement documents are signed off after a good review with stakeholders, when business user shows confidence in you because finally someone from IT understands their process, pains and needs, or when the sprint gets over and the stakeholders are satisfied after  sprint review. Or simple things like when the developers are confident about the requirement they are to write code for and the QA folks are clear about the testing scenarios or the PM is sure about the scope, effort and estimate. These things indeed make my job very satisfying and finally I am able to enjoy the inflight entertainment system on my  flight back  home.


Sep 27, 2009

Business Analysis in COTS Environment- Part 2

Reactions: 

Understanding COTS Products
Use of commercial off the self product is gaining popularity, specially where the Business needs matches those of one or more commercial IT market place segments like ECM, Collaboration, Enterprise Search, SCM, HRM, CRM, Business Intelligence etc. These components offer a promise of rapid delivery to end users, few organization can afford resources and time to replicate the market tested capabilities for these products.

For a Business Analyst, working in a COTS environment is different from a typical custom solution development projects primarily because the components are preexisting and are not designed to meet specific business needs. For BA it becomes important not only to know what the business needs are but to also understand the functionality of the COTS product how it is likely to change over the period of time. This understanding is vital as it help in doing a 'to-be' mapping of the business process and define more useful business and system requirements.

So how are these COTS products different? What are the key characteristics of these products and as Business Analyst what should I must know about COTS system in general? The SEI has identified following attributes of the COTS products and components:
  • The marketplace, not one system’s needs, drives COTS component development and evolution.
  • COTS components and the marketplace undergo frequent, almost continuous change.
  • Frequency and context of COTS component releases are determined at the discretion of the vendor.
  • COTS components are built based on unique architectural assumptions and are not constructed using a universal or consistent architectural paradigm.
  • There is at best limited visibility into COTS component internals and behavior.
  • COTS component assumptions about end-user processes may not match those of a specific organization.
  • "Vendor” is not a new name for subcontractor. Different relationships are required to have insight and to influence component changes.
  • COTS components often have unsuspected dependencies on other COTS components.
I have been working with COTS products ever since i started working as Business Analyst. I feel that it is must to understand the above mentioned features of an of the shelf product. It is not possible to know all the functionalities of a COTS product for a Business Analyst but the basic realization that these components are market driven and may not satisfy some of the project requirement prepared the BA for negotiation with business and IT.

References: EPIC: An Overview [ A must read]

Coming up:
  • BA in a familiar COTS environment i.e. when you know the product.
  • BA in unfamiliar COTS environement i.e. when you have no idea about the product's capabilities.

Sep 19, 2009

Business Analysis in COTS Environment- Part 1

Reactions: 
Summarizing the Process:
1. Ideally, the business process re-engineering(BPR) should happen and the business should be made aware of what the COTS tool can offer and changes that may be required in their current way of doing the business.
2. Ideally, the Business Analyst should be fully aware of the capabilities and functionalities of the COTS tool and help business identify the functionalities that the tool can offer.
3. Ideally, Agile methodologies should be adopted to built COTS based system to enable system development adapt as per business needs.
4. Ideally, the OOB features should be implemented with phased and with incremental releases.
5. Ideally 80-20 principle should be followed. 80% features coming OOB and 20% through custom development.

But system development is rarely Ideal. Often a COTS tools are chosen because some smart sales guy managed to influence the CIO or the manager in charge and now it has become a company standard. As a BA you were not involved early in the process and have little experience with the COTS tool and the dead line is too aggressive, now what do we do. We will get to that later. But there are some things to keep in mind:

1. There will always be a mismatch in business needs and what COTS can offer. It is good to know both.
2. There will be a constant negotiation between development teams and the business on what should be done OOB and how much custom code should be written, facilitate these discussions.
3. Ultimately both will have to mid somewhere in middle, a little between of custom code, a little bit of requirement changes and a lots of OOB.
... Stay tuned for more.

Jun 30, 2009

Use Case Template

Reactions: 
It's not too difficult to create a use case template as there are plenty available on the web and best practices to create an use case are well documented. Still I struggle to create one when it is needed. Utilizing the break between sprints in my current assignment, I have created a template which is consolidation of learning from various projects. The template is available in the downloads section or it can be downloaded by clicking here. Hope it would be useful.

Jun 10, 2009

Gathering Implicit Requirements

Reactions: 
How do we define Implicit Requirements? While attempting to write this blog post I was thinking of defining 'Implicit Requirements' upfront before I proceed elaborating my thought process.Here is the best that I could come up with:
Implicit Requirements are inexplicit requirements that are not directly expressed or captured but are essential to meet System's goal. They are something that are assumed to be "there".

I can sight an example from my current assignment where not capturing implicit requirement had a major impact on our project.

Explicit requirement 1: A Publisher should be able to create an Article, send it for approval and finally publish the Article on the portal.
Explicit Requirement 2 : A Portal user should be able to search Articles published on the Portal.

After the sprint ended we realised that the System was developed to cater to both the requirements, So the publisher could create and publish an Article and the end user could search the Articles using the search functionality. But the search result displayed articles which were published, under approval and in draft state.

Call it a bug or badly defined requirements..whatever... but there was indeed an inexplicit requirement which said: The Articles in draft state and under approval should not be displayed in search result.

This was one example. There can be many more such cases especially related to User Experience (UX) which are mostly implicit. So how do we insure that they are captured at the right time?

1. Using Prototypes/Wireframes: Visual representations always work, while text/documentations can be interpreted in various ways a visual representation of an User Scenario helps you nail many unsaid requirements. Using wireframes for creating screen flows or HTML prototypes is one the best way to capture UX requirement. There is no way that an use case can define how a screen will look or how the screen flow will work and what option should be available to user while creating an Article.

2. Early feedback from the end user: Let the users see, touch, feel and use the system as it is developed. Involve and engage them very early in the development cycle , this will help in getting early feedback from the user and they will be excited about the product. Believe me surprising them with a system at the end is not a good idea.

3. Observing similar product/system available in the market: How is the competition doing? What features do they have in the system? What similar products have to offer? It is always good to know what they have so that you can build better systems.

4. Simply leveraging your experience as Business Analyst: Use your experience, now that i have learned form my present mistake I pretty much sure that in future projects draft Articles would not appear in search results. This is how you become better Business Analyst :)

May 31, 2009

Concise Requirements and More

Reactions: 


I have been following a very interesting discussion of LinkedIn on whether restricting Requirements to 140 Characters is a Good Idea? See this Link; you might have to join the IIBA group to follow this discussion.


The discussion was started by Adam Feldman and what seems to be inspired by Twitter rapidly got attention of many Business Analyst professionals. It is interesting to see how the opinions changed (mine changed at least). If we don't see requirements in terms of models for capturing them like Use Cases and User Stories we can actually put together very good and concise requirement in less than 140 characters.
From my experience I have learned that we often tend to get verbose while documenting requirement which often leaves a lot of room for manipulations and interpretations. The Idea should be to keep them as simple and as concise as possible… why? Well because like any other thing in this world the best requirements are on which are simple and easy to understand and a good Business Analyst should always try to make requirements simplest not simpler(Isn't this what Einstein said!!).So if the use case is getting to lengthy with many alternated paths and extension, try to break it into simple ones. If the user story is taking more than few lines to write it has should be broken down into multiple stories.
I came across a very interesting article by Jeff Martin on defining the Business Analyst role, in his article he points out how to handle "So, What do you?" situations. It has happened many times when people ask me "So, What do you do?" and still being proud and confident about my profile I never had a perfect answer. Quoting Martin this is how the response should be:

And this is what we exactly do, by bridging the gap between business and technology!


Apr 26, 2009

Business Analysis: It is more than Requirment Gathering

Reactions: 
Business Analysts are still involved more during the initial phases of the project, this is indeed changing with acceptance of Agile Methodologies. But still the role primarily involves creating Business requirements, Functional detailing, documentation and creating  various artifacts related to  project requirements. So the focus they often keep is on 'What' has to be done, which is very good and should be maintained while they perform there roles. But the additional value comes when the involvement and understanding of ‘How’ and ‘Why’ increases. 
 This is what I mean while talking in terms of What/How/Why:
 What- 
 A Business Analyst should be clear about what has to be done… functionally off course. This is what we achieve when we create User Stories/Use Cases. 

 Why
A Business Analyst must be clear why the functionality is critical for business needs. This will help in defining the 
business objective and will complete the business requirement; it also helps in prioritizing requirements. 
 How- 
A Business Analyst must be able to understand how the requirements can/cannot be met by the underlying technology, the BA should be able to convey and negotiate with business the impact of technology on the requirements. The days of fresh development are long gone, now business systems are created around tools/products already  available in the market and its often desired to full fill maximum requirement with  'Out-of-the Box' available features. 
  • Understanding of the how technology behaves will help in connecting closely  with architects, designer and developers.  
  • You will be able to participate better in design and architecture brainstorming and interfacing with quality folks.
  • This will be help in understanding the system as it is developed and you will be confident while providing demos, walkthroughs and during UAT. 
  • While the high level business requirements will broadly remain unchanged but when the requirements are broken into functionalities they are impacted by limitation of the technology, understanding how technology serves requirements and what additional it can provide helps the Business Analyst during negotiation on what can be done with business stake holders. 
It is very important to remain focused on the bigger picture and keep a level abstraction with ‘What’ during the initial phases and... let’s say throughout but if you  want to get involved and  not just want to be waiter passing on the requirement to the kitchen it is always to good to understand how thing are done.

Mar 25, 2009

Use Cases and User Stories- When to use what?

Reactions: 
I currently working in a very complex SCRUM project, a huge business problem is  divided among multiple teams and with Scrum masters and Business Analyst involved at various levels. In such  complex environment Practicing Agile is tough but one that comes really handy is writing both use cases and User stories. 

User Stories - I feel are excellent ways to capture high level  Business requirements. They may be enough when team are collocated and you actually have all stakeholders working  from same location and interaction is not limited.  

But the situation when you have multiple teams working and offshore  teams working in varied time zones it makes sense to further detail  out requirements using  Use Cases. The mapping can be  one to many- 
So when the user story  details out 'As an {User} I should be able to perform {task} so that is {Business objective} is achieved', the use case for the same user stories  will take the requirement to next level : 

  • [Description of Use Case] ->From User Story 
  • [Actors]  - >form User Story 
  • [Pre Condition] - >Not Covered in User Story 
  • [Post Condition]-> Not Covered in User Story 
  • [Basic and Alternate Flow] -> Not Covered in User Story 
  • [Assumptions] ->Not Covered in User Story
  • [Exception]->Not Covered in User Story
  • [Implementation  Notes]-> try writing this section where the discussion from Architect and dependencies  from other teams /system can be noted down 
This helps a lot in saving  a lot of communication time across team both at Onsite and Offshore. It also serves as a solid artifact to  create unit leve test cases and where the combination of user stories can be used to create higher level integeration test cases. 

The point I am trying  to make is that Use Case and Use Stories are not mutually  exclusive, they go pretty much hand in hand.