Well I don’t know whether I have the proper knowledge to write about it or not. I’m just trying to share my views and that is all. My experience in software industry is not much but from some point of view some of may agree with me. I’m trying to focus some point from my R&D and knowledge-base.
To develop software every software development company needs a process. This process may be defined in bookish language or undefined (customized). Thing is that you need at least a process to develop it. Big (and few middle) size companies most follow structured (defined or customized) processes. But what about the other companies (small size and rest of the middle size companies)? And specially when you are talking in perspective of
Small or most middle size companies which still starving for resources (both human and technology) are failing to meet the deadline and a quality delivery most time. Yet they maintain a process – their own process. How much matured their process is? – BIG QUESTION!
Now talking about Big and few middle size companies where structured processes are maintained. It may be few but not rare that some of these companies are also failing to meet deadline for a quality delivery. Less quality product delivered within time – I’m not counting those for these companies. So the process maturity is still a big question for these companies.
Now come to the Process Maturity Framework that we have around us. You can say – Follow CMM (I don’t know any other Maturity Framework exists or not). But then you have to think – how many companies can afford CMM (considering time and resource)? You can’t say all the companies which are not assessed for CMM (or follow CMM) don’t have a matured process to produce a quality product in time.
------------- To be continued …----------------------------
5 comments:
Great to see your analysis on tech world...I m the luckiest one to comment on your blog...Keep it up.
Considering the age of IT Sector in Bangladesh this will be the case in the coming years. But once we get good amount of top level technical professional then company's will start to addressing these issues...............
in my observation and experience, no standard process can meet every companies requirement.
developer or IT professionals are not for process rather process for professionals.
basically in our team, we are following agile methodologies in most of the aspects.
as you know agile comes up with few more options. like scrum, xp, rup(agile version) and so on..
so we customized xp with a bit taste from scrum. for example - we have daily stand up meeting, we follow small iteration.
more over we have classified our methodologies based on the product state.
for example - during development period we follow XP with TDD and peer programming and review.
during product maintenance release period we are grabbing scrum with a bit larger sprint (like 3 weeks).
i believe process shouldn't be strict rather it should be open for any companies who can pick the right one or can customize the one they prefer.
obviously i appreciate if you guys can come up with a standardized guideline and suggestion.
i must mention, after highly adopting agile driven approach, we are getting 70% boost on our development and project progress.
about CMM, in my thinking, all these are better in marketing hype. i never like so tight environment, or so called strictness in process. i never applied it to my team as well.
if you think something about our normal companies, first build skill developer and encourage them to become passionate.
thank you.
Hasan vai,
Thank you very much for your comments. I'm very much glad to have comments from experienced people like you.
But thing is that - every company has its own process like your company. Your company has its customized higher leveled matured process and thats why you see the boost up in your project progress. But how many companies in Bangladesh have this kind of matured process? I found many companies having a process (immature compare to the project success rate) most often failing to maintain a quality delivery on time . And still they dont have any Process Maturity Framework improve their process to a higher Maturity Level and so to increase the success rate. Immature process continues to be followed all the way as it is hardly tried to be improved becoz the lack of proper Maturity Framework which satisfies the current need in perspective of Bangladesh.
Here is a process -
Whenever the architects starts designing any project (or may be just thinking about next year project plans), QA folks are involved in the discussion.
There may be at least a bi-weekly follow-up meeting in the design phase.
Once everybody reaches at certain point, the DEV starts writing TDD (Technical Design Document). Ideally TDD's have a specific format, but in reality it is the design document with as much detail information at possible so that PJM, PM, QA and other DEVs can understand the design.
Meanwhile, QA lead will be preparing the Test Plan. Note that TDD is still not completed and there is not much documentation to rely upon for information which makes things very tough for QA to come up with test plan.
Regular communications with Dev lead is a must at this point of project since the two fundamental docs are being prepared by them.
Several things are considered based upon project requirements (focusing upon QA)-
1. How much manual testing required
2. Can existing automation handle the upcoming project?
3. How much new automation required?
4. What are the teams that will be affected by this project (this info typically comes from DEV)?
5. How much time (or resource) should other teams commit to this project?
6. Functional testing exit criteria
7. Regression testing exit criteria
Once the documents are created, the QA team concentrate on analyzing the testing effort and work on it, such as -
1. Find out new test cases for manual as well as automation
2. Start automating based upon previous analysis
3. Communicate with vertical teams for making sure that adequate resource and test cases are identified
Functional Testing - the time frame depends upon QA's analysis of total effort. It may be 1/2/3/4 weeks. The major testing may be done at this level where the new feature should be core focus.
To be able to complete functional testing in due time, there should be regular defect tracking by QA/Release manager.
Regression testing - this phase may be shorter than earlier phase since the extensive testing should have been already completed. Nothing (at least P1 and P2 defects) should be omitted in this level.
There may be more testing before the product is given to the customer, like
a. Mini-regression
b. Certification from each existing product area
c. Customer oriented testing
I can keep on adding more steps - but let's come to the point. In my experience, even after following all these steps the project may end up releasing with hidden defect worth of humongous loss. So, how do you decide whether this process is mature or immature? Is there any criterion for that? And who decides about such characteristics? A process that is hugely successful in one project may prove not-so-successful for other project. An experienced Manager/DEV/QA for any group in any particular company should be the best person to decide whether they should follow the earlier process or enhance it with additional steps. In either way the process gets maturity. So, I think depending upon the groups' resource, type and complexity of projects the decision makers will have to decide what works best and thereby creating/choosing the right process.
To me the most important decision for a successful project is to choose right people at right time. Once you have a competent workforce, they should come up with what is best suited for them.
So for blabbering on to something where I’m not an expert but have some experience.
Post a Comment