Thursday, 28 April 2011

Scope Management in Software Development Project

1.       The Story
I used to observe one project which was planned to be completed within one month. However, after more than four months it’s still in progress of fixing and implementing the demands which the client thought they should have been implemented. The team had been working so hard release by release and the client kept escalating but it’s still incomplete.
The project was to port one application written in VB6 + Ms Access to Web application + SQL Server. Initially, Project Manager (PM) said we only needed to map one to one from the VB6 application to the Web. One business analysis was assigned to write down the “software requirement” for all functionalities of the current application. The project was scheduled and controlled very well and the development of the new application was completed on schedule within a month.
1st Release: After just some playing around with the Web application, client decided to stop testing and gave feedbacks on the new application, most of them were not really relating to the current functionalities of the current VB6 application but related to the common behavior of Web application such as:
1.       My working environment is IE6 (an old version) and some functionalities don’t work on it. (all had been tested in Firefox successfully)
2.       The theme of the Web application doesn’t look right. I will send my environment web theme.
2nd Release: PM took these feedbacks and put together into another release plan. He and his team had worked hard to complete this plan and then delivered the application to client for the 2nd round of UAT. However, just after running a few test scenarios, client decided to stop testing and went back with other concerns:
1.       I am able to edit pre-defined data such as positions, departments in MS Access database, now I can’t do it with the Web. If I have to open the console of MS SQL, it’s not right to do.
2.       How is about my existing data? It must be migrated to the new platform.
3rd Release: The next plan was defined and implemented and then the 3rd round of UAT still had problems:
1.       Why doesn’t the search function support wildcard?
2.       Tab order is very inconvenient for business user.
3.       When two users edit the same record, why is there no warning?
4.       The function of “export to CSV” existed in the VB6 application, why is it missing in the new Web application?
4th Release: This release seemed to be OK;, however, client had their technical team to review the source code and continued to raise concerns:
1.       Why don’t code comments follow a common style?
2.       Why is a 3rd party library used?
3.       Why does the application use system users to login, instead of application defined users?
4.       I need to look at the system architecture and basic design for main functionalities.

2.       Background
2.1.    Scope Definition
According PMBOK v4 with scope management, there are two kinds of scope: Product scope and Project scope. Now, let’s see what they are in software development projects.

2.1.1. Product Scope
It is functional requirement and non-functional requirement. Nowadays, functional requirement comes directly from client and is often written in Use Cases, but there’re still many other forms for writing functional requirement. Non-functional requirement comes from constraint from client and also comes from the expertise of project team or process asset. Common areas of non-functional requirement should be ready in the process asset of an organization. For example, for a Web application, the project team should consider common non-functional requirement as below, even if client doesn’t request.
GUI requirement: Is there any specific theme required? any layout standard required? etc.
Interacting with external systems:
Performance: Any requirement on response time, concurrent users, etc.
Security: Any constraints with client’s system environment, is Single Sign-On required? Etc.

2.1.2. Project Scope
The product scope mentioned above is quite important, but the project scope which is being mentioned here is a lot more important. However, Project Managers who are lacked of training often miss this resulting in failure in term of time of delivery, cost of delivery and quality. Now, let’s see what the Project scope is.
In theory, project scope is activities which are required do to and how much the team needs to do with these activities to create products and provide services. In software development, project scope defines which activities the project team needs to do such as whether unit test script is required and how much test coverage is expected. Let’s take a look at the below example.
Activity
In or out of scope?
Requirement
Requirement
Yes/No
Which level of requirement document is required?
Architecture
Yes/No
Which level of architecture is required?
Detailed Design
Yes/No
Which level of detailed design is required?
Implementation
Yes/No
Which coding convention is required?
Unit Test
Yes/No
How much test coverage is required? Is it required to be automatic?
System Test
Yes/No
Similar to above
Build and release
Yes/No
Similar to above
Acceptance Test
Yes/No
Similar to above
Project management
Yes/No
Similar to above
User support
Yes/No
Similar to above

