Software Development archives - Quality Assurance and Project Management

Quality Assurance and Project Management:

software development

Nov 20 2009   10:00AM GMT

How your Web Application Performs on Various Browsers?



Posted by: Jaideep
Project Management, Software Project, web application, application performance, browser, web browser, software development, legacy software, developer, development team, tester, testing, software design, software requirement

You are in software development and in today’s world you can’t escape from most of your customer demanding either replacing their legacy software in use with new web application or the development of a new web application. Every customer wants to keep maximum leverage for its employees in terms of mobility, flexibility, easy usability etc. and that is why most applications in demand are web based.

Various stakeholders of the project get directly or indirectly activities assigned to them so as to make the project run and finish. The major role in web application development is that of development team. They should be very clear about the customer requirements – what browsers they want to use, what browsers they desire, what version of the browsers, future expectations etc. If these web based requirements are not crystal clear, it is going to create troubles not only for the developers and testers but for customer also. You can’t just dream and design, you have to have specific requirements in hand to develop an application.

Similarly Testers role is also quite prominent in validating customer’s browsers related requirements and ascertaining that all the browsers mentioned by customer (essential and desired) have to be checked for running the application completely.

This small issue can create a major backlog at a later stage. So it has to be handled right in the beginning before the start of development.

Nov 6 2009   10:00AM GMT

Ten cautions in case of a self sponsored project



Posted by: Jaideep
Software Project, Project Management, Development, software development, Risk Management, risk mitigation, risk severity, project sponsor, project methodology, Project Plan

What if you have chosen to develop a product for which you don’t have a customer right now? If you perceive that by the time you complete development phase and the product will be ready to launch if will not be obsolete as per technology or concept, go ahead but take care of following cautions to be a winner in the game:

10. Technology: Ensure that you are starting with the latest technology, as even the latest technology will be a little older by the time you complete the product.

9. Concept: Ensure that you do not start building a product that has several variants already in the market. Beat the drum to give the world a new beat.

8. Keep the air in your bag: Let the concept not leak out until you are ready to launch the product. Launch it with a bang. Advertise, blog, press conference, and whatever you feel appropriate for the launch. But ensure that your team confide in you in this exercise till you are ready to shout.

7. Convince, build trust: Convince yourself that you have chosen a right path even if it is risky. Demonstrate your management about your idea and the way you want to design/ launch it. Build trust among your team in giving a real shape to your dream.

6. Risk Management: It is very essential to jot down the risks involved, and ways to mitigate them depending on their severity.

5. Incentive: Let your team know what incentive they are going to get once the product and project is successful.

4. Project Sponsor: Mostly in such type of projects your management will sponsor the project, so all risk lies inside the house. Your stake is quite high in such projects. Equally important is the success of such projects.

3. Project Methodology: Adopt the right methodology and adhere to its requirements.

2. Project Plan: Ensure that such projects cannot tolerate much deviation in terms of time or money. Since in such projects all risk is yours, don’t let it increase at any cost.

1. Definition of successful project: Building a beautiful product in this case is of not any use if there is no buyer at the time of launch. Your total investment in the project can return only if you are able to find out a buyer.


Oct 9 2009   6:29AM GMT

Project Lifecycle – 2012



Posted by: Jaideep
Project Lifecycle, Software Project, project team, project phase, tester, developer, software development, software testing, implementation, software product

Phase I: There is nothing called ‘off the shelf” product. It is all ‘made-to-fit’ technique. You specify your requirements and that too at a broader level. For micro level leave a red-mark at areas that need to be looked into at the time of building of software. The more red-marks will mean less precise plan and deadlines. The sooner we are able to convert these red-marks (not clearly known ones) to the clearly defied requirements, the better plan we can submit.

Phase II: The requirements will go to a team of developers who will build the outline or prototype of what is required by the customer, will get is approved from them and then will build the business requirements in it. Once they are through with it, the product will go to phase III.

Phase III: The product is handed over to a team of testers. These testers are technically stronger than the team that built the product. So this team will take the total ownership of the product from the team responsible for phase II. This team will find out the bugs, remove the bugs, fine tune the bugs and will hand over the final product to the implementation team.

Phase IV: The implementation team will interact with phase III team for any shortfalls in the product. Any new requirements will go to phase II team. Post implementation support also will be with the same team.


Sep 16 2009   12:00PM GMT

Five ways to workout ‘testing effort”



