Translate

Sunday, October 6, 2013

Agile: Software Development Done Smart

When it comes to working on projects there are a few different ways to approach them. One way to approach a project is to create a plan at the beginning and use that for the entire project. In this option there is really only one route to follow as the whole product is put together at once. An increasing option for a project is to use agile development. Agile development is more flexible as the progress is in intervals and the customer can see parts of the project come to life. This way the customer receives working software continuously and frequently. The Agile Manifesto.


How does one get started with agile development? The key to agile is the customer and developer communication. Each agile development interval is called a sprint which usually lasts two to four weeks. The sprint start with a scrum where the customer gives a relatively simple description, a “user story,” of what they want and then the developers figure out how to solve the customer’s problem. A list of what the customer wants is created and then the order in which they are implemented and what sprint they are going to be worked on are decided. During the scrum a leader is chosen as well to communicate with the customer and divide the work amongst the team members. In the following scrum meetings team members share what they worked on, will work on, and identify any blocks to progress. At the end of the spring a working, not necessarily final, product is shown to the customer and the customer can decide on any changes that need to be implemented. An interesting way to estimate the effort of a “user story” is to use a method called planning poker where the developers pick a numbered card depending on the amount of work they think is required. Then everyone shows their cards at once and discusses why they picked their number. You can test out and get a better idea of planning poker at www.planningpoker.com.

3 comments:

  1. Agile is flexible but it's also a fast paced working environment. In agile, product owners (customers) do not give the teams "user stories", they give requirement documents and scrum masters have to break it into many small parts and prioritize them in sprints. Each small part called "user story". Customer-valued prioritization is concerned with working on the items that yield the highest value to the customer as soon as possible. Prioritization is essential for the team to be able to adjust the scope to meet budget or timeline objectives while still retaining the useful set of functionality that makes up the minimally marketable feature.

    Prioritization scheme:
    - Must have
    - Should have
    - Could have
    - Would like to have

    ReplyDelete
  2. The first thing I want to say is, I like the info graphs you use. They make it easier to get a brief point across.

    Personally I feel that the planning poker part of the Agile method is not necessary. One of the big parts of Agile is communication. Everyone is on the same level and they communicate often because the sprints are somewhat short. Now planning poker is great if everyone works at different locations, but if everyone is in one location it seems sort of insane to make group decisions using a computer program when you can just do it in person. Things don't get done through phone, so why should it be any different for chat rooms. Maybe planning poker should also change their name.

    ReplyDelete
  3. The way that you explain agile development is really easy to understand. I actually didn't thought of it that way. After reading your article, I fully understand what Agile was really created for. However, for me Agile would only work if there were some kind of communication going on between the group members. If there is a communication shutdown between the members, I believe that Agile wouldn't help the process, but become a rather pointless activity. I just want to emphasize on the important point of Agile development. Info graphic that you have is also very informative. I like it a lot.

    ReplyDelete