Are you a Pointy Hair Manager?
Think again… Look in a mirror.
You run the risk of finding a Dilbert cartoon taped on your door some day if you think that:
–Software development is primarily about programming,
–Managing a software project is no different to managing any other project,
–The best approach is to establish a detailed plan at the beginning and make sure everyone abides by it on a daily basis,
–A safe way to proceed with the product is to freeze all requirements early, in order to minimize any risk of schedule slippage and late surprises,
–etc.
The Rational Unified Process (RUP) is a Software Engineering Process.
–It provides a guide to help determine who does what, when and how.
–It can be mixed with other methods (e.g. quality insurance, CMMI, Agile…).
Why to apply RUP?
–Computer systems complexity.
–Reproducibility and Predictability.
–RUP gathers best practices that have proven themselves.
RUP, 3 Foundations:
–Use case driven,
–Architecture centred,
–Iterative and incremental.
RUP, Best Practices:
1.Iterative approach
2.Requirements management
3.Software component based architecture
4.Graphical modelisation of concepts
5.Permanent software quality checking
6.Change control
Maturity Level:
The Capacity Maturity Model Integration (CMMI) is process oriented and defines 5 levels of maturity:
1. Initial
2. Managed
3. Defined
4. Quantitatively Managed
5. Optimising
RUP uses the process approach and allows an organisation to reach CMMI levels 2 or 3.
RUP Software development life cycle is organised into phases:
Iterative Approach:
Time Organisation:
Requirements Management:
–Discovering user requirements,
–Writing business use-cases with scenarios.
–Reorganising business use-cases into use-cases with attributes.
–Tracking requirements all along the development process.
Graphical Modelisation and Component Based Architecture are important subjects and will be the object of an article on their own.
Permanent Quality Checking:
ISO definition for quality:
–Quality is the property of what is conform to the requirements
Quality checking:
–Metrics assessment
–Defect tracking
–Code review
–Phase and iteration review
–Project tracking
Change Control:
–Change Request Management
–Configuration Management
–Measurement
Worker-Activity-Artifact diagrams are provided as guidance for the different processes of Software Engineering.
Organisation:
It is recommended to organise projects in smaller groups in order to facilitate communication.
The adoption of an iterative approach allows the reduction of the risks earlier in the project life cycle.
Conclusion:
These are recommendations and guidances, which are to be tailored to your needs, to the size of the project and to the size of the company.
The Unified Process allows to improve the quality and control over Software Development Life Cycle (SDLC), in order to:
–reinforce capacity to reach defined goals,
–decrease the cost of the whole software development, especially maintenance.
RUP has also proved that it can be light and agile.
Useful Resources:
Mapping between RUP and PMBoK article: http://www.ibm.com/developerworks/rational/library/4721.html