Plans are of little importance, but planning is essential.

– Winston Churchill.

Gone are the days of 12-month long project execution cycle. In the world of agile, 3-6 month of strategic project execution is enough.

In this article we will give you insight into what agile really is and how an agile development process looks like.

What agile development really is?

Agile is a methodology of early delivering business value with less bureaucracy.

It is a collection of software development methodology which works on an iterative and incremental method building the software from the very initiation of the project development instead of building all the software at once.

Agile discovers what the customer and how to build the code and change things along the way.

what-agile-development-really-is

Agile works by breaking down the project into smaller chunks and then continuously delivering them in short two weeks cycles called iterations.

In an agile development process, solutions are obtained by self-organizing teams which collaborate, discuss, and constantly strive to improve their working process and become more effective in what they do.

how-agile-development-process-looks-like

Four core values of an agile development process

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Principles guiding agile development

To satisfy the customer through early and continuous delivery of valuable software.

  • Welcome changing requirements, even late in the development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within the development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity — the art of maximizing the amount of work not done — is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Methodologies used in agile development process

methodologies-used-in-agile-development-process

1. Scrum

Scrum is a term used in rugby which means a huddled mass of players engaged with each other to get a job done.

In software development, the definition remains the same but in a different context. In software development, scrum means managing a work with a small team and working on project management framework to reveal the strengths and the weaknesses of the project.

Learn more about Scrum development today!

scrum-framework

It consists of three roles.

1. Product owner

  • She works as the voice of the client
  • Responsible for developing and maintaining the feature of a sprint;
  • And deciding the release date

2. Scrum Master

  • Resolve the problems during the project
  • Ensure team productivity
  • Build winning team

3. Team

  • People who do work and develop the product
  • Works collaboratively and share responsibilities among each other
  • Responsible for designing, implementing and fixing the bug of the product.

How Scrum works

Step 1: The product owner develops a particular set of features for each sprint which is defined in the product backlog.

Step 2: Then the team selects the top feature from the product backlog which they will deliver at the end of a sprint.

Step 3: After agreeing to do a particular feature, the feature is broken into a smaller task which is developed by product owner found in the sprint backlog.

Step 4: Then the sprint starts, during the sprint, there is so called daily meeting where the team member provides their task status and discuss the problem related to a task. In this daily meeting, scrum master is responsible for solving the problem.

Step 5: After completing the sprint, the feature is presented to the product owner for the approval and the review is given to team related to a feature in sprint review.

Step 6: Finally, in retrospective meeting the team, scrum master and product owner discuss improvement in the overall process. After agreeing to do a particular feature, the feature is broken into a smaller task which is developed by product owner found in the sprint backlog.

Also read: A Beginner’s Guide to Scrum. 

2. Crystal Methodology

In mid-1990s, Alistair Cockburn, Developer at Crystal Methods, developed an innovative methodology for product management and execution.

While interviewing some teams, Alistair found that there were many teams who did not follow formal methods but still delivered successful projects within deadline. The Crystal family is Cockburn’s way of cataloguing what they did that made the projects successful.

Cockburn says:

“Process, while important, should be considered after the above as a secondary focus. The idea behind the Crystal Methods is that the teams involved in developing software would typically have varied skill and talent sets and so the Process element isn’t a major factor.”

Since teams can go about similar tasks in different ways, the Crystal family of methodologies are very tolerant to this which makes the Crystal family one of the easiest agile methodologies to apply.

How the crystal methodology works

Step 1: Chartering

  • Build the core team which includes executive sponsor, lead designer, Ambassador user and number of system analyst.
  • Perform the exploratory 3600 which provide high level project wide review of the key issues governing the development effort.
  • Shape and fine tune the convention methodology which include a minimal set of rule is agreed by the team for developing the system.
  • Build the initial project plan typically include a project map showing the projected completion dates for delivery cycles and iteration completion dates for delivery cycles.

Step 2: Cyclic delivery

  • The requirement and project plan are updated and reviewed according to the experience gained in the delivery cycle performed so far.
  • In delivery cycle one or more iteration are performed and each iteration last from one week to three month.
  • Deliver to real user for feedback and the user feedback are used for the improvement in system and revising the plan or requirement.

Step 3: Wrap up

  • Perform the acceptance training.
  • Prepare the final product for the user.
  • carry out system conversion
  • Perform the final reflection and record the lesson learns from the project.

Start your next project now!

3. Dynamic Software Development Method (DSDM)

DSDM is one of the leading agile project delivery framework, primarily used for the software development. It is a framework which gives much of the current knowledge about project management.

The importance aspect of DSDM is that users are actively involved and the team is given power to make a decision. DSDM are actively focused on frequent delivery of a product.

dsdm

 

 

Three core techniques used in implementing DSDM

1. Timeboxing

Timeboxing technique used in DSDM to achieve the certain task at given interval but not more than 2, 4, or 6 weeks.

2. MoSCoW Rules

DSDM is also concerend with completing the project within budget. One way to do so is to heavily involve the product owner in the development process. The idea is to always focus on and finish the most important features for the end product user.

