Subscribe by Email


Showing posts with label Scope. Show all posts
Showing posts with label Scope. Show all posts

Tuesday, August 27, 2019

Tackling Feature Creep: Lessons in Effective Product Management and Project Delivery

When managing software projects, success doesn’t depend solely on having skilled individuals in key roles. It also hinges on how teams navigate scope, requirements, and real-time adjustments. Our experience with one such project showed us just how important structured planning and boundary-setting are—particularly when it comes to managing scope expansion, also known as feature creep.

We had a great Product Manager for one of our flagship software initiatives. She was highly knowledgeable, had strong working relationships with the product support team, and direct lines of communication with several of our enterprise clients. Her ability to gather customer feedback and translate it into actionable requirements made her an invaluable part of the project.

The design team appreciated how she worked with them to evolve high-level ideas into detailed specifications, facilitating the creation of high-level design documents (HLDs) that were both comprehensive and realistic. Moreover, she remained actively involved throughout the design and development phases, consistently available for clarifications, reviews, and feedback. Her dedication earned the trust of everyone on the team.

Yet, despite all these strengths, we continually ran into a frustrating issue: teams consistently found themselves rushing to meet final feature deadlines. On multiple occasions, developers worked weekends and late nights in a last-minute sprint. Remarkably, we never missed our deadlines by more than a day—and we always met the quality benchmarks. But the strain on the team was undeniable.

During project retrospectives, team members flagged this pattern, asking why it kept recurring and why we couldn't better plan for it. They pointed out that while commitment and hard work were admirable, this recurring last-minute push was unsustainable. Something needed to change.


Identifying the Root Cause of Project Pressure

To get to the bottom of the issue, we launched a structured investigation. There was always a chance that we had flawed time or effort estimation processes. Alternatively, some feared that certain developers might not have been contributing their fair share.

Two of our most experienced leads were tasked with reviewing the project documentation, HLDs, effort tracking sheets, and defect metrics. Their goal: identify where and why our estimations consistently fell short.

What we found was surprising—but also enlightening. Time spent on core tasks—requirement preparation, coding, testing, and documentation—was generally in line with projections. In a few instances, certain segments had a 20% overrun, but there was no clear pattern linked to specific individuals or phases.

The real issue? Feature creep.


Understanding Feature Creep in Project Environments

In project management, feature creep refers to the uncontrolled expansion of product features beyond the original scope. It usually happens incrementally—one small change here, one improvement there—until the cumulative impact becomes significant.

In our case, this occurred subtly. As HLDs were being prepared and development moved forward, suggested enhancements came in—some from the development team itself, and many from the Product Manager. These were almost always well-intentioned. They improved the product, addressed edge cases, or reflected late-stage customer feedback.

Because these changes seemed “minor” and “beneficial,” there was a tendency to implement them without formal impact analysis or schedule adjustment. No one wanted to push back. After all, we were building something better for the customer.

But over time, these small changes added up. They chipped away at buffers, consumed developer focus, and led to crunches near the end of each development cycle.


Changing the Process: Structuring Scope Management

Once we identified feature creep as a recurring issue, we knew we had to act. Continually burning out the team wasn’t an option. We needed to instill a discipline around how post-freeze changes were handled.

Our solution was simple but effective: after the design freeze, any new requirement—regardless of size—would be classified as a “feature enhancement.” These enhancements were treated like change requests or defects and entered into a formal review and approval process.

We set up a Feature Enhancement Review Board composed of tech leads, QA, and product representatives. They met weekly to review all proposed enhancements. Only after careful evaluation of the effort, risk, and impact on schedule would a change be approved.


Outcomes of the New Approach

This change immediately brought several benefits:

  1. Clarity and Visibility: Everyone could now see what was being added post-freeze and why.

  2. Better Decision-Making: We were able to weigh the customer benefit of a change against its impact on delivery timelines.

  3. Improved Accountability: Product suggestions weren’t automatically implemented; they were scrutinized just like technical defects.

  4. Informed Resource Planning: Teams could plan capacity with fewer surprises.

Perhaps most importantly, this new framework ensured that the final sprint before release wasn’t a chaotic, high-stress period. Developers could plan their time more predictably, and team morale improved as they regained a sense of control over their workloads.


