Monday, April 5, 2010
Make sure you gather and capture as much requirements as possible, do not get too much worried about the format of the document or the structure, the focus should be more on completeness rather than tidiness or presentation. Involve the end-users or customers as much as possible during this phase. Make sure you record all the spoken and unspoken requirements, try to focus on what rather than how.
In this phase make sure you clarify the requirement with the SME or users, developing prototype or test cases can help you clarify the requirements, make sure that the requirements are measurable, this phase is very important as it also determined the completeness of the requirement by formally inspecting the documents as a group.
In this phase evaluate and agree which requirements will be done first, this phase will help you to remove those high cost but low value features. In this phase project scope will be identified and milestones will be defined.
Wednesday, March 17, 2010
Traditional thinking is that innovation is for creative mind and venture capitalists, I beg to differ, innovation can be performed by anyone and at anytime (in fact every time) in any role they are performing, all you need is the ability to dream.
Innovation is not only about creating new products; innovation is about reinventing business process, venturing into new market and meet untapped customer’s need. Innovation may be high in small size companies, partly because it is the only way to survive against the big companies, but I have seen innovation in large companies too like Google, it all comes down to company culture and how much do they promote innovation.
The first thing which pops in my mind about innovation is iPod, they were not the first player in the market, but they are popular because of the innovation in their business model, simple interface and the online music shop, they added the WOW factor to the MP3 player, they recognized and tapped the customer trend and fashion.
The first step to be innovative is to remove the fear of failure, take risks and embrace failure, don’t spend too much time taking decisions, all the good ideas seems meaningless and impossible initially. Try looking at other industry to get inspiration, there is nothing like bad ideas, there may be ideas which are not feasible but that’s life.
As a BA you are in a perfect environment to be innovative, most of us are responsible to implement an innovative idea but does that mean innovation stops there?, you can use innovation to implement the idea (which include software and process ). Be a bit more social, try and meet BAs from other industry talk to them to find out what they are working on, learn from their success (and their failures).
Try getting in the head of your target audience, try to see what customer sees (or expects) which you have missed, walk a mile with them, feel their pain and frustration, a small change in the way you do things can make a big difference in their life, the moment a customer thinks they are being heard, they will be more open with suggestion and criticism.
These days business are getting global in nature, do not restrict yourself to a particular region, sooner or later you will venture out and you need to think (NOW) about the opportunities you can tap in future. Sometime to be innovative you have to go to the opposite direction from where your industry is going, you'll redefine the rules of the game.
Thank you very much for reading and don’t forget to dream.
Tuesday, March 16, 2010
- Is the Software developed as per company hardware requirements?
- Software developed in accordance to company software requirements?
- Coding standards followed based on company coding standards?
- Will all classes, functions, procedures be documented ?
- Will comments be used to describe intentions, algorithmic overviews, and/or logical flows?
- What code documentation and end user documentation is provided ?
- Data Model ?
- Class overview ?
- Architecture overview ?
- Is there a proper procedure for handover and time allotted for training?
- Is the proposed development cost acceptable?
- Is the proposed delivery time acceptable?
- Is there any support cost involved?
- Is there a warranty period suggested?
- Is there any maintenance cost involved?
- Is there any warranty period suggested?
- Are the Terms of payment proposed agreed by the sponsor?
- Is there any penalty proposed if the milestones are not achieved on time?
- Is there any incentive available to achieve before time?
- Is the company claiming any ownership on the software developed?
- Are the any licensing fees involved?
- Do they intend to use this product for any future development for their clients?
Thursday, March 4, 2010
- Will a proper project manager is assigned to ensure smooth running of the project?
- Does your company recommended any project management methodology to be used?
- Are regular project status update provided? Will it be targeted to shareholder and sponsor?
- Are development methodology used is in accordance with your company's development methodology.
- Is the proposed methodology compatible with methodology used currently within your company?
- Are regular update and enhancement in the future if required?
- What are the milestones, are the proposed milestones acceptable?
- Is there a proper process/tools proposed to handle bug and other issues raised during and after QA and UAT process.
- What is the proposed turnaround time to action/resolve the queries raised by business users? are those time frame acceptable?
- Is the SLA proposed by the development acceptable?
- Is the functionality in the Requirements document included?
- If the software is extending current functionality, How will they ensure the current system functionality is retained?
Thursday, February 25, 2010
In your BA life every now and then you are faced with a decision whether to develop the product in-house or outsource it. I am not going to discuss the in-house- VS outsource in this blog, I am assuming you have come to conclusion with the stakeholders that you are going to outsource the development and that when the main question comes in as to who should we outsource to?.
Outsourcing development is a major investment for any company and requires careful and complete evaluation of the quotes received from the various software development companies.
Start by separating the “must have" criteria from the "would like" criteria. Proposals that do not meet all of the "must have" conditions should not be evaluated further. The final recommendation should be then made via a weighted assessment of the proposals.
The first Impression
- Did the company get back to you on time?
- Were the people dealing with you were professional?
- Did the company’s representative asked any questions?
- Did the company’s representative understand the requirement
- These criteria will determine the resource available to execute and maintain the project.
- Experiences will determine if the company has developed a similar project, this is reducing the learning curve and increasing the quality of the product delivered.
- References will be used to determine if the earlier project they executed were delivered on time, as expected and within cost.
- How long has the company been in business
- Will the company be in business in five years?
- Good market standing
- These criteria will ensure we are dealing with a professional company.
Sunday, February 21, 2010
Planning Poker is a technique used in agile software development for estimation. There are various ways it can be done but the most effective way is to do it with a cross functional team.
Before you start the estimation make sure you create (or bring an existing one) a user story, user story should be very small (possible independent from other functionality) and self explanatory, we do not use any fancy system to record user stories, in fact we use one of the oldest method ... on cards. The goal of this planning meeting is to estimate that user story.
In our work environment we use a cross functional team, we do not start estimation if we do not have at least one person from QA, development and BA team. The advantage of this mixture of skills is to be able to see the user story from each angle. BA usually kicks of the estimating meeting by explaining the user stories, depending upon the story other teams members may have questions like, what technology it will be developed in? Will there be any automated test? Etc.
Each member in the planning meeting is given a series of cards; we use 0.5, 1, 1.5, 2, 3 and 5. You can use any units you want, the units can be related to days, hours or some fictional units (some agile practitioners like to call them relative units of work).
Once the BA has explained the user story and everyone has asked their question, each of the team member picks one card from his/her deck. They do not show the card until everyone has finished picking their number, on one go everyone then displays the card. Most of the time the estimates from all of them will be within a small margin let’s say 2.5-3.5 in this case you can safely assume the estimate to be 3.
If for whatever reason the estimates are very different like one person is 2 and other person is 5, both that person gets the opportunity to explain their estimate, it may happen that the person with estimate 2 has some insight on the problem, it may also happen that the person with estimate 5 raises a very valid problem, based on the argument presented by all the parties you may play the estimate game again.
Wednesday, January 27, 2010
What is Usability?
Usability is a term used to define the ease with which user can interact with the software or website in order to achieve a particular goal. Usability is very much measurable and should be used to assess the user interface during the entire SDLC.
Why usability is important?
Usability helps designers and developers (especially BAs) to improve the user experience with the software, some of the user benefits from usability are:
- Improve understanding the product and reduce learning curve
- Increases user satisfaction and trust in the product
- Improve speed and accuracy in recording information
- Improve rapid recovery from error and invalid data inputs
- Easy to remember
Define conventions and best practice to improve general usability for your organization; use this to evaluate every product shipped out of the door.
Investigate and define usability for every age group, demographic, ethnographic or any other category of your users, this is very important as every group of people interacts with software is different way, you can achieve this by running focus group meetings and in-depth interviews.
Usability is a concept and as such you don’t need any tools to implement it, but there are plenty of usability software which can be used to gather, collate and present information and resources about issues related to usability in software or website design. One tool I can recommend is Morae from TechSmith you can download a free trial from http://www.techsmith.com/morae.asp