In the beginning of my career even I got confused between Agile and RUP, these Methodologies are very popular and almost similar… based on the Project Requirements, Schedule/Timeline, Budget or Human Resource… any of these methodology is picked or implemented.
Never try to solve all the problems at once — make them line up for you one-by-one, thats how Agile or RUP works.
Before I go ahead and explore the difference between Agile and RUP, I prefer everyone should be familiar with Iteration & Increment, though it sounds similar they are implemented for different reasons.
First of all, when we are working on a project as a BA, we may need to deal with “n” no. of people who has “n” no. of variations (e.g., Arrogant, Lazy, or on Vacation, or Actor ? due to various reasons we may not have requirements as required from stakeholders, or we may have open questions waiting from users or 3rd parties to respond… this makes very limited requirements in hand.
Second, Though we are non-technical we have to respect tech folks; as on other side Developers will be waiting for requirements, to start coding – we cannot make them wait until full requirements are gathered. So we give them the requirement as they come or captured from Business so that they can start work on the Coding, however they may not finish the “feature” on one go though.
Third or meanwhile BA should be working on the additional/leftover requirements, which are expected to be captured from Business.
- All the above (3) steps are considered as one Iteration and these iterations should never stop, until final product is completed.
- Same applies with Incremental too – Developers build as much as required right now and add flexibility unless the need is proven. When the need arises, BA needs to capture the requirements as per the need and help Developers to build on top of whatever already exists.
In simple terms… in iterative, we are having an opportunity of adding new things.. where as in Incremental we are refining feature. Whatever it is… practically Iteration or incremental is a process that grows a system feature by feature. If you don’t see any progress, that means iteration or incremental is failed.
RUP consists of Inception, Elaboration, Construction and Transition and it is considered as iteration methodology took. These iterations again have number of iterations, so as to accommodate changes, suggested by stakeholders. The outcome of each iteration is a working solution released. The next iteration could explore new areas of solutions or improve the previous releases. Each iteration is planned so as to overlap with the previous iteration.
Agile follows standard steps…Requirement Gathering, Analyzing and Design, Development, Testing & Deployment and these steps are iterative and fast-paced process. A group of experts take up a certain number of features and the goal is to deliver a working model in 2-4 weeks, this period of time is called as sprint (i.e., sprint 1). The next release is necessarily an incremental release to handle changes or additional features.
Hope I tried my best to explain, if you have any questions you can post in the comments.