• Share
  • Email
  • Embed
  • Like
  • Private Content
Agile in the Workplace
 

Agile in the Workplace

on

  • 2,317 views

Agile in the Workplace is a brief overview of Agile Methodology in software development as well as some of the pros and cons of agile development and transitioning from waterfall development.

Agile in the Workplace is a brief overview of Agile Methodology in software development as well as some of the pros and cons of agile development and transitioning from waterfall development.

Statistics

Views

Total Views
2,317
Views on SlideShare
2,269
Embed Views
48

Actions

Likes
0
Downloads
56
Comments
0

5 Embeds 48

http://www.mikestowe.com 18
http://librosweb.es 17
https://twitter.com 8
http://bitswapping.com 4
https://www.google.com.pe 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Agile in the Workplace Agile in the Workplace Presentation Transcript

    • AGILE michael stowe in the workplace September 17, 2013
    • MIKESTOWE •  Open Source Contributor •  Author, Speaker, and Consultant •  10+ years experience hacking PHP •  Zend Certified PHP 5.3 Software Engineer •  Developer Advocate with Constant Contact .com @mikegstowe
    • IN THE BEGINNING Imagine going to the store and buying a canoe, a compass, a map, and a pack for food and water. You trek out to the river and jump in, ready to begin your journey. The only catch is once you start there’s no where to stop… so I hope you bought the right map, or that your compass works. And you better have enough food and water… oh yeah, and experience for the waterfall ahead!
    • IN THE BEGINNING This is pretty much how products were being developed. People would get together and put together requirements and then base all of their decisions off of the requirements. The project then moved forward one branch at a time. And like a waterfall, once you got so far into the project, it’s a little late to turn around and go back.
    • TYPICAL WATERFALL Image courtesy of http://www.varsys.com/knowledgecenter_WaterfallDownfall.html
    • No plan survives contact with the enemy… Helmuth von Moltke
    • To improve is to change; to be perfect is to change often. Winston Churchill
    • Want to be a web developer? Easy! First, imagine you’re a carpenter. Second, imagine that the house you’re building is made of live monkeys. David Lee, @tangentialism
    • WHAT IS AGILE Agile simply means flexible. Rather than being strict and unmovable in our processes like the Waterfall Method, Agile encourages a “take it as it comes” approach. Agile encourages the use of people over process, working software over comprehensive documentation, customer/ business collaboration over contract negotiation, and responding to change instead of following a set plan.
    • AGILE MANIFESTO We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and Interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
    • From Wikipedia, the free encyclopedia
    • AGILE PROCESS Agile does this by first outlining the vision or general requirements of the project. This vision is then divided into smaller chunks known as “stories.” Think of the vision as a deck of cards, and each story being a card in that deck. Instead of focusing on the whole deck, we can now prioritize which cards are the most important, and start tackling them piece by piece.
    • AGILE PROCESS We prioritize our cards by putting them in iterations, or short 2-4 week development cycles. For example, we may decide that the Joker, the King, and the Queen are the most important cards, so we want them in the first iteration. We can then put other cards in future iterations, but we will focus on these three cards first, and get them ready to go before moving on (unless priorities change).
    • ITERATION AND BACKLOG Image courtesy of http://www.executivebrief.com/agile/how-to-scrum/ Joker, King, and Queen Cards All Other Cards, on the backlog for future iterations Tasks to create these three cards
    • TASK BOARD With Agile, one of the easiest ways to manage tasks is by using a task board… or in this case, a piece of paper with Post-it® notes of different colors signifying different types of tasks. The key components include Stories, To Do, In Progress, Testing, and Accepted From Wikipedia, the free encyclopedia Kanban Board
    • AGILE PROCESS Once we develop these cards, we can test them, have them reviewed by the customer or business team, and make sure that everything looks good before moving on. The following figures are good examples of how Agile Methodology works:
    • AGILE METHODOLOGY Image courtesy of http://www.mountaingoatsoftware.com/scrum/overview simplified
    • AGILE METHODOLOGY Image courtesy of http://www.varsys.com/knowledgecenter_WaterfallDownfall.html
    • THE ADVANTAGE With the Waterfall Method we would have designed the entire deck and sent it off for printing. But it turns out we can’t do rounded corners on our cards, or the colors don’t look right, or for whatever the reason the cards just don’t work. With Waterfall we just wasted work on 52 cards, where- as with Agile we would have caught this issue and been able to fix it after only working on 3 cards!
    • THE DISADVANTAGE Agile requires team members to work closely together and requires the team to innovate and problem solve. It provides greater flexibility allowing the project and requirements to evolve. It places more value on the software than it does documentation, and is driven by the customer or business unit and their satisfaction.
    • THE ADVANTAGE Agile requires team members to work closely together and requires the team to innovate and problem solve. It provides greater flexibility allowing the project and requirements to evolve. It places more value on the software than it does documentation, and is driven by the customer or business unit and their satisfaction.
    • RISK MANAGEMENT To help make Agile successful in the business it is recommended to have small, dedicated teams that can work together. The general rule is to build a team with the Product Owner, a Scrum Master, and 5-9 (or 7 +/- 2) team members. This allows the team to collaborate quickly without becoming siloed - a major risk with larger teams.
    • Image courtesy of http://www.executivebrief.com/agile/how-to-scrum/
    • RISK MANAGEMENT Because Agile requires the development team to work closely together, and with different personalities, it is recommended to have an outside “Agile Coach” who is not directly part of the team but is available to serve as a mentor. This allows the mentor to help resolve issues without members feeling that the Product Owner or Scrum Master is taking sides and/ or playing favorites.
    • RISK MANAGEMENT It is vital for your development team to grow together and work as a team in order to overcome any issues that may arise within the development cycles/ iterations. Early on one of the biggest challenges is a lack of communication or understanding of Agile, and power struggles between users. However, once the team learns to work together, they will be able to utilize all of their strengths to build an even better product.
    • AN AGILE ENVIRONMENT Unlike Waterfall Methodology which is driven by meeting after meeting, Agile relies on team members working together as needed. Because of this, it is important to provide an environment that allows team members to collaborate, such as providing team members with laptops instead of desktop computers for mobility and having a dedicated space and time for the team to work.
    • STOP WASTING TIME By providing the team with the time and resources necessary to collaborate, you can avoid lengthy meetings. In general, the team usually gets together for a quick “stand up” meeting that should last no more than 15-30 minutes in which team members discuss their progress, challenges, and goals for the day.
    • THE DAILY STANDUP - What did I accomplish yesterday? - Team members are quickly briefed on the progress being made on the project. - What will I do today? - Team members are briefed on what the development goals for the day - What obstacles/ challenges are holding me up? - Team members are alerted early on to potential issues and appropriate resources can be utilized.
    • STOP WASTING TIME By knowing the needs and goals of each of their teammates, agile team members are able to help out and assist as needed, again pulling together to use their strengths. Part of the challenge of a manager is to “let them go at it” and take charge. Because Agile is intended to be flexible, tasks can be dealt with as they come, and you can avoid scheduling long and lengthy planning meetings.
    • DO MORE PLANNING One misconception with Agile is that you do not have to do any planning… in fact it is just the opposite. Agile requires a general vision which is broken into stories. Basic requirements are then given to stories, and they are put into iterations for development. But the planning doesn’t stop there, once we get to the iteration the stories are more carefully reviewed and requirements are again discussed.
    • DO MORE PLANNING And as stories are developed, new challenges may be discovered, which may require more collaboration and planning among the team members in order to find a solution or adjusting requirements. Certain tasks may even be moved into future iterations, allowing continuous development that will have improved functionality in the future.
    • POWER TO THE PEOPLE This is one of the most powerful aspects of Agile, the emphasis of the team over processes, and working software over extensive documentation. After all, what good do processes do you if they don’t help solve the problems you are trying to address? And what good is telling people what the software will do, if the software is stagnant with problems because the requirements were so rigid?
    • POWER TO THE DEVELOPERS Because Agile reduces wasteful meetings, increases collaboration among team members, reduces documentation, and allows for immediate testing and feedback- it allows software engineers to do what they do best, Code. In fact, it let’s your entire team do what they do best… their job.
    • POWER TO THE DEVELOPERS However, it is important to make sure that your team members are being left alone and not harassed by business owners or stake holders. Remember the scrum team, the Product Owner and Scrum Master are responsible for running interference to make sure work is not being added directly to the development teams plate, and that there are no outside distractions that impede their work.
    • SCOPE CREEP One of the most dangerous forms of distractions from the task at hand is Scope Creep, or work that “creeps” it’s way into the scope of the project. All bugs, tickets, features should be assessed by the Product Owner and assigned to the proper iteration or cycle. Developers like-wise need to be careful not to start injecting new tasks or features into their work that are not directly related to the current iteration.
    • TAKE TIME TO REVIEW After each iteration it’s a good idea to take time to review what went well, and what didn’t in that iteration. This allows the team to identify how their strengths came together, and focus on how to overcome the challenges this iteration presented in future iterations. This meeting doesn’t have to be super long. A general rule is no more than 45 minutes for every week the iteration lasted (so 2 weeks = 1.5 hour meeting)
    • TAKE TIME TO REVIEW Questions to ask during the Retrospective meeting include: -  What went well during the iteration? -  What would we like to change? -  How can we implement that change? You can also discuss the results, people involved (resources), relationships, processes, tools, and overall productivity.
    • TAKE TIME TO REVIEW The Retrospective meeting is not intended to be a blame session, but rather a chance for the team to come together and problem solve as a unit. Avoid letting the meeting become personal or directed at one person. Likewise, watch out for excuse statements such as “Because…” or “Nothing we could do…” as it signifies a move from problem solving to rationalizing why things didn’t go according to plan.
    • REAL WORLD AGILE
    • LET’S MAKE A SEARCH ENGINE Your company has come up with a great idea for a search engine! So the Product Owner meets with the Stake Holders and Business Owners and comes up with a vision for your search engine. Together they decide the search engine should be able to: spider sites, store data to a NoSQL database, work with a third party API, allow members to bookmark favorites and/or purchase PPC advertising.
    • LET’S MAKE A SEARCH ENGINE Based on this broad requirements, stories are created for each of the tasks: -  Spidering Sites -  Store to Database -  Third Party API Integration -  Member System with Login -  Favorite Bookmarking -  PPC System – Manage Ads -  Show PPC Ads in Results
    • LET’S MAKE A SEARCH ENGINE For the first iteration, which will be 2 weeks, the team decides on doing the Spidering Sites and Store to Database stories. The team then starts planning the requirements for these features, and decides upon using MSSQL to save the data. Your developers start getting to work…
    • LET’S MAKE A SEARCH ENGINE But unfortunately your LAMP stack doesn’t support MSSQL. Your developers quickly alert the team that this requirement will not work. The team gets back together and agrees to change the requirement to be MySQL. BLAM! Problem averted.
    • LET’S MAKE A SEARCH ENGINE One week into the project your developers realize that two weeks may have been a really generous estimate, and that it is probably going to take longer. Once again the team takes a look at the iteration and requirements, and decides either to move some requirements into a future iteration as followers, or to simply push the entire “release” to the next iteration.
    • LET’S MAKE A SEARCH ENGINE However, because of your daily “stand-ups,” both the Scrum Master and Product Owner were made aware of this, and were able to relay it to the Business Owners and Stake Holders, preventing a reign of fire from coming down on the entire team. BLAM! Unhappy people… Averted.
    • LET’S MAKE A SEARCH ENGINE Great news, we just finished the first iteration. Bad news is that the Business Owners decided they want the PPC to be the next most important thing, and they have some new requirements for it. Thankfully, being agile we can simply move things around, put PPC into the next iteration, and oh yeah, we haven’t started evaluating the unique requirements for this system. BLAM! Problem averted.
    • LET’S MAKE A SEARCH ENGINE However, the Business Owners really don’t like the interface of the PPC system. So, you create new stories to make the UI look awesome and put them in the next iteration. BLAM! Yeah, you get the idea…
    • LET’S MAKE A SEARCH ENGINE Oh man! QA found a bug in the code… and it’s a doozy! Anything that depends on this code would be totally doomed to fail… But because we tested the iteration right after development, nothing is dependent on it yet. We haven’t coded all the other stuff yet, so there’s no lost work!!! BLAM! Oh yeah…
    • LET’S MAKE A WEB APP Ok, so that may seem a little too convenient. But that’s a fake scenario based on a real life one. Working with Agile saved our team HOURS and the business $$$. We were able to problem solve as we went, be flexible with requirements, and in the end turn out a product that completely blew away customer expectations. Needless to say, they were like… “Oh yeah…”
    • THERE’S A LOT MORE However, I hope you now have a basic understanding of what Agile is, and how it benefits EVERYONE from the customer to the business owner(s). Remember the key principles of Agile: Individuals and Interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
    • THANK YOU. @mikegstowe visit mikestowe.com/slides for more on PHP and Web Development @ctct_api A big thank you to Constant Contact for making this presentation possible