Methodology
The selection of project methodology is often governed by the client’s organizational needs and contractual arrangements. Typically we work with fixed timeframes and capped budgets, and we seek to optimize the functionality that can fit within these two constraints. In organizations where the requirements can vary significantly, or where internal staff feel unable to sign-off on our detailed designs, we encourage usage of scrum as an iterative methodology. This allows internal subject-matter experts to frequently examine the results of their design decisions and allows for corrections in an organized fashion. In more formal environments where requirements are static and clearly fixed, we favor RUP and commit to the delivery “in time and on budget” with strict adherence to change control procedures.
Scrum
Scrum was developed in the 80's and 90's primarily within OO development circles. A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called Requirements Churn), and that fundamentally challenges cannot be addressed successfully in a traditional predictive or planned manner. Scrum uses iterative cycles (called ‘sprints’) that typically last about 4 weeks. The result of each sprint gives clients a chance to visualize and understand the consequences of their requirements and design decisions – without having to wade through our rather detailed design documents.
RUP
IBM Rational Unified Process (RUP) was developed at a similar time. It’s best considered as a comprehensive process framework that provides proven best practices for software and systems delivery as well as implementation and effective project management. Like scrum, RUP is Use Case Driven (development is driven through user-visible features), iterative, and architecture centric (there's a priority to building a architecture early on that will last the project through).
Quotation
"I was never ruined but twice: once when I lost a lawsuit, and once when I won one."
Voltaire, French author and philosopher, 1694-1778