Posted by: Jaideep
Software Project, software product, software development, QC, quality control, QC head, customer requirement, testing effort, testing effort estimation, customer specification, development plan, testing plan, business rule, business specification, test case, performance testing, load testing, functional testing, test effort, team size, Test Plan, development phase, testing phase, tester

A new project, a new product development – as a QC head how do you estimate your testing effort?

Well, some quick steps for this:
1. Customer requirements: Customer specifications or requirements captured at the time of initial study period would be a quick reference guide for estimating testing effort. One word of caution is that incomplete or non-documented requirements may lead to wrong estimations for both – development and testing.

2. Business Specifications: Like customer requirements, there are some business rules and specifications that are well defined by the customer representatives that need to be built in the software. Building test cases and performing tests will depend on such requirements and hence the estimation.

3. Testing Scope: What is the overall scope of testing? Performance, Load, Functional, or all will help you in estimating your testing effort, team size, and test plan

4. Development Plan: Development will definitely go in phases. Plan testing accordingly and estimate testing effort in that manner to accommodate parallel or phased testing so that all load of testing does not fall at the end of development phase.

5. Test team size: Testers availability will be major criteria in estimating your test effort.


Aug 26 2009   10:00AM GMT

Software Developers - Do you imagine, dream and innovate? Continuously?



Posted by: Jaideep
Software developer, software development

If answer to the first question is No, start moving into the direction of converting it to Yes. Answer to second question also has to be yes. Let us see what is meant by Imagine, Dream and Innovate and how to adopt them at workplace.

Imagination- The ability to create, and paint a mental picture of a new concept or situation can be defined as Imagination. In your case when you have to write business process in your code, it is primarily important for you to imagine business in right sense to embed it in your code.

Dreaming- Coming up with scenarios or goals that with a bit of work can be achieved. Your imagination of scenarios has to be set as a goal of coding it rightly and then ‘doing’ it.

Innovation- Making the impossible become possible by finding another way around a situation or problem. At times you have to find an alternative to optimize your code or choosing a right alternative out of many for a scenario.


Aug 24 2009   10:00AM GMT

If SaaS is acceptable, why not give birth to QaaS?



Posted by: Jaideep
software development, testing, Development, software, tester, developer, Software developer

A software division in an IT company is considered to be a profit center whereas the Testing division is considered as cost center. A set of developers develop software, get it tested by a set of testers, sell it in the market and earn profits. The credits and benefits on success of the software never come near to testers.

Let us look at a model where testing is offered as a service that costs. Developers claim their software to be ‘fit’ for market after they develop it and do some testing at their end. If testers now test the software and find out meaningful bugs that could have created a ‘sorry’ situation at customer end, then for each of this ‘meaningful’ bug, some amount should be debited from development division’s earnings statement and should get credited to testing division’s earning statement. And the real cost of product is development cost + bug finding cost + bug fixing cost


Aug 19 2009   11:00AM GMT

Software developer or bug developer



Posted by: Jaideep
Software developer, software development, unit testing, tester, Bug, product testing, software testing

If a person who develops software is software developer, why not the same person developing bugs in the software be called bugs developer. How many developers ethically perform the unit testing after completing development of a unit? It could be - None, a few of them, some of them, most of them or all of them. Some of them might be under the impression that they perform unit testing after completing a unit but the way they do it might not be really helpful in finding bugs. It might be just to satisfy them what they do and call it as unit testing.

If developers really perform unit testing, find out the bugs and fix them, in actual, then when testing is being performed by the testers why they have to perform unit testing again? Why can’t the testers skip it and save lot of money and time of the organization.


Aug 17 2009   1:00PM GMT

Dear software developer – what is your mileage?



Posted by: Jaideep
developer, software development, documentation, planning, software requirement, software testing

I have two sets of developers. Both bunches contain quite considerable number of developers. Let us call it first set of developers and second set of developers. Both sets have their own unique way of functioning and performing.

First set of developers work randomly with no documentation, no fixed plan in place. The requirements come invariably from different directions and as soon as a new requirement comes, the developer changes the priority of his tasks based on the influence of the requirement generator. In this manner after sometime the developer loses his track of what elements he has addressed or fixed and which are pending as there is no systematic way of recording requirements and their completion track.

Second set of developers works absolutely in different manner. They record all the requirements in one place, prioritize them, maintain software version control, mark each requirement as completed only after their satisfaction and testing and reassess their requirements at each day end. This way they never lose control and are absolutely clear on what is balance and estimated time required.

