As you may know, the Rational Unified Process, or RUP, is a widely used software process framework that can be tailored to your process needs. Agile is an iterative software engineering with open scope, focusing on working software over comprehensive documentation. Extreme Programming is another method of Agile programming advising several key tasks, as defined in RUP.
IBM Rational Unified Process
IBM Rational Unified Process (RUP) is a comprehensive process framework that provides industry-tested practices for software delivery. It is a guide for system implementation, thereby enhancing effective project management.
With RUP, you will be able to:
- Enhances productivity using configurable techniques and practices to fit individual project needs.
- Supports team collaboration and individual practitioners with context-sensitive guidance.
- Enables early risk mitigation using iterative processes centered around business priorities and stakeholder needs.
- Promotes organizational transformation with our comprehensive education and implementation services
AGILE Software Development
Agile is the term used by many to mean different things. In software development, when we mention Agile, it is a set of Unified Process, similar to RUP, but has been simplified. We met with the author of Agile, Scott Ambler, awhile back, and here are some of the highlights that we can share:
- Agile is a simplified version of the IBM Rational Unified Process (RUP). Agile describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP.
- Agile is a collection of values, principles, and practices for managing software development project in an effective and light-weight manner. Agile is meant to be tailored into other, full-fledged methodologies such as RUP, enabling you to develop a software process which truly meets your needs.
- The values of Agile are communication, simplicity, feedback, courage, and humility. The keys to project success are to have effective communication between all project stakeholders:
- to develop the simplest solution possible;
- to obtain feedback regarding your efforts often and early;
- to have the courage to make and stick to your decisions; and
- to have the humility to admit that you may not know everything, that others have value to add to your project efforts.
Extreme Programming is an off-spring, one of several popular Agile processes. Extreme Programming (or popularly known as XP) emphasizes end-users satisfaction. Instead of delivering the software features later in the cycle as planned, the process allows the features to be delivered as you need it. Extreme Programming live by its simple rules:
- User stories are written.
- Release planning creates the release schedule.
- Make frequent small releases.
- The project is divided into iterations
- Give the team a dedicated open work space.
- Set a sustainable pace.
- The Project Velocity is measured.
- Move people around.
- Code must be written to agreed standards.
- Code the unit test first.
- Only one pair integrates code at a time.
- Integrate often.
- Set up a dedicated integration computer.
- All code must pass all unit tests before it can be released.
- When a bug is found tests are created.
- Acceptance tests are run often and the score is published.