The Role of the Product Manager: Balancing Value and Discipline

This experience also reshaped how we viewed the role of our Product Manager. Her instincts were always customer-first and value-driven—but even the best intentions can have unintended consequences.

By including her in the Feature Enhancement Review Board, we preserved her vital input while also encouraging a more strategic approach. Instead of recommending enhancements during active development, she began to note them for future releases unless the business case was strong enough to warrant immediate inclusion.

This helped her maintain her customer advocacy while contributing to better team performance and smoother deliveries.


Lessons for Project and Product Leaders

Every project faces the temptation to “just add one more thing.” But without guardrails, those additions become silent killers of time, focus, and quality. Our experience taught us:

  • Feature creep is often a process problem, not a people problem.

  • Good documentation and post-mortems are key to surfacing hidden patterns.

  • Formalizing how changes are proposed and reviewed encourages better planning.

  • Empowering the product team with structure—not restrictions—leads to stronger results.

Ultimately, the discipline of saying “not now” is just as important as the innovation of saying “what if?”


Conclusion: Managing Growth Without Losing Control

Software development is a dynamic process. Customer needs evolve, ideas improve, and developers discover better ways to build. But growth must be managed.

Feature creep may not always be obvious. It can masquerade as helpful suggestions, customer-centric improvements, or low-effort tweaks. But if not managed carefully, it erodes deadlines, impacts quality, and drains team energy.

Through formal tracking, cross-functional review, and a shared understanding of priorities, we transformed a recurring delivery issue into a point of strength. Our teams now deliver with greater confidence, and our products still evolve—with intention, not chaos.


Sunday, November 25, 2012

How is test management done by the test director?


If you are familiar with all the concepts of the test director you can apply them to your software systems or applications since you know how it works.
The test director implements the test management via four major phases as mentioned below:
  1. Specification of the requirements
  2. Planning the tests
  3. Execution of the tests
  4. Tracking the defects
Throughout each of the phases the date can be analyzed by the detailed reports and graphs generated earlier. Firstly, you need to analyze your software system or application and determine all of your testing requirements. 

Phase I - specification of Requirements

The first phase of the test director test management process involves the following steps:
  1. Examination of the documentation of the software system or application for the determining the testing scope i.e., test goals, strategies, objectives etc.
  2. Building of a requirements tree for defining overall testing requirements.
  3. Creation of a list of detailed testing requirements for each topic mentioned in the requirements tree.
  4. Writing a description for each requirement, assigning a priority level to it and adding attachments if required.
  5. Generation of the reports and graphs for providing assistance in the analyzation of the testing requirements.
  6. Carrying out a review of the requirements to check if they meet the specifications.

Phase II - Planning the Tests

The second phase involves the following tasks:
  1. Examination of the application, testing resources and system requirement for determining the test goals.
  2. Division of the application in to modules to be tested and building of a test plan tree to divide the application in to testing units hierarchically.
  3. Determination of the type of tests that are required for each module and adding a basic definition of each test to the test plan tree.
  4. Linking each test to the corresponding testing requirement.
  5. Developing manual tests where each test step describes the test operations and expected outcome. Deciding which tests are to be automated.
  6. Creation of the test scripts for the tests that are to be automated using a custom testing tool such as mercury interactive testing tools.
  7. Generation of the graphs and reports for the analyzation of the test planning data.
  8. Reviewing the tests for determining their suitability to the testing goals.

Phase III - Execution of tests

Third phase involves the following activities:
  1. Defining the tests in to groups so as to meet various testing goals of the project. This may involve testing a new version of the application or a specific function in it.
  2. Deciding which all tests are to be included in the test set.
  3. Scheduling the execution of the tests and assigning tasks to different application testers.
  4. Execution of the tests either manually or automatically.
  5. Viewing the results of the test runs for determining if a detect was detected in the application under test and generation of the reports and graphs for analyzation of the results.

Phase IV - Tracking the Defects

