Subscribe by Email


Showing posts with label Milestones. Show all posts
Showing posts with label Milestones. Show all posts

Monday, July 15, 2013

Introducing a code lockdown near the critical milestones ..

In a typical software development cycle, there are specific milestones near the end, with the expectation that the team would have stabilized the code and the product, and there would be few defects left near the end. However, there is a certain gentleman by the name of Mr. Murphy, who has a law called Murphy's Law (in our team, the definition of the law is simple - if something can go wrong, it will). So, as we approach near the last milestones, there are certain defects that do come up and need to be fixed. However, there are differences in the approach during the time when defect finding and fixing was ongoing, and the time when the team was close to the ending milestones.
The difference in approach is about the strictness in letting code changes go through. In the earlier parts of the cycle, the team would file defects, these would be verified by the developer and then the developer would make a fix for these defects and these would then flow to the tester. However, there were not too many restrictions on defect fixing and code changes, although defects that caused change in functionality or were risky were typically taken to a committee which approved the fixing of the defect, and at the same time, senior members of the team would be involved in code review to ensure that the code being checked in was as safe as could be determined during the process of code review.
However, as one reached closer to the ending stage milestones, there would need to be more restrictions used to minimise risk. At this stage, a problem in a defect fix could cause more problems to the product and even end up having some dependency issues on other parts of the code. The risk was too high of letting code changes go through without some kind of check. Towards this end, a dual check was introduced. The defects would all be passed to a defect review committee which would review a defect and give preliminary approval for some of the defects to be fixed, subject to a more rigorous review of the code. Once the committee gave an approval, there was a higher amount of inspection given to the code during the code review process, and once the approval was there, the code could be checked in the source safe. No code was allowed to be checked into the product area of the source safe (if developers were doing some other work, such as some advance work on a feature planned for the next release, then they could check in their changes to a different branch, but not to the main branch) unless there was approval (some teams have been known to actually put a check to ensure that no code was allowed into the source safe even by mistake, only when the administrator would give access would such a checkin be allowed).
Such a strategy may ensure that late breaking defects would not be easily fixed, but also would reduce the amount of risk in the end stages, and that is a pretty critical achievement.


Thursday, May 24, 2012

Phase 4 of Unified Process Life cycle - Transition


Unified process is one of the best development processes we have of the iterative and incremental form. The whole unified process is completed in four phases which have been mentioned below:
  1. Inception phase
  2. Elaboration phase
  3. Construction phase and lastly
  4. Transition phase
This whole article is all about the last phase i.e., the transition phase. In this whole article we are going to discuss about the last phase. 

What is a Transition Phase?


- The final phase of the unified process i.e., the transition phase involves the deployment of the system for targeting the customers.
- The feedback that is collected on the account of the previous releases helps in further refining or improving the software system or application. 
- It can also be decided over the further functionality that have to be added to the software system or application under development to make it much better. 
- Transition phase like all of the preceding three phases is composed of several timed iterations that are time boxed. 
- Apart from just targeting the users, the transition phase also involves user training and the system conversions. 
- The transition phase has been named so because it is in this phase that the transition of the whole system from development to production takes place and software is made available to the users. 
Along with the end users in some cases the maintainers might also be treated. 
- This phase also witnesses the beta testing of the software system or application so that it is validated against the expectations of the end users. 
- A certain quality level is set in the phase i.e., in the inception phase which is tested in against by the quality of the software system or application in the transition phase. 
- The point at which all the objectives are met is called the “product release milestone”. 
- At this point the product is declared finished and the development is also declared to be complete. 
- The unified process is quite a robust software process that is meant for addressing the development as well as the production needs of the users and the customers. 
- We need a software development process that serves the scope of our real world quite well and provides us with a balanced perspective of the alternative programming methodologies available from all around the field. 
- In this transition phase, if there are any legacy systems that you are going to replace, then your whole software system or application is operated in parallel with those legacy systems. 
- This leads to the conversion of the legacy data bases and the systems in to an improved one that supports your new software system or application. 

Goals of transition Phase


The transition phase has got three main goals as mentioned below:
1.Evolving the final product baseline or the production base line of the software system or the application.
2.Training the materials for the software system or application.
3.Creation of the documentation which is inclusive of all the user manuals, operations documentation and the support documentation.

Issues faced during Transition Phase


- This phase is concluded with the product release milestone. 
- Achieving this milestone is not so easy since you have to satisfy all the expectations of the end users and also justify the actual expenditures against the planned expenditure. 
- Issues such as finishing the features that were postponed usually arise after the product has been transited to the end users or customers. 
- The production baseline ought to be mature enough to be deployed in the end user domain. 
- The operational data bases are also converted and the final product is released for marketing, distribution and sales team. 


