The Ulysses approach to building software systems is a custom-built methodology based upon the Rational Unified Process (RUP) and the Microsoft Solutions Framework (MSF). It is a strongly iterative approach developed with simplicity in mind. Complexities, and therefore deliverables, have been kept to a minimum so as to facilitate developer participation.
Overview
The Ulysses approach consists of four phases. An overview of the methodology is presented below.
Principles of Ulysses Iterative Development
The Ulysses process has at its core a number of principles that reflect the culture of Ulysses Systems.
Shortest possible cycle-time
Iterative software life-cycle is based on successive enlargement and refinement of a system through multiple development cycles of requirements analysis, design, implementation, testing and deployment. The Ulysses approach is strongly iterative, resulting in the frequent delivery of internal and external versioned releases. By reducing the cycle plan, the development teams have a far better chance of maintaining a fast response time to continual changes in product requirements, schedule and risk. Frequent executable releases enable the teams to communicate with the customer and obtain suggestions for change.
Risk-driven planning and prioritisation
The decision as to which tasks or functions are assigned to each development cycle is driven by the risk associated with those tasks or functions. The higher the risk, the earlier the development cycle - in other words, high risk.
A Fixed-Ship Date Mindset
A fixed-ship date means that the team treats its projected beta and product release dates as unchangeable. Once fixed, the team cannot use this changes to this constraint for corrective decisions, unless it is the only one available. Maintaining this mindset requires a number of supporting factors:
-
It forces the team to think creatively in its bid to solve problems that might change the dates.
-
It requires that tasks be prioritised according to importance. If the team must drop features to make the date, it must ensure that those dropped are the least important.
-
It requires effective planning. Making the date is about detailed planning. It is not about discipline or working beyond one's abilities.
-
It requires that the date is seen as a motivational goal, not as a constriction imposed from above.