The last phase of the test management i.e., defect tracking involves the following activities:
  1. Submitting new defects detected in the software system or application. Defects can be added during any phase by QA testers, project managers and developers etc.
  2. Carrying out a review of the new defects and determining which ones are to be fixed.
  3. Correcting the defects that were decided to be fixed.
  4. Testing the new build of the software system or application and repeating the whole process until all the defects are fixed.
  5. Generation of the graphs and reports to provide assistance in the analyzation of the progress of the defect fixes and determining the date when the application is to be released. 


Friday, November 16, 2012

How do you define and view requirements in Test Director?


Test director is currently available as a plug in or add – on as a support for HP quality center and works like a test management tool. The earlier versions of the test director i.e., version 6 and below worked as stand-alone desk top applications.
However, the next version i.e., the test director 7 was a standalone web application and was known to work on any of the browsers that happened to be supporting active technology. For all the testers world wide it has been easy to integrate with the other mercury interactive tools via test director.

Three facts regarding test director:
  1. This tool is not going to work out for the collection of the requirements of a software system or application.
  2. It is not an automated testing tool.
  3. It cannot be integrated with the products save mercury interactive products.
Test director comes with four specific modules namely:
  1. Requirements module
  2. Test plan module
  3. Test lab module and
  4. Defects module

How can we define and view requirements in the test director?

- This is done using the requirements module. 
- In every test management process, specification of the requirements is the first important step. 
- It involves analyzation of the software system or application under test and determination of the requirements of testing that application.
- Requirements analysis somewhat helps in carrying out the coverage analysis. - The following tasks are involved:
  1. Addition of new requirements or editing of the previously added ones.
  2. Addition and editing of the child requirements.
  3. Linking of the requirements to the associated defects.
  4. Analyzation of the coverage.
- The requirements analyzation phase follows through the below mentioned steps:
  1. Defining the scope: The scope of the requirements includes test goals and objectives and can be determined using the requirements documentation.
  2. Creation of the requirements: A requirements tree needs to be built so that all of the testing requirements can be defined.
  3. Providing details for the requirements: Detailing involves adding attachments, assigning priority levels to all the requirements if required for testing.
  4. Analyzation of the requirements: This phase involves generation of the reports consisting of the graphs to provide an assistance in the analyzation of the testing requirements.

Steps for Defining Requirements

Follow the below mentioned steps for defining the requirements:
  1. Launch the test director demo project. You will require to log on to the project if in case the project is not open.
  2. Now clicking on the requirements tab will display the requirements module or the requirements tree.
  3. One thing that you need to be sure of is that the document view of the requirements is also displayed.
  4. Click on the new requirement option which will open the new requirement dialog box. Fill in the details and hit OK.
  5. Click new child requirement button for adding a requirement as a lower level of hierarchy.

Steps for Viewing Requirements

For viewing the requirements follow the below mentioned steps:
  1. First step is making sure that the requirements module is displayed and if not click on the requirements and turn on the document view of the requirements tree.
  2. You can zoom in as well as zoom out of the requirements tree using the zoom in and zoom out buttons.
  3. In some cases you may require to view the numeration of requirements. 
  4. To view numerations go to view menu and click on the numeration option. If you make any changes in the requirements the same is updated by the test director and numerations are renumbered. 


Sunday, July 29, 2012

How does agile teams work?

Agile teams work together as a team but include roles filled by specific individuals.
- First is the product owner, who is responsible for the product vision and for prioritizing features the team will work on.
- Next is the customer, who is the person paying for the project or purchasing the software once it is available.
- Users, developers, and managers are other roles on an agile project.


How does agile team work?


- Agile teams work in short, time-boxed iterations that deliver a working product by the end of each iteration.
- The features developed in these iterations are selected based on the priority to the business.
- This ensures that the most important features are developed first.
- User stories are a common way for agile teams to express user needs.
- Agile teams understand that a plan can rapidly become out of date. Because of this, they adapt their plans as appropriate.


What kind of planning are used for agile teams?


Agile teams use three levels of planning:
- Release planning : The release plan looks ahead for the duration of the release - typically, three to six months.
- Iteration planning : The iteration plan looks ahead only the duration of one iteration - typically, two to four weeks.
- Daily planning : A daily plan is the result of team member commitments made to each other in a daily stand-up meeting.

