Tuesday, March 30, 2010
Business analyst : Domain expert or Generalist?
- Industry in which you are working
I think being a domain expert might work out as the best solution in primary economic sectors like mining, farming etc. The same would work out in the secondary economic sectors like construction, manufacturing etc and may be in tertiary economic sectors like distribution of manufactured goods. The area of concern is the newly formed industry a.k.a quaternary economic sector which deals with technological research, design and development such as computer programming, and biochemistry. I think a good combination of generalist BA's and domain experts would work out the best in this case. Also, diving more into the IT industry, it's dependent on the type of IT company one belongs to. For e.g. Product development companies would rather have domain experts as the product they are developing would serve a specific industry sector, IT Services companies would have more of generalists as they have varying demands from their clients and they cannot just hire domain experts and wait until they get a suitable assignment. Again the solution I proposed (having right mix of domain experts/generalists looks promising in this case).
- Personal interests
At the end, the decision to become a domain expert or a generalist is left to an individual.
Though I do not have much to say about the pros and cons of each.. just wanted to bring up this thing once again with the broader community and get more opinions!!
Wednesday, September 23, 2009
Tell stories to your developers, they like it
–noun
a narrative, either true or fictitious, in prose or verse, designed to interest, amuse, or instruct the hearer or reader; tale.
Easy story telling:
The above line reveals an important secret: a story is not always read. Given an option, most of us would like to hear the story from story writer rather than reading it. Thus:
- Shouldn’t we write stories in a way it is easy to narrate? (hmmm... 'Narrative'?)
- Is it possible to write a story in a way which is easy to remember after narration?
Provide Business Context
“Story is designed to interest and amuse the hearer or reader.”
How do I amuse somebody? I guess, by telling something they don’t know Or by confirming/contradicting what they expected to know.
Don’t forget to tell about lead character and his/her interest
Are you telling the story of a king or a Queen? It is about a Superhero?
And what does your lead character wants to achieve in the story? Find Love or take Revenge? Won't you like to share this information with your story listeners?
Write Acceptance Criteria
Happy story writing :)
Tuesday, August 18, 2009
Business Analyst Check List
Going along doing our daily chores on the project there are few things which we should always keep in our to do. Some of them might already be on your checklist
1. Talk to your developers : The task of analysis is not complete with writing stories. I believe a story or a narrative is just for reference and should not compensate for an in-person communication between you and the developers working on it. In my experience there have been numeral instances where lot of things got uncovered in these conversations which were probably missing in the narrative or the story. The best way to make this happen is to try and sit next to the developer pair who is working on your story.
2. Test your story : Testing is not just a QAs or a developer's job. As a business analyst it is very important that you test and validate the story for its business completeness. Most of the time a business analyst on the team is acting as a pseudo customer. As we are closest to the business, its us who know most what the story should do and whether it conforms to the business requirement or not. So don't shy away from testing as it very important for your project's success. Most of the projects these days have formal BA sign-off stage for every functional story.
3. Seek early customer feedback : We have a formal stage in the release or an iteration where we seek customer feedback through showcase. But I would say why wait till then. If there is a feature which is on critical path and requires constant customer input, go an have an informal showcase with the business stakeholder or subject matter expert. Run it on dev box or your machine.
4. Prioritize : For a release, for an iteration, for a day. And not just stories, defects and tasks too. I know we are not the only actors here but we are one of the important ones. And its important that give our inputs where ever possible.
5. Look at the larger picture : Most of you would agree with me that for a Business Analyst it is very important to know the "WHY" version of every question being asked. Things like why is this project so important to the client's business ?, Why have the priorities changed ?, Why does the client need this feature ?, Why I need to do it this way and not that way ? etc. And the answers for these come when you not only understand the current requirement but where and how it originated from. On my current project, the BAs actively go and surf the internet for any blogs being written about our client, any press releases, any reviews or interviews. We exchange this information among us. This has helped us get answer to most of the whys.
If you have a to-do list of your own please share it with us
Tuesday, July 7, 2009
What skills should business analysts acquire to add value on a project?
Saturday, April 11, 2009
Do we need always need business analysts?
Saturday, December 6, 2008
Tall stories
Since I am currently experiencing such an approach in a particular area of the project I work in, we are veering round to the view that we need not track velocity or story completion of such work. For purposes of documentation, we will still have stories which detail what work needs to be done at a point of time, but we are not going to bother with tracking the acceptance criteria after that and the points delivered once this work is complete.
Comments?
Saturday, October 25, 2008
Estimation - why and why not?
My team has Programmers, Business Analyst, Testers, Automation engineers, Project Managers, Subject Matter Experts and Customer.
When we need to develop a feature, we need to estimate and find out when that feature would be complete.
When we need to plan a feature, we ask estimates only from programmers. We don’t really ask estimates from other teams like business analyst team and testing team.
Are we doing a bad planning by not asking estimates from analysts and testers?
The estimation is one of the attributes requires for planning. We do estimate so that we can plan. So, when we ask estimates from analysis, testing or programming team, it should help us to do planning. If estimation does not help us in planning then we should not estimate.
We follow agile methodology, which is more or less similar to Just In Time (JIT) method of manufacturing. We like to keep our inventory level as low as possible. For us, inventory is a piece of requirement, which is termed as “story”. We need to ensure that we have minimal number of stories in pipeline. My pipeline starts when a business analyst starts breaking a “customer need” or "feature" into stories. The pipeline ends when story development is complete and it is ready to go live.
I need to plan so that my pipeline is thinner. I should pick up the inventory that i can finish. Thus, I need to know how much programming team can consume in a given time period. Thus we need programming estimates. I also need to know numbers of BAs and Testers needed to support the work that programming team can take. Hence, BA/Testing estimates.
Now, let’s take a different point of view. JIT didn't become as popular in USA as it was in Japan. JIT demanded a strict discipline during planning and implementation phase, which many companies in west were not able to adapt. Though, western countries could successfully able to adapt an ‘Avatar’ of JIT called “Theory of Constraints (TOC)”. The basic principal behind TOC was similar to JIT -keep minimum inventory in pipeline. But, it was rather easy to adapt compared to JIT.
TOC suggested that the team will move as faster as speed of your bottleneck resource. In a highway, if overtaking is not allowed, the traffic will move with speed of slowest truck and not with speed of a sports vehicle. Thus, you need to ‘estimate’ the throughput only for the bottleneck resource to find how fast the team can go.
Applying the same analogy to an agile software development project, we can chart out project plan based on speed of bottleneck resource. To do that, first, we need to find the bottleneck resource. Though, we don’t need estimates from any non-bottleneck resources, we like to closely plan capacity for other resources so that those resources don’t change in a bottleneck. If a non-bottleneck resource changes to a bottleneck, then throughput will be based on speed of new bottleneck. The old bottleneck may not remain that relevant in this scenario.
How do we know that a particular resource is becoming bottleneck? The stories will always queued up in-front of bottleneck resource. If your testing team is a bottleneck, you will see lots of stories lined up for testing.
If you start with an assumption that your programming team is going to be the bottleneck, then you should do only programming estimates. If you take programming estimates for planning, ensure that small amount of inventory (stories) always piled up before programming team. This is to ensure that bottleneck (or critical resource) is never having dearth of work.
The BAs should pile up stories for programming team. The pile in-front of programmers should never be empty. Thus, it is better to have some extra BA capacity so that BA team should always be able to satisfy the need for Dev team. The BA capacity should be increased or reduced based on pile of stories for developers.
The Testers should always be free (yes, free) to pick up stories for testing as soon as a programmer completes the stories. There should not be any pile in front of testing team. Again, the testing team capacity should also be closely monitored and adjusted as required.
We will agree that the BA and testing team capacity cannot be adjusted on daily basis to achieve the same. The resources take time before they can join the team and be productive. Thus, for a new team, the BAs and testers should be added in a ratio to the programmers and then, should be adjusted to suit the need for the team for first few months.
After these adjustments to BA and testing teams, the BA and Testing estimates does not really required for the planning. The programming team sets the pace and BA/testing teams always able to meet that pace as they are extra in capacity.
Based on above analogy, I don’t see any reason why any team needs to take estimates from BAs and testers unless they are real bottleneck in the project!! If we think that BAs (or testers) are bottleneck (i.e. critical resources) then we should take estimates only from BAs (or testers) and stop getting estimates from Programming team, as BAs (or testers) will decide when project (or requirement) would be complete !!