Home | The Company | What we do | The SSD | Project execution processes  
Some project execution processes

Pages: Prev 1 2 3 Next

 
Some project execution processes

Since the SSD earns most of its revenues from fixed-price projects, our management processes have to be tight and our quality processes have to be excellent to allow us to avoid overruns and retain profitability. In this respect, we are in a small elite minority in an industry which primarily operates on a T&M billing model.

We have tried to document some of the lessons we have learned from our projects and how our management process has evolved.

  • The Level 2 specs sign-off helps us communicate better with the cusotmer before development commences
  • The Task Tracking Table helps us avoid unpleasant surprises with schedule overruns
  • The CR tracking system allows a systematic process for resolving issues with the customer during the final acceptance of a software system
  • Remote relationship management processes allow us to develop software for customers we have never met in person.
  -->  Level 2 specs sign-off

Most development projects start with a specification-writing stage, after which the client is expected to review and sign his acceptance of the specification document. This is followed by solution design, which is followed by coding.

We have found that this is often inadequate, specially for interactive business applications. We build an initial conventional specifications document, which is accepted by the client. We call this our Level 1 specs document. But we do not place much importance on this sign-off. Based on this, we do a preliminary software design and build a complete set of mock screens, making their appearance and behaviour as close to the final appearance as possible. The business function officers of the client organisation go through the screens on their computer, enter mock data, and discuss each field of each screen with us. This gives them a much better idea of functionality than a specifications document. We take a Level 2 sign-off after freezing the screens.

Benefits: This benefits the customer because he gets a very real "feel" for the software application that will be developed, and therefore even a customer inexperienced in software development processes finds he can appreciate the specs given. It benefits the SSD because it sharply cuts down the likelihood of scope creep, misunderstandings and overruns later.

  -->  The Task Tracking Table

Once the detailed design of the application is complete, the next three steps are pseudo-code writing, coding, and unit testing. These steps are highly parallelisable, and this is where the largest team size is deployed. At this point, we use a task tracking table to measure progress.

This table contains a list of all the individual code units, The expected effort estimate in person-days of each task (e.g. pseudo-code, coding, testing) of each unit is recorded. As each phase of each unit is completed, its actual days of developer time are recorded. This is compared with the expected effort estimate for that task, and gives us a clear continuous measure of the effort overrun and calendar time overrun. This table can be processed to generate a daily summary of the percentage completion of the entire project and the percentage of the total estimated effort (measured in person-days) which have been consumed till date. Comparing these two figures gives a clear and early warning of projects heading for overruns.

With our task tracking process, a daily report is just five lines. An example is given below. (WD = working days; PD = person-days of effort)





Budgeted calendar time: 145 WD  
Elapsed calendar time: 42 WD (29%)
Budgeted resource allocation: 820 PD  
Resources consumed till date: 283 PD (35%)
Percentage of work completed: 31 %  




This example shows a picture of a project beginning to get into an overrun. It shows that 35% of the budgeted resources have been consumed but only 31% of the work has been completed till date. The fact that 35% of the resources have been consumed in the first 29% of the working days may be less of a problem.

Benefits: This benefits the customer because he does not see unexpected time overruns one week before the expected delivery date. It benefits the SSD because the management team can get alerted within one day from the date any project slipup starts.

  -->  The CR tracking process

When the project enters the User Acceptance Testing (UAT) phase, clients usually begin to submit change requests (CR) and bug reports to the development team. These are tracked in a CR tracking process. We have used software for this purpose, but we often find that a paper-based tracking process with a pre-designed blank form on paper works as well.

Each Change Request is graded by severity:

  • cosmetic changes, like some text needing to be highlighted on one screen
  • functional change, where the specfication the development team worked with is different from what the customer believes he needs
  • bug, a flaw which clearly generates incorrect results
  • critical error, which affects the entire functioning or stability of the system

Each CR is then picked up, executed, tested, demonstrated to the customer, and closed after customer sign-off. The CRs are picked up for execution in the order of their priority. Some CRs have commercial impact on the project terms.

Benefits: The CR tracking system helps steer the project to a close, by addressing bugs in a systematic and time-bound manner as well as resolving functionality and specifications differences between the customer and the development team.

  -->  Remote relationship management

It is always difficult developing software for a customer who does not have the opportunity to meet the development team frequently. The communication barriers throw up special challenges.

We apply a maximum visibility strategy to counter these barriers. We invest a lot of additional effort into communication to ensure that the customer never feels out of touch with the development team. Besides, all the measures discussed in the previous sections, e.g. Level 2 sign-off, are applied to these projects as well.

The SSD applies the following special processes to achieve this goal:

  • Weekly teleconferences: These are undertaken with or without there being any need for a specific week. These routine teleconferences go over the past week's work, give indicative commitments for the coming week, and discuss any unresolved problems which were not resolved by email till then. These conversations help a lot in building confidence and generating visibility for work in progress.

  • Email management: All email communication with the customer is tracked by the Project Manager, and any unanswered questions that the customer had sent in any email are tracked and followed up on. The Project Manager ensures that all such queries are answered in a suitably detailed response.

  • Prototyping site: Most of the software applications built by the SSD have browser-based front-ends. A prototyping server is set up on the Internet, in one of the server racks the company operates. On this server, the infrastructure team sets up a replica of the software stack the application will need. The development team is then given a semi-automatic mechanism to upload all completed modules or units, immediately after unit testing.

    This allows the customer to connect to the server over the Internet using secure connections and encrypted channels, and test each unit of software development, even if it in alpha-testing stages. The customer's observations are then discussed both over email and during the weekly teleconferences.

  • Guided walkthroughs: Whenever a module of the application is ready for UAT or even ready for intermediate inspection, the team leader for the module uploads a running copy of the software, sits in front of a computer with a browser, and enters into a long tele-conference with the customer. Using this setup, he guides the customer through the prototyping site, and "walks" the customer through an entire sequence of screens, with realistic data.

    These sessions are completely open-ended, and allow the customer the opportunity to ask the most unexpected questions about the sizes of files, ownerships and permissions of directories, and the method to make changes to the configuration of the running system. Our teams have found that this is the most powerful method to give the customer a clear idea of the project progress.

  • Minimum team size: Based on experience, we have found that it is important to have a minimum team size working on a software project for remote customers. If the engagement size is really small, then the resources needed for managing the overheads of communication exceed the resources deployed for the development work, leading to cost structure imbalances.

All these measures together ensure that our remote customers do not suffer due to communication gaps or lack of face-to-face meetings.

Pages: Prev 1 2 3 Next

Read our whitepaper
-->