During release planning, the whole team identifies a way of meeting the conditions of satisfaction for the release, which includes scope, schedule, and resources. To achieve this, the product owner may need to relax one or more of her conditions of satisfaction.
A similar process occurs during iteration planning, when the conditions of satisfaction are the new features that will be implemented and the high level test cases that demonstrate the features were implemented correctly.


Sunday, June 10, 2012

What is a scrum process and how does it work?


To implement the scrum development process, it is important to know how it actually works. Most of the errors in the development occur because of the lack of knowledge about the working process of the scrum. 

Scrum works on the principle of iterative and incremental development and it operates with the help of two types of roles namely:

  1. Core roles:
(i)                Scrum master
(ii)              Development team
(iii)            Product owner

  1. Ancillary roles:
(i)                Stake holders and
(ii)              Managers

What is a scrum process?


- The scrum process deals in terms of sprints which are usually called iterations for the other agile software development processes. 
- In a typical scrum, a sprint may have duration of a week to a month. 
- Scrum is facilitated by various meetings which have been mentioned below:

1. Daily scrum: 
This meeting is held during the sprint and is based up on the project status. Usually the core roles participate in this meeting. This meeting is time boxed to 15 minutes.

2. Story time (back log grooming): 
This process involves the estimation of the existing backlog and the acceptance criteria for the user stories is also refined. These meetings are time boxed to an hour.

3. Scrum of scrums: 
This meeting follows after daily scrum and is somewhat same.

4. Sprint planning meeting: 
This meeting is held before the beginning of every sprint and the tasks that have to be completed within that sprint are selected.

5. Sprint review meeting: 
It reviews the status of the sprint and also the tasks that could not be completed.

Principles on which working of scrum depends


The scrum follows the following three principles throughout its working:

  1. Working software is more valuable then the documentation.
  2. Response to the changes in requirements is more important than the plan.
  3. Team collaboration is important than contract negotiation.

How does a scrum process work?


- Usually the first few weeks of the scrum are spent working out the high level requirements including business needs and system architecture. 
- After this, the team produces the product backlog and sprint backlog. 
- These two backlogs together make the scope of the software project by the end of the week. - All the team member themselves take up the responsibilities and operational activities from each other during the daily meetings. 
- At the end of some sprints, it happens that some of the tasks could not be completed as planned so they have to be included in the next sprint in addition to the other tasks. 
- One of the reasons for such situations is the “scope creep”
- However, this does not turns out to be a real issue especially when the team is working closely with the business owners who have good understanding of the development process going on. 
- It should be understood that the scrum is a framework rather than just being a full methodology. 
- A detail of everything that is to be done is not provided by the client since it is decided by the team itself.
- At the end of the sprints the coding, testing, integration of the features is done. 
- In the sprint review, the newly added features to the software are demonstrated to the product owner. 

Reasons why scrum works well


There are several reasons why scrum works and few of them have been mentioned below:
  1. Iterative nature.
  2. Re assessment of priorities between iterations.
  3. The old check points are discarded when the team is doing something new.
  4. Availability of the product owner.
  5. The development team works on a single project at a time.
  6. The team has a chance to co- locate the entire development process.


Sunday, June 3, 2012

What is release planning and what is the need of release planning?


Release planning forms a very important part of the whole software development life cycle and from the term itself you can make out that it is related to the release of the software product.

What is a Release Plan?


- A release plan is drawn up during the release planning meeting. 
- The purpose of the release planning meeting is to lay out the overall project plan. 
- The release plan is further used to plan the iterations and schedules for the other processes. 
- For every individual iteration, a specific iteration plan is designed keeping in mind the specifications of the release plan. 
- It is important that a balance should be maintained between the technical aspect and the business aspect of a software project else the development conflicts will arise and the developers will never be able to finish the software project on time. 
- So, to get a better release plan it is important all the technical decisions must be handled by the technicians and all the business decisions are taken up by the business people. 

How to draw a proper release plan?