The DSDM techniques to weight the importance of requirements are the MosCow rules. And the rules are as follows,

  • Must have: All features classified in this group must be implemented and if they are not delivered, the system would simply not work
  • Should have: Features of this priority is important to the system but can be omitted if time constraints endanger.
  • Could have: These features enhance the system with functional items which can easily be reassigned to a later timebox.
  • Want to have: These features only serve a limited group of users and are of little value.

3. Prototyping

Prototyping in DSDM project satisfy 2 principles:

1. Frequent delivery

2. Incremental development

DSDM differentiates on the following for types of prototypes,

  • Business prototype: Allow assessment of the evolving system
  • Usability prototype: Check the user interface
  • Performance prototype: Ensure solution will deliver performance or handle volume
  • Capability prototype: Evaluate possible options

4. Future-driven development (FDD)

Jeff De Luca, a global information technology strategist, faced problems in project management when a big team was involved in software development. So he designed a framework for a larger teamwork which came to be known as future-driven development.

future-driven-development

This method is focused on designing and building features. And it works best for domain object modeling, and code and feature development for ownership. FDD describe very specific and short phases of work that has to be accomplished separately per feature.

Steps involved in future-driven development

1. Domain object modeling

2. Development by feature

3. Component ownership

4. Feature teams

5. Inspections

6. Configuration management

7. Regular Builds

8. Visibility of progress and results

5. Lean Software Development

Lean software development is an iterative agile methodology developed by Mary and Tom Poppendieck. It is based on the famous Toyota manufacturing methodology Just-in-Time.

Lean software development aims at increasing speed of software development at low cost and focuses the team on delivering the value to the customer.

The main principles of lean software development

  • Eliminating waste
  • Amplifying learning
  • Defer commitment (deciding as late as possible)
  • Early delivery
  • Empowering the team
  • Building integrity
  • Optimizing the whole

6. Extreme programming (XP)

Extreme programming is a software development methodology intended to improve software quality. It is a powerful tool when the customer is not sure about the functionality of the system.

extreme-programming

The extreme programming development software keeps the customer in target and introduces checkpoint where any customer requirement can be easily implemented.

It is used for releasing a product in shorter cycles of 14 days called iteration. Each iteration includes phases like coding, unit testing, and system testing where at each phase some minor or major functionality will be built in the application.

How it works

Step 1: Planning

  • Break the user stories into small part
  • gather information related to user stories
  • Prepare plan, time and cost to carry out the work.

Step 2: Analysis

  • Capture stories in parking lot
  • prioritize stories
  • define budget
  • define iteration span time

Step 3: Design

  • Break down of task
  • Test scenario preparation for each task.
  • Regression Automation Framework

Step 4: Execution

  • Coding
  • Testing
  • Conversion of manual to Automation regression test case
  • Mid iteration review
  • End of iteration review

Step 5: Wrapping

  • small releases
  • Demos and reviews
  • develop stories based on customer need
  • Process improvement on an end of an iteration.

Step 6: Closure

  • Pilot launch to test the product
  • Give training
  • Production launch
  • Production Support

Things to keep in mind before you start agile development

Agile development is indeed efficient and effective. But still it is not for every team. Every team is not capable or equipped with right skill set to implement an agile development process.

Here are the three  steps you should keep in mind while implementing agile in your company.

1. Is agile development right for your company?

Well, we have already written a blog post on this: Is Agile Development The Right Fit For Your Company?

But you’re still in doubt, we would recommend you to consult an agile mentor. He is the best knowledge base if you are not sure or need facts or success stories to support your approach.

He will understand the ins and outs of your business and team and can then tell whether an agile development process will be suitable for your company or not. The mentor builds up your confidence as an agile manager and helps you take small agile steps toward your self-organized team and your new role as an agile manager.

But before that, you must be open to take advice from your mentor, who has no stakes in your organization.

2. Get a manager

A 2010 State of Agile Development Survey revealed that:

One of the main reason for the company not adopting agile methods is due to the loss of the management control

The traditional role of a manager in the corporate world is based command and control format. A manager gives orders and the team follows. But with software development, the scene is different. A manager in software development is one who is responsible for managing the team for success which includes cheering them through their challenges.

An agile manager’s goal is to enable the team to solve its own problems and come up with its own amazing insights and products.

Skills such as assessing team health, removing organizational impediments, making room for failure, and having the ability to coach become central.

If you are implementing agile in your company, it’s time that you appoint a manager of some extraordinary capabilities.

3. Hire an excited team

Most of the time, a team working on agile don’t know how agile development works and they see no point in applying agile.

If your team is also carrying this idea, you better not introduce agile methods right away.

A group of motivated individuals, who work together toward a goal, have the ability and authority to take decisions and readily adapt to changing demands. And that is crucial for agile methodology.

Here are a few advantage of having a self-motivated team when applying agile methods:

  • They pull work for themselves and don’t wait for their leader to assign work. This ensures a greater sense of ownership and commitment.
  • They manage their work as a group
  • They understand requirements and aren’t afraid to ask questions to get their doubts clarified
  • They continuously enhance their own skills and recommend innovative ideas and improvements