Agile approaches in software development

By: Segiy Sergienko, 17 Oct 2016
3 minutes

Reading Time: 3 minutes

Agile project management has no standard set of practices, it is always hybrid and combines two and more different methodologies depending on particular software development requirements. They are used to plan, structure, and control the development of an information exchange systems in software engineering.

Nowadays Agile became popular and has improved software development projects in a large list of companies worldwide.
In this article, we will consider on the best methodologies and will systematize practices depending on specific project features.

Agile came about as a “solution” to the downsides of the sequential Waterfall approach to project management in software engineering. Here we’ve summarized a few of the main Agile methodologies. They share mainly the same philosophy, but tactics and practices may differ, depending on unique project development requirements. (Read more: How To Create Software Requirements Specification And Improve Your Software Development Process)

Rational Unified Process (RUP) projects are iterative and each project should have 2 plans: iteration plan for each iteration and detailed project plan. RUP key features:

  • Progressive interaction of elements in development process;
  • Improvement along the way of development process;
  • Iterative approach to mitigate risks;
  • Plan-driven base methodology.

XP (Extreme Programming) ideology describes that having multiple short cycles is more cost effective for changing requirements than having one long cycle. Key features of XP:

  • Small frequent releases instead of one final;
  • Test driven development;
  • Prompt and frequent feedback.

The philosophy of Crystal Methods consists of recognition that a particular team has different set of skills, roles, so all processes for each team should be uniquely tailored to it. Crystal key features:

  • People centric project management ideology;
  • Process remains important, but secondary.

Lean Software Development is based on efficiency of team resources use, and emphasizes that automated unit tests must be written at the same time the code is written. Lean key features:

  • Starts at process;
  • Just in time production ideology;
  • Less specific on timeboxes.

Kanban expanded outside Lean manufacturing practices used by automaker’s industry. Now it is a popular workflow among software engineering teams, which allows to organize the work on so called Kanban Board. Basically it includes the list of “to-do”, “in progress” and “done” activities. Kanban key features:

  • Continuous delivery practice of releasing work to customers daily or hourly;
  • Continuous flow with changes;
  • Visualisation of your workflow.

Scrum is specific set of meetings, roles and responsibilities which helps to manage software development project. The most successful way to create a product backlog is to implement user stories, brief functionality descriptions, written from the perspective of customer or user. Scrum key features:

  • Starts at team;
  • Team is self organized and responsible for results;
  • Springs are fixed length iterations of finished work;
  • Daily Scrum meeting of scrum team for status updates.

Summarizing all described methodologies we can highlight three groups of combinations depending on clarity and stability of software development project requirements:

  • If the scope of work is clarified and changes are acceptable RUP can be provided;
  • If the scope of work is clear and fixed, you can provide traditional Waterfall and RUP;
  • If there are always ongoing tasks, Scrum, Kanban, Crystal and Lean can be provided.

All mentioned methodologies can also be grouped by timelines and pricing:

Depending on contracts’ type (link to previous blog post about T&M, FP, DT) all approaches can be also divided in 3 groups:

  • for fixed price contracts the best practices are Waterfall and RUP.
  • for time and material – Scrum, Crystal, Kanban, Lean.
  • for dedicated team – Scrum, Kanban, Lean.

To sum up Opportunities your business will achieve from providing Agile Software development, we can mention the following:

  • Client’s involvement throughout the project;
  • Prioritization of features and product backlog’
  • Transparent and predictable pricing – approximate cost of each feature;
  • Fixed schedule, estimates provided to the client prior to each Sprint (1-4 week term).

So when it comes to software development the right combination of Agile practices and tools will help to manage your project.

Fixed deadlines Interim Deadlines No Deadlines
Fixed Budget WaterfallRUP
Not Fixed Budget ScrumCrystal

XP

LeanKanban

XP