- To draw out a proper release plan, it is important that these classes of the stake holders co- ordinate properly. 
- In order to facilitate the co- ordination among these two, a set of rules has been defined for the release planning.
- With these rules it has been made possible that each and every individual involved with the project is able to state his/ her own decision.
- With such a way, it gets easy to plan a release schedule to which every one can commit to. 
Otherwise, the developers will find it difficult to negotiate with the business persons. 
- The essence of the release planning meeting lies in the proper estimation of all the user stories in terms of the ideal programming weeks. 

What is an ideal programming week?


Now you must be wondering what an ideal programming week is. 
- The ideal programming week is defined as how long one can imagine regarding the implementation of a particular user story if there was nothing else to be done. 
- Here by nothing else we do not mean a total absence of the other activities! 
- It only means the absence of the dependencies and extra work but presence of tests.

Factors on which a release plan depends are:


- The importance level of a user story is decided by the customer itself.
- He/ she also decide how much priority is to be given to which user story regarding its completion. 
- There are two factors based up on which the release plan can be drawn:
  1. Scope or
  2. Time

Role of Project Velocity in Release Planning


- A measure called the “project velocity” helps with the release planning. 
- This measure proves to be a great aid in determining the number of the user stories that can be implemented before the last date of the completion of the software project.
- Or in the terms of the scope, the project velocity helps in determining the number of user stories that can be completed. 
- When the release plan is created according to the scope, the total weeks of the estimated user stories is divided by the project velocity to obtain the total number of the iterations that can be carried out till the due date of the project completion. 

Philosophy Underlining Release Planning


The philosophy that underlies the release planning is that the quantification of a software product can be done by the below mentioned 4 variables:
  1. Scope: It defines how much work is to be done.
  2. Resources: It states the number of the people available.
  3. Time: It is the time of the release of the software product and
  4. Quality: It defines how good the software is. 


Tuesday, May 22, 2012

Phase 1 of Unified Process Life cycle - Inception


Unified process like any other process has got some phases through which the whole development process takes place. The unified process follows through the following 4 steps:
  1. Inception
  2. Elaboration
  3. Construction and
  4. Transition
Throughout this whole article we are going to discuss in detail the first phase of the unified process i.e., the inception phase. So let us a take a deep dive in to the understanding of the first phase “inception” of the project life cycle.

What is an Inception Phase


- The inception phase to say is usually short in most of the development cases but in some rare cases it can be quite lengthy. 
- But in an ideal project it is advisable to keep it short and simple other wise it will be required to divide in to much smaller iterations which in turn will be a complete waste of time.
- Furthermore a lengthy inception phase may indicate that there is an excess of up front specification which is something that is not in accordance with the principles of the unified process. - Every phase of the unified process has some pre defined goals that are needed to be satisfied in that phase itself. 

Goals defined for Inception Phase


- For inception phase the below mentioned goals have been defined:
  1. To define and establish a scope for the software project.
  2. To establish boundary conditions for the software project.
  3. To establish a justification for developing the software system or application.
  4. To outline the use cases for driving the design trade offs.
  5. To outline the key requirements for the same purpose as the use cases.
  6. To outline all the architectures those are to be implemented in the process.
  7. To identify the associated risks.
  8. To prepare a preliminary project schedule.
  9. To estimate the cost of the whole software project.
When all of these mentioned goals are established then the inception phase is said to be concluded and completed. 

In short, what is inception phase is all about?


- The inception phase is all about developing a close enough vision of the software project, defining its scope and making the business case and providing an approximate estimate of the schedule and cost for the whole development project. 
- The inception phase seeks to build concurrence among all the stake holders involved in the development process on the basis of the objectives. 
- In an overall sense, the inception phase determines the feasibility of the solution that has been intended to build the software system or application. 
- In a way it helps the developers to understand what to build and risks associated with the project. - Another advantage is that the key system functionality can be easily recognized. 
- Due to some reasons the developers may be forced to have more than one iterations in the inception phase. 
- The possible reasons can be:
  1. The project is so large that it is difficult to define its scope.
  2. The system is unprecedented.
  3. There are too many stake holders with complex relationships and competing needs.
  4. Creation of proof of concept or prototype is required by the major technical risks involved.