2.2.    Scope Management
Once the product scope and project scope are defined completely, they must be “signed off” by client and sponsor, or we call it is baseline. Then, we manage scope to make sure that we deliver what we committed, no more and no less. Lacking of scope management will result in:
·         Scope creep: requests keep occurring and the project is likely never finished.
·         Incomplete delivery: the application is delivered but some of the requirement is still not implemented.
Project scope management with WBS: (refer to WBS here)
When project scope is defined carefully, its required activities become first level of project WBS. From this, PM manages to break down to have smaller work packages and tasks. Managing WBS and planning to complete it seems to be fundamental for PM so when the project scope is done in the right way like this, there shouldn’t be a problem. However, the challenge is how to manage the product scope.
Product scope management (or Requirement Management in software development projects): Once the product scope (or software requirement) is signed off, there are two things we need to manage. Firstly, we have to make sure any change occurs must go into the Change Control process. Secondly, we have to make sure all of the software requirement will be implemented fully.
What I want to emphasize here is how to make sure what is defined in software requirement is fully implemented.
Back to the story at the 3rd release, the problem #4 is demonstrated for missing implementation. The “Export to CSV” requirement was mentioned as one bullet in the software requirement, however, developers missed it and the testers also missed it.

Instead of depending too much on project team members, there is  another tool which helps to track the implementation subjectively. It is the Requirement Traceability Matrix (RTM)which is as simple as the table below:
User requirement
Software requirement
Architecture
Detailed Design
Implementation
Test Cases
Build
Release




























The output artifacts of the activities are filled in this matrix. For example, with the functionality “Log-in”, where it is architected, where it is designed, which source code it is implemented, which test cases it is written in and so on. One user requirement is only completed when all other columns are filled fully. The product is completed when the matrix is filled fully.
Imaging one project which contained 1,500 rows of user requirement, broken down to many releases within one and a half year. Without using this matrix, how could we sleep well at every release time. But by using it, we can early detect the missing activities and correct them in time.

3.       Lesson Learned
Back to the story of this article, the root cause obviously is lacking of scope management. All the problems/concerns reported by client should have been defined before going to execution phase of the project. Most of the times, Client’s need just focuses on the functional requirement which is simply porting all features from the old application to the Web application. However, it is the responsibility of PM to manage the scope beyond what client requires and this is why the PM Job exists.
Let’s take an analysis, we can map problems/concerns to the product scope and project scope as below:
Release
Concern/Problem
Root cause/Missing
1st
·         My working environment is IE6 (an old version) and some functionalities don’t work on it. (all had been tested in Firefox successfully)
·         The theme of the Web application doesn’t look right. I will send my environment web theme.
Product scope definition
Non-functional requirement
2nd
I am able to edit pre-defined data such as positions, departments in MS Access database, now I can’t do it with the Web. If I have to open the console of MS SQL, it’s not right to do.
Product scope definition
Functional requirement

How is about my existing data? It must be migrated to the new platform.
Project scope definition
User support
3rd
·         Why doesn’t the search function support wildcard?
·         Tab order is very inconvenient for business user..
·         When two users edit the same record, why is there no warning?
Product scope definition
non-functional requirement

The function of “export to CSV” existed in the VB6 application, why is it missing in the new Web application?
Product scope management
Missing RTM
4th
Why don’t code comments follow a common style??
Why is a 3rd party library used?
Project scope definition
Requirement on Implementation and architecture

Why does the application use system users to login, instead of application defined users?
Product scope definition
non-functional requirement

I need to look at the system architecture and basic design for main functionalities.
Project scope definition
Architecture and Design

4.       Conclusion
There are many areas which PM needs to do well to succeed in managing projects. Scope management is one of the very important areas because failure in defining scope and managing scope will result in failure in delivering project even if other areas have been done well. Scope management can be summarized as below:
Scope definition
Note
How to manage
Product scope

Use RTM
Functional requirement
Product features required by client
Non-functional requirement
Constraints required by client or seen by project team
Project scope
Activities required to deliver the product
Use WBS

4 comments:

  1. The future of software testing is on positive note. It offers huge career prospects for talented professionals to be skilled software testers. Software testing training|Software training|Software testing training in chennai

    ReplyDelete

  2. very useful info, and please keep updating........
    Best Online Software Training

    ReplyDelete
  3. Sap Training Institute in Noida-Webtrackker is the best SAP training institute in noida. SAP is drastically a completely state-of-the-art element ever to analyze and to excel in it. However with the ever-growing price, and being the most accessible organization solution key, agencies are greater involved to have their employees specialized in it. The education courses effectively deliver you with the fundamental recognition of SAP, in a grade by grade way.
    Sas Training Institute in Noida
    PHP Training Institute in Noida
    Hadoop Training Institute in Noida
    Oracle Training Institute in Noida
    Linux Training Institute in Noida
    Dot net Training Institute in Noida

    ReplyDelete