Wednesday, November 2, 2011

Define the tracking progress for an object oriented project?

For a object oriented project, tracking becomes really difficult and establishing some meaningful milestones is also a difficult task as there are many things that are happening at once. For tracking an object oriented project, following milestones are considered to be completed when the below mentioned criteria are met:

Milestone for Object Oriented Analysis is considered completed when the following conditions are satisfied :
- Every class is defined and reviewed.
- Every class hierarchy are defined and reviewed.
- Class attributes are defined and reviewed.
- Class operations are defined and reviewed.
- Classes that are reused are noted.
- The relationships among classes are defined and reviewed.
- Behavioral model is created and reviewed.

Milestone for Object Oriented Design is considered completed when the following conditions are satisfied :
- Subsystems are defined and reviewed.
- Classes are allocated to sub systems.
- Classes allocated are reviewed.
- Tasks are allocated.
- Task allocated are reviewed.
- Design classes are created.
- These design classes are reviewed.
- Responsibilities are identified.
- Collaborations are identified.

Milestone for Object Oriented Programming is considered completed when the following conditions are satisfied :
- Classes from design model are implemented in code.
- Extracted classes are implemented.
- A prototype is built.

Milestone for Object Oriented Testing is considered completed when the following conditions are satisfied :
Debugging and testing occur in concert with one another. The status of debugging is often assessed by considering the type and number of bugs.
- The correctness of object oriented analysis and design model is reviewed.
- The completeness of object oriented analysis and design model is reviewed.
- Collaboration between class and responsibility is developed and reviewed.
- Test cases designed are conducted for each class.
- Class level tests are conducted for each class.
- Cluster testing is completed and classes are integrated.
- Tests related to system testing are established and completed.

Each of the milestone is revisited as object oriented process model is iterative in nature.


Monday, October 31, 2011

Project Scheduling - Different ways for tracking the schedule.

A proper project schedule is very important for a successful project delivery. The project schedule is a road map for a software project manager. A project schedule needs to be properly developed. A proper project schedule defines the tasks and milestones that are tracked and controlled as project proceeds. This tracking needs to be accomplished nicely and there are different methods and ways to do so...

- Timely project meetings regarding the status of the project are held and it should be ensured that each team member should report the progress achieved and the problems that are faced.
- There are different reviews that are conducted throughout the software engineering process. It becomes necessary to evaluate the results of all these reviews in order to accomplish proper tracking.
- To accomplish proper tracking, for each task of the project, the actual start date and the planned start date should be compared.
- To accomplish tracking, one should determine whether the formal project milestones are achieved by the scheduled date.
- To accomplish tracking, progress should be assessed quantitatively.

The best indication of progress is the completion and successful review of a defined software work product.
The control administers the project resources, cope with problems and direct the project staff. Control is light if the project is on schedule and within budget. The control is exercised to reconcile the problems if they occur.

In case the problem is identified and diagnosed:
- staff is redeployed
- additional resources should be focused on problem area.

A severe deadline can be managed by time-boxing technique. It chooses an incremental software paradigm and a schedule is derived for each incremental delivery. This technique is done when the product may not be deliverable by a pre-defined deadline.


Thursday, October 13, 2011

What is project scheduling? What are the basic principles of project scheduling?

Software project scheduling is an activity that distributes the estimated effort across the project duration that is planned by allocating the effort to specific software engineering tasks. There are two perspectives of scheduling for software engineering projects:
- End date for release of computer based system has already been established. The organization is constrained to distribute effort within the time frame.
- Rough chronological bounds are discussed but end date is set by software engineering organization.

The basic principles that guide software project scheduling are:
While developing a schedule, compartmentalize the work, note task inter-dependencies, allocate effort and time to each task, define responsibilities, outcomes and milestones. Each of these principles is applied as project schedule evolves.

- Compartmentalize the project into number of manageable activities, tasks and actions. Both product and process are decomposed.
- Inter-dependency among various activities, tasks and actions should be determined. Some tasks can occur in sequence and some in parallel.
- Time frame should be allocated to each task. Task should be assigned a start and end date and whether the work is done on a full time or part time basis.
- Effort estimation is allocating number of people on software team. Project manager should ensure that no more than the allocated number of people are scheduled at any given time.
- Responsibilities should be defined for every team member.
- Outcomes should be defined for every task that is scheduled.
- Milestones should be defined for every task or group of tasks.


Facebook activity