- Over the inception phase sometimes counter productive patterns are observed. 
- In such situation a team may postpone providing estimate until the whole domain has been analyzed and documented. 
- But such behavior can lead to a condition called “analysis paralysis”. 
- Even the poor planning of the iterations of the inception phase can make the whole process go awry. 
- This can be avoided only if the iterations have been planned in such a way that they are risk driven and have been integrated and tested earlier. 


Friday, May 11, 2012

Explain Agile Model Driven Development (AMDD) lifecycle?


“AMDD” is the abbreviated form of the “agile model driven development” and nowadays is quite popular among the developers and programmers in the field of software engineering and technology.
AMDD took its birth from the “MDD” or the “model driven development” as its agile version that makes use of the agile models rather than using the extensive models in the pure model driven development. 

The agile model driven development was formulated out of model driven development since it was thought that the iterative development with the model driven development is possible. And since it constituted of the iterations, it was categorized under the category of agile software development methodologies. 

The agile models that drive the whole development procedure are good enough to take care of the development efforts. The agile model driven development is one of the most sought after beyond the small agile software scaling development methodologies.

Agile Model Driven Development Lifecycle


To understand this whole agile model driven development one needs to familiarize himself/ herself with the life cycle of this development model. This article is focused up on the life cycle of the agile model driven development only!

The life cycle of the agile model driven development is of quite a high level. So let us see what all are the various stages in the life cycle of the agile model driven development:

1. Envisioning: 
This stage of the life cycle is comprised of two more sub stages namely: the zeroth and the first iteration. These iterations usually come in to play during the first few weeks of the development process. This stage is actually included in to the life cycle with the purpose of the identification of the scope of the system and what kind of architecture will be suitable for developing the project. For this the following two sub stages come in to process:

(a)  Initial requirements envisioning or modeling: 
This stage may take up to several days for the identification of the high level requirements. Apart from just identifying the requirements the scope of the release product is also determined at this stage only. For carrying out with this stage the developer may require some type of usage model in order to see how the software project will be used by the customers or the users.

(b) Initial architecture modeling: 
This stage is all about setting up of a proper technical direction for the development of your software project.

      2. Iteration Modeling: 
     This stage involves planning for what is to be done with the current iteration. Often the modeling techniques are ignored by the developers while planning objectives for the iteration that is to be carried out next. The requirements in every agile model as we know are implemented in the order of their priority.
     
      3. Model Storming: 
      As mentioned in the agile manifesto the development team should consist of only a few members who are the ones who discuss the development issues by sketching it up on a white board or paper. The sessions which involve activities such as those are called the model storming sessions. These sessions are short enough to last for at most half an hour.
   
     4. Test driven development involving the executable specifications: this stage involves the coding phase using the re-factoring and test first design (TFD). The agile development helps you address cross entity issues whereas with the test driven development you can focus up on each and every single entity. Above all the technique of re-factoring the design, it is ensured that the high quality of the software project is not hampered at all.


Wednesday, February 29, 2012

How to test software requirements specification?

Software requirements specifications is often called “SRS” in its short form. We
can simply put it as a specific requirement for a software system or application.

PURPOSE OF SOFTWARE REQUIREMENTS SPECIFICATION

- These requirements specifications give a view of how exactly the system should and how it should behave.
- The software requirements specification comes with a set of cases describing all the possible interactions of the users with the software system or application.
- Such test cases have been termed as ‘use cases”.
- The software requirements specifications contains both kinds of requirements i.e., functional requirements as well as non functional requirements.
- Software requirements specification is an important sub field under the software engineering field.
- The software requirement specification provides a way to enlist all the requirements necessary for the development of the software project in one place.
- It deals with the following issues with regard to the software system or application:


1. Specification
2. Elicitation
3. Analysis and
4. Validation


OVERVIEW OF SOFTWARE REQUIREMENT SPECIFICATION

1.Introduction
This mentions the purpose of the software along with its scope, definitions, a brief overview and a set of references.

2.Overall Description
This section of the SRS describes the perspective, functions, user characteristics, constraints, dependencies and assumptions of the software application.

3. Specific Requirements
This is the most important part of an SRS and includes description of functions, interfaces, logical data base requirements, performance requirements, design constraints and key features.

HOW TO PRODUCE AN EFFECTIVE SOFTWARE REQUIREMENTS SPECIFICATION?

