SDLC archives - Quality Assurance and Project Management

Quality Assurance and Project Management:

SDLC

Apr 6 2009   10:29AM GMT

Six facts about software application risks



Posted by: Jaideep
SDLC, software project management, Risk lifecycle, Risk Management, risk identification, risk assessment, risk impact, impact analysis, countermeasure, fool-proofing, risk severity, Project Lifecycle, Software application

Similar to SDLC (software development lifecycle management), there is RLC or Risk lifecycle management in a software application in which there are different stages involved. The different stages could be risk identification, risk assessment, impact analysis, countermeasure identification, countermeasure assessment, risk plan etc. There are certain facts about Risk:

  • 1. All Risks identified or perceived in a software application do not necessarily happen in real application usage scenario: This is a proven fact that all risks identified or perceived from an application during its pre-launch stage do not happen during post launch real-life usage stage. Some risks perceived may not happen ever. And some unidentified risks may appear later. Whatever is the case, it is always good to identify the risks that may occur during its usage, the more realistic the better. It is not important that they happen in real scenario, more important is to plan how to cope up if at all they happen.
    2. All risks have an impact: All risks have an impact – large, medium or small, but they have. It is the impact that makes its severity high, medium or low and accordingly a plan is prepared to handle the risk, when it happens.
    3. Same risk in different circumstances will have different impact: The same risk will vary in terms of its severity under different circumstances of usage, user base, geographic location, type of application etc.
    4. No application is 100% risk free, whatsoever countermeasures are taken for it, and only thing that gets done with the countermeasures is lowering of risk: A risk plan to countermeasure a risk never fool-proofs a risk’s impact, only it helps in lowering its impact to a certain level.
    5. Risk Impact Cost vs. Countermeasure cost: It is very important to have an analysis of both before deciding on the plan. Some risk may be very severe but its countermeasure cost could be unaffordable.
    6. The biggest risk in any application is identification of wrong risks, impact, and plan: Identification of wrong risk with right estimation of impact and countermeasure is useless. Equally useless is identification of right risk with wrong impact analysis (thereby underestimating or overestimating the impact) and arriving at a wrong countermeasure. Right risk identification with right impact analysis but with wrong countermeasure also is a waste of efforts.
  • Jan 14 2009   10:10AM GMT

    Digging the 10 precious ‘Experience’ Treasures



    Posted by: Jaideep
    SDLC, business management, Bug Management, CRD, Customer Requirements Document, team management, customer requirements

    Past is not to be buried. It contains a treasure called EXPERIENCE. In software development this treasure is of ample importance for acquiring skills required to handle the unwarranted turns and twists during the development (and implementation) period.
    What we can learn from the past is the hiccups that caused delays and stoppages in a development project. We can use that learning as a tool to tackle the problems occurred during the project life cycle. The learning could be in the form of:
    1. Handling customer
    2. Freezing customer requirements
    3. Preparation of documents
    4. Selection of a project manager
    5. Development Team formation
    6. Key users committee formation at customer end
    7. Management committee formation at customer and development end
    8. Team coordination
    9. Tester’s involvement in the development
    10. Choosing a right methodology for project management


    Jan 12 2009   10:04AM GMT

    Top 5 Quality killers in a software product



    Posted by: Jaideep
    software quality assurance, software testing, documentation, Project Management, software, Development, software quality, Quality Assurance, SDLC, business management, software development, Project Lifecycle, software requirement, business requirements, Project Development, customer requirements, defect free software

    In software development project what matters most is the timely accurate delivery that gives the benefit of defect free product, customer satisfaction, profits, market edge, growth, motivation across the organization etc. All this is not easy to achieve having so many enemies in and outside the organizations that mars the development progress or a sub-standard product. These negative factors or enemies lead to a low in quality product that faces a tough time at customer end resulting in rejection. To name top 5 quality killers in a software product, I would list them as below:
    5. Requirements: customer requirements or product requirements is the foundation of software. Any sort of compromise in this would lead definitely to a disastrous product.

    4. Management: Intensity of management’s involvement in the product development throughout spells out the success or failure of a product.

    3. Documentation: Development plays an important role during a product lifecycle and so does the documentation.

    2. Customer Involvement: The involvement of key users at all levels of development and implementation is quite crucial.

    1. Testing: ‘When’ to involve the ‘testing’ team defines the earlier successful completion of a project.


    Dec 26 2008   9:44AM GMT

    Large Project – a scare for Development (or Project) Manager – if not managed properly!



    Posted by: Jaideep
    Project Management, SDLC, Project Lifecycle, project manager, ProjectLifeCycle, SoftwareProjectManager, ChangeManagement, project implementation, Project Head, Project Development, Development Manager

    A large software development project can become scary for the development manager who is handling the project provided (s)he is lacking the experience and ability to manage people, machines, requirements and time in appropriate manner. A balanced control is the call of the time at this juncture, to give the project a right start by understanding the requirements well and selection of right people for the job. The development process needs to be planned and executed well for which a root level monitoring and control is mandatory. Having good knowledge and skills required to lead the development team goes haywired if these skills and knowledge are not executed timely and properly. The project manager or development manager has to understand the core relationship of software development with overall software product engineering, the estimated time and costs, and above all the software process being followed.

    On the basis of the project requirements, the project manager has to decide upon the right life cycle model, requirements analysis, environment in which the product is to be built, control of configuration (both server and client level), development team management, and quality assurance. This is not at all easy, and can be achieved only by winning over each situation.


    Dec 24 2008   10:04AM GMT

    Software Quality – Overlooked or Underestimated – both are dangerous!



    Posted by: Jaideep
    software quality assurance, software testing, Project Management, software, QA, software quality, SQA, Quality Assurance, SDLC, software qa, Project Lifecycle, ChangeManagement, Project Development, QC, Development Manager

    The goal of any software organization is to develop software applications in-house, or co-develop with an external agency, that meet and exceed internationally accepted quality standards. Every one knows it, that the key role in this is of QA department. With this intention, a dedicated QA department is structured in the organization, for the purpose. But most of the time, the move towards the objective mentioned above is limited or missing at all. Although the development managers too agree that in the software development business software quality is the key to their success.

    In view of the above, the development managers need to revisit this area which mostly has not received all the necessary attention it deserves and which is something so crucial that the organization can ill afford to overlook.

    Mostly, even if QA is in existence in the organization, it is used to test poorly designed and developed software. The reasons for this are well known, and the major one is that the QC is misconstrued to be a mere testing activity rather than looking at QC from a more holistic perspective. To this extent, the QA/QC department needs to be invited and involved at all stages of the software development lifecycle (SDLC).

    To fulfill organization’s expectations and business goal in this regard, the development managers need to have a fresh discussion with QC/QA head to prepare a charter on how they plan to achieve it.


    Dec 4 2008   10:13AM GMT

    10 Skills to make a perfect Project Manager



    Posted by: Jaideep
    Project Management, software, SDLC, project manager, ProjectLifeCycle, SoftwareProjectManager

    A Project Manager is the key center position for running a successful software project. To run this show successfully, a project manager has to be a possessor of following 10 basic skills as listed below:
    1. A good HR manager, to manage his team, needs to have strong interpersonal skills so that he is able to maintain a cohesive team who works in collaboration. He has to be a strong bonding agent in his team and the other teams working on the project.
    2. He should work as a focused manager looking at positive aspects of his team members, without letting any unwanted behavior of his team members affecting the project. He should have a good relationship with his and other team members even if he doesn’t like in person few of them.
    3. He should be always be in a comfort zone and make others feel in a comfort zone. For this he may have to show a tremendous confidence in himself and others.
    4. Project Manager should have excellent presentation skills as he is the person who is the window between the customer and his organization. To update, convince and win the customer about the progress of software development, the progress of implementation and the completion of project i.e. sign off from customer at various stages, the project manager has to sell himself by having marvelous presentation skills
    5. Project Manager has to inculcate the leadership skills in all his team members so as to make them independent in handling adverse situations and coming out of it successfully. Also in this way he will have to burn less energies in tackling each situation.
    6. Project Manager has to have strong technical skills so that his team members do not lose confidence in him or do not fool him in technical aspects of the project. Although he doesn’t have to do much of the technical work with his own hands but still having those skills to understand how his team members are doing and whether they are in the right direction, is very important during development and implementation.
    7. Project Manager should be a firm believer in the Japanese term KAIZEN. He should ensure in making everyone believe that improvement has no end and is a continuous process.
    8. Project Manager, along with having good presentation skills, should have equally strong communication skills too. During project lifecycle, 50% of his time is the acid test of his communication abilities.
    9. Project Manager should be a strong estimator, a proactive in this regard. He should be able to estimate the progress of each individual, the skills of each member, the abilities, the show stoppers during the project, the customer delays or any other activity where an estimation is required.
    10. And last but not the least, a Project Manager should be good parent, in regard to understanding himself, his team members, management, customer, other teams, peers – i.e. all involved in the project. He should have a good understanding of his words he is going to speak to his customer, the instructions he is going to give to his team members, the decisions he is going to take. He should be well aware of impact and effect of each of the activity he does during a project lifecycle.


    Nov 28 2008   9:55AM GMT

    How to Create, Build and Maintain Harmony between tester and developer



    Posted by: Jaideep
    software quality assurance, software testing, Project Management, software, software quality, Quality Assurance, software design, Software testers, SDLC, software qa, software deployment, developer, softwaretesting, STLC, tester, software requirement

    Create’ means the first time effort to generate a harmony between a tester and a developer working on the same project. ‘Build’ is the next stage after create to harmonize the professional relationship between a tester and developer. This step will bring the strength in the relationship. ‘Maintain’ is not only the sustenance of this healthy relationship which can be termed as ‘sweet’ harmony, but also calls for an effort from both ends to ‘keep on improving’ this bonding. To create, build and maintain an everlasting harmony between the testers and developers, here are some tips:
    1. Share: Sharing is a two way process. Both the sides need to share equally, transparently and openly. The development team needs to share the customer requirements, business rules, relevant documents, design plan, coding, system built. On the other hand the tester needs to share his observations on all these, and the results of his testing. Share problems, thoughts and success together.
    2. Raise an Alarm: Tester and developer require raising an alarm in case of any shortfall in above sharing required from both ends. Developer also needs to raise an alarm in case of inadequate testing or if testing is getting delayed due to any reason.
    3. Act Jointly: Tester should sit with the developers while they are on job i.e. designing system, and similarly developer whose product is being tested preferably should sit with the tester while he is testing the product. This support will not only strengthen the process and product but will make it more secured.
    4. Avoid Protectionism: On the work front, be it of a developer or a tester, it is important to prevent the spread of protectionism and to promote transparency or openness across the organization. If this is not handled properly, it may lead to depression and incoherence across.
    5. Accept Framework: Accept each other’s work framework and respect it by heart.
    6. Resolve crisis: In case of any crisis on any front leading to adverse effect on the project, take all necessary measures jointly, timely in a coordinated manner. Be more than willing to act in this regard.
    7. Tester is a bridge: Tester is a bridge between developer and customer for the purpose of smooth and defect free delivery of product to the customer.
    8. Be a great contributor: To achieve great success, be a great contributor in your respective fronts.
    9. Encourage: Encourage each other.
    10. Remember: Always remember that you have joined hands to achieve a common goal. A good harmony always brings in the ‘success


    Nov 21 2008   10:55AM GMT

    SDLC-VII: Deployment operations, maintenance and disposal



    Posted by: Jaideep
    software, SDLC, software deployment, software maintenance, software disposal

    Once the software has been accepted by customer (user acceptance or software acceptance), on customers approval the software goes to customer site for implementation. A key user’s team from customer end is dedicated to this phase for the complete tenure. From vendor side also a team of technical and functional leads goes to customer site for implementation. The two teams jointly working as a single team start the implementation process by installing server, client software (by vendor technical team), training to respective module key users, test server setup, test run, and then live run.

    By now the users should be quite comfortable with the software and also should be familiar with the functionality of the software. This is the period of deployment phase when user team is getting matured in running the software independently.

    The vendor team should, even if it is there at customer site, behave virtually as if they are not there and should act only in case of a crisis. This virtual absence or inactive phase of vendor team will increase user’s confidence tremendously.

    After implementation, for a period, stipulated and agreed upon mutually, there is a maintenance phase, during which a full remote support is provided by vendor team to the end users sitting at customer end. At times, if not possible remotely, some technical or functional person has to go to customer site during maintenance period.


    Nov 19 2008   10:10AM GMT

    SDLC-VI: Software acceptance



    Posted by: Jaideep
    software, SDLC, software acceptance

    Software Acceptance or User Acceptance is an exercise that happens once the software has been cleared by QC. So far software has been tested internally only (by developers and testers). But customer also would like to test it and accept it prior to finally start using it. The phase is also important in case if any user requirement has been skipped, misunderstood or wrongly built in the software. Clearance by development team and testing team does not ensure that the product is meeting all requirements specified by the customer correctly and appropriately.

    User would like to go through each functionality, process and rule with real data to ensure that the software is behaving as per the needs specified. Users during acceptance testing is supposed to run through each screen built and by trying data of both types – right and wrong to ensure proper handling of exceptions in the software.

    Once the key users find software functioning fine, customer (management) accepts the software and then it is finally deployed or implemented.

    User acceptance can take place at either of the locations – customer or vendor.


    Nov 17 2008   10:15AM GMT

    SDLC-V: Software testing



    Posted by: Jaideep
    software testing, software, SDLC, softwaretesting

    Software Testing is the process to ensure a bug-free, fully functional software meeting all customer requirements. Testing starts right from the development stage. The developer himself is responsible for unit testing, smoke testing and code testing while he is building the code. Once different units, built by different developers, take the shape of a functional product, a need arises to test the product as a whole, each of its unit, each module and sub-module. This part is handled by a separate team known as QC, QA pr Testing Team.

    Software Testing is very important to ensure:

  • 1. It is meeting all customer requirements
    2. All business processes have been built appropriately
    3. All business rules are working fine
    4. Functionally the product is ok
    5. Each unit, sub-module, module and finally the product as a whole is meeting all software requirements
    6. Exceptions are handled appropriately
    7. User manual and software match
    8. Software requirements, User manual and software match