4

I've heard a lot about Scrum and Agile, but what, in a single sentence, do they do to help projects? Are they a general suggestion to the recipe for success, or do they get into specifics of organization and time distribution? Why are they in such wide use today? What negative factors do they combat and mitigate?

(obviously elaboration is more than welcome, but summing their reason for existence up in one sentence would be highly desirable as well.)

  • In one sentence, Agile development is developing a working software through a real feedback mechanism. – Prateek Narang Nov 8 '11 at 10:44
2

Contemporary Project Management Methodologies can be classified as Planned and Adaptive. In the Planned camp you find the traditional waterfall and all the derivatives of it. In the Adaptive camp you will find Iterative and all the derivatives (UP, Agile, Scrum, Kanban).

THe main difference is in natural occurrence of the requirements. On projects that are very stable and predictable, Planned processes are more efficient (e.g. developing a drug). In volatile environments Iterative processes are better (web store).

Why they are better or not is just a natural response to evolution. Some time back it was impossible to iterate on a project since it was very expensive and time consuming to get through processing time (IBM 360 time). With the advent of inexpensive and powerful computing devices, it was not only possible, but also more effective to iterate with the final customer to achieve a more precise outcome.

  • what is UP management? – xsace Nov 8 '11 at 22:41
1

Agile is a methodology for handling changes in requirements midway through the project. This is achieved by focusing on developing the application piece by piece and getting feedback.

It is useful when

  • There is uncertainty in what the final application should look like
  • The market has changed during development and you need to respond (eg: competitor introduced a new feature that you need to match, or new govt regulations during development)

In traditional "phase" based processes, there is significant overhead to changing requirements. Lets say you are in the testing phase, and some new features are needed. Then you have to go back and redo many parts of the requirements and design and development phases.

The other problem is that if you build the whole application and only then show customers, when the feedback comes it will a) be too late to incorporate easily b) you will again have to do significant rework

Agile processes get around these by focusing on incremental development and rapid feedback. The basic idea is to implement few of the features, then show it to your customers/users and get their feedback. Then take the learning and make changes to your project direction. Because the feedback comes early on, it is much easier to incorporate into the application.

You also have the option of changing the requirements more easily.

For example, if you decide from early feedback that you dont need feature C which is planned for later on, then you can just drop it. Since you haven't started any work on feature C, you haven't wasted any effort on this feature. This makes you more flexible in the direction you take.

Overall, the main point of agile processes is to give you flexibility and adaptability.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.