- For producing an effective software requirements specification, you need to test it.
- Therefore a software requirements specification testing has been designed.
- It is popularly known as requirements analysis.
- Requirements analysis analyzes all those tasks that help in identifying the requirement specifications of the software system as well as the requirements specifications itself.
- This actually forms the initial stage of the requirements engineering which is again concerned with the above listed activities.
- The analysis of the requirements specification is crucial for any software system or application.
- All the identified requirements should have the following properties:


1.Actionable
2.Can be documented
3.Testable
4.Traceable
5.Measurable and
6.Defined


PHASES OF SOFTWARE REQUIREMENTS SPECIFICATION TESTING
The software requirements specification testing comprises of the following three phases:

#1. Elicitation of the Requirements:
- This phase involves the identification of the requirements of the consumers.
- This process of communicating with the users and gathering requirements is very well known as requirements gathering.

#2. Analysis of the Requirements:
- This phase involves the determination of the clarity, completeness, ambiguity, contradiction of the requirements.
- If issues are found, they are resolved.

#3. Recording of the Requirements
- There are various ways in which the requirements might be documented.
- Whatever the way maybe, it should be clear and concise.
- Some commonly used methods are: natural language documents, user stories, process specifications and use cases.


Tuesday, February 7, 2012

What are different kinds of risks involved in software projects?

When we create a development cycle for a project, we develop everything like test plan, documentation etc but we often forget about the risk assessment involved with the project.

It is necessary to know what all kinds of risks are involved with the project. We all know that testing requires too much of time and is performed in the last stage of the software development cycle. Here the testing should be categorized ion the basis of priorities. And how you decide which aspect requires higher priority? Here comes the role of risk assessment.

Risks are uncertain and undesired activities and can cause a huge loss. First step towards risk assessment is the identification of the risks involved. There can be many kinds of risks involved with the project.

DIFFERENT KINDS OF RISKS INVOLVED

1.Operational Risk
- This is the risk involved with the operation of the software system or application.
- It occurs mainly due to false implementation of the system or application.
- It may also occur because of some undesired external factors or events.
- There are several other causes and main causes are listed below:

(a) Lack of communication among the team members.
(b) Lack of proper training regarding the concerned subject.
(c) Lack of sufficient resources required for the development of the project.
(d) Lack of proper planning for acquiring resources.
(e) Failure of the program developers in addressing the conflicts between the issues having different priorities.
(f) Failure of the team members in dividing responsibilities among themselves.

2. Schedule Risk
- Whenever project schedule falters, schedule risks are introduced in to the software system or application.
- Such kinds of risks may even lead it to a complete failure bringing down the economy of the company.
- A project failure can badly affect the reputation of a company.
- Some causes of schedule risks have been stated below:

(a) Lack of proper tracking of the resources required for the project.
(b) Sometimes the scope of the project may be extended due to certain reasons which might be unexpected. Such unexpected changes can alter the schedule.
(c) The time estimation for each stage of the project development cycle might be wrong.
(d) The program developers may fail to identify the functionalities that are complex in nature and also they may falter in deciding the time period for the development of these functionalities.

3. Technical Risks
- These types of risks affect the features and functionalities of a software system or application which in turn affect the performance of the software system.
- Some likely causes are:

(a) Difficulty in integrating the modules of the software.
(b) No better technology is available then the existing ones and the existing technologies are in their primitive stages.
(c) A continuous change in the requirements of the system can also cause technical risks.
(d) The structure or the design of the software system or application is very complex and therefore is difficult to be implemented.

4. Programmatic Risk
- The risks that fall outside the category of operational risks are termed as programmatic risks.
- These too are uncertain like operational risks and cannot be controlled by the program.
- Few causes are:

(a) The project may run out of the funds.
(b) The programmers or the product owner may decide to change the priority of the product and also the development strategy.
(c) A change in the government rule.
(d) Development of the market.

5. Budget Risk
- These kinds of risks arise due to budget related problems.
- Some causes are:

(a) The budget estimation might be wrong.
(b) The actual project budget might overrun the estimated budget.
(c) Expansion of the scope might also prove to be problem.


Facebook activity