Surprisingly first set of developers spend more time at work place but product less result as compared to second set of developers.

Let us compare this with two similar cars with their fuel tank full. First car is driven randomly on road for whole day without any specific purpose and exhausts its fuel at the end of the day. Second car driver is sensible in planning his route before starting his journey, reaching back early in the evening, finishing more tasks with still some considerable fuel left in his tank.


Aug 7 2009   10:00AM GMT

Ten Mantras for a software developer



Posted by: Jaideep
Software developer, software development, Application development, Software application, software testing, bug-free, Bug, software, application, bug identification, application building, code writing, application performance, business requirements, Business Rules, code validation, business process, process owner, end user, collaboration, tester, application functionality, software functionality, software performance, quality, customer experience, software build, bug fixing

Lot of efforts can be saved in terms of time and money if we reach to a stage of ‘first time right’ in application development. It has been proven largely that no good application can be built and released without extensive testing. Testing is not developers’ ball game – this is also a well proven fact. Reasons are many as far as it is concerned that why developers can’t build a bug-free application, or why can’t they test on their own. We are not going to discuss those reasons here. Focus here would be on what developers should keep in mind while building an application that it requires minimum efforts and time in all testing stages. As we all know the cost of bug fixing goes manifold, depending on how much distance (in terms of time and project stages) it has covered after development for bug identification. The bugs identified at a later stage, say during UAT cost more significantly as compared to the bug identified by the developer himself immediately after writing a code. Few qualities if a developer acquires and keeps in his mind while writing codes would not only benefit him but the organization he is working for and their customer also for whom the product is being built.

1. Commitment to application performance should be kept in mind while writing a code.
2. Clarity of business requirements and rules/ validations that are being translated into the application with real aptitude of business and not a developer. Don’t imagine and build. If there is some lack in clarity – discuss, record and build.
3. Treat yourself as the business process owner and end user – and build the application accordingly as if you have to use it. Don’t think yourself as a bartender, think as if you are preparing the drink for yourself.
4. Collaborate and build – rather than building in isolation- collaborate with other developers working on the application, the end user, and the testers.
5. Optimize your code – don’t just write it. There are n numbers of optimizers almost in all technologies. Use them and build a strong application in terms of functionality and performance. Be quality focused. Don’t do efforts that call for more efforts later.
6. Be focused. Don’t work on various applications development at the same time unless it is too mission critical.
7. Gain customer experience after launch of your application. It will certainly help you in your future builds. Build a customer satisfaction metrics.
8. Don’t take short cuts in fixing bugs – whatever stage they are identified. That way you will build more bugs while fixing identified bugs.
9. Work like a champion. There is a difference between playing a shot and playing an accurate shot.
10. Be loyal to yourself, your organization and your work.


Aug 5 2009   10:00AM GMT

User Acceptance Testing (UAT)



Posted by: Jaideep
UAT, user acceptance test, testing lifecycle, software testing, product testing, software product, software development, customer specification, interfacing, functional testing, functional requirement, functional specification, business rule, business process, integration test, software build, validation testing, defect fixing, bug fixing, software defect, software bug, appearance testing

UAT or user acceptance testing comes as the last exercise in software testing lifecycle. It is probably the first phase or beginning of customer preparing to takeover the charge of the product. Actually this is a sort of test drive by a perspective buyer who has studied well about a car, has made up his mind to buy it but wants to satisfy himself by actually sitting in the car and driving it. Even if you have made up your mind to buy a particular model and after sitting in the car or after having the test drive, something does not suit you, the decision can take 180 degrees turn.

The same usually does not happen in UAT because the unlike car the software has been built as per customer specifications. UAT usually includes interfacing (if any), look and feel, ease of usage, functional requirements, integration test etc.

Like a car test drive, here also use runs the complete software to assess if the software is meeting their requirements completely or not. It is the last place where the user gets to determine whether or not the software meets his or her requirements. But one thing is very clear – whatever defects occur during UAT, their fixing cost goes manifold as compared to the same defects occurring during the initial building of software.

Main difference between the earlier testing done at development place by testers is that here the business process and validations built in the software will be checked by a business process owner with real data.

Probably in this busy world, if the end user, by any chance is available during the development and testing phase to do appearance, functional, process and validations testing, it would save a big amount of time and money.