Wednesday, November 30, 2011

Developter & Tester/QE/QA ratio in a Software Project?

It is one of the most common questions, we face in almost every project... 'What is a reasonable Developer to Tester Ratio for a Software Development Project?'… Sometimes the question comes in variations, like 'Are there standard Developer to Tester ratios for Enterprise software, Driver Software, Financial Accounting Software etc.?'. At times it's associated with  budget allocation… like in 'What is a reasonable Development to Testing budget breakdown?'.
There are few things that I see bad about the topic: 

- When management assumes that test estimation could be done based on Dev : QA ratio 

- When a Tester/Test-Lead don’t understand why the Manager is so concerned about this ratio or even see it as Management’s lack of understanding of testing process.

And in my opinion all this depends project to project and exact stage of the project... Followed by a more elaborate explanation that one size doesn’t fit all. As far as I know there is no such thing as an authoritative ratio, for several reasons:

    I do know that some companies keep internal track of that numbers, but this kind of information is not shared publicly as it can impact market and question may come on quality standards.

    What if their competitors find out? Knowing that your competition is doing substantially better or worse from a resourcing perspective tells you something about how efficient or inefficient your competitor is.
 
    Software is hard to categorize… are you dealing with Travel software, Operating system software, Device Drivers, ERP Solutions, MIS systems, a monolithic app, an app running on the mainframe / UNIX / heterogeneous environment, Hybrid application, Cloud services etc.?

For applications mainly closer to hardware or core systems of our computers like operating systems, device drivers, highly technical, and algorithm driven software, ratio close to 1:1 can be seen. The higher the number of end users, the closer to a 1:1 ratio we get, because the risk is proportionally higher.

For any business application, we might have seen more of a 4 developers to 1 tester/QE ratio. Some really lose organizations go as far as 10 developers to 1 tester. A lot of this is driven by company history and their commitment to quality. Type of Industry plays a role as well – some industries, like medical devices, demand perfection. While others like e-learning, are more lose. So what the market bears in terms of quality perception drives the ratio as well. There are many standards in software industry which also help various organizations to decide this ratio. For example, projects which need quality of Six-Sigma level will surely need a decent ratio of Developers and Testers.

Overall here are some variables that may influence this question:
    1. Size of a Software project
    2. Duration of Software Project and corresponding timelines
    3. Type of Software Project (version 1.0 vs. version 10.0, rewrite vs. maintenance, etc.)
    4. Technologies involved
    5. Development methodology (Waterfall OR Agile, etc.)
    6. Organizational setup 
    7. Regulatory requirements
    8. Quality of the deliverables

Wednesday, November 2, 2011

What are User Stories in AGILE SOFTWARE DEVELOPMENT?

A user story is actually a functionality which defines actual need of end user or business organization. 


Usually User stories are composed of three components as -


1. A written form of story which is used for planning and also a good tool for reminding the actual need during different phases of a project.


2. Conversations about a story which make an outline about the detailing in right context with right details about the story.


3. Test which convey and document details... and something which can be used a tool for determining the completion of a user story.


As times these three steps are also known as - Card, Conversation and Confirmation... Ohh again 3Cs :)

Tuesday, November 1, 2011

Agile Software Development - What the hell it is?

Agile Software Development practices are hot in Software industry these days and all for good reasons. I have been working in an environment which has just started adopting some of the Agile methodologies and mixed them with our standard practices. So of course, we are still in learning mode and trying to fetch most out of what we have learned so far.


As of now, I am not directly involved in any of the Agile processes being followed in my organization. But I wanted to know how they work and why they are in such a high demand these days... So when I went to a friend in office that what exactly it is and what all you guys do.


His first reaction was - How the hell can you say that you have zero knowledge about Agile. I am a frequent participant of various conferences happen in India and many times heard big leaders talking about it, but somehow I was never able to digest all that theory :) ... Now I realized that anything which is not in practice is theory and one has to start with theory only !


So I thought of understanding it now. Today I got a book  by Mike Cohn, who has written about User Stories Applied under main title of Agile Software Development.


We have lots of books in Library but I picked this one because of it's different name - 'User Stories Applied'. Even I was not aware what User Stories are :) ... Anyway, whatever story I was trying to make above is true upto one level but I have some knowledge about Agile Software Development methodologies and now ready to learn more about these... 


Hope to share more around AGILE things and first we will understand what these USER STORIES are :)