Agile mindset


Published on

Practices of an Agile Developer based on the book "Practices of an Agile developer" by Venkat Subramaniam, Andy Hunt

Published in: Education, Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile mindset

  1. 1. AGILE MINDSET Presented by: Dhanuka Senaratne Date: 12/14/2011
  2. 2. CONTENTS Beginning Agility 2 Summary 4 Feeding Agility 3 3 “ Why” Agile 3 1
  3. 3. 1. “WHY” AGILE
  4. 4. IT’S AGILE… <ul><li>“ It’s like surfing…” </li></ul><ul><ul><li>The sea is unpredictable, Every wave is different, May be sharks in water </li></ul></ul><ul><ul><li>In software development </li></ul></ul><ul><ul><ul><li>Requirement and challenges that come up during the project </li></ul></ul></ul><ul><ul><ul><li>Never ceasing and ever changing </li></ul></ul></ul><ul><ul><ul><li>Project takes different shapes from domain, application etc. </li></ul></ul></ul><ul><ul><ul><li>Project depends on skills, training and competence of all developers of the team </li></ul></ul></ul><ul><ul><ul><li>Like a successful surfer successful developer is one with, </li></ul></ul></ul><ul><ul><ul><ul><li>Fitness (Technical) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Balance </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Agility – quickly adapt to the unfolding situation </li></ul></ul></ul></ul>
  5. 5. “ WHY” AGILE <ul><li>Spirit of Agility </li></ul><ul><ul><li>“ Agile Manifesto” </li></ul></ul><ul><ul><ul><li>In 2001, 17 persons got together in Snowbird, Utah </li></ul></ul></ul><ul><ul><ul><li>Was discussing why projects failing, replace heavy artifact driven processes with lightweight, results driven process </li></ul></ul></ul><ul><ul><ul><li>Software development is not a linear deterministic process </li></ul></ul></ul><ul><ul><ul><li>It’s never ceasing and ever changing </li></ul></ul></ul><ul><ul><ul><li>Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan </li></ul></ul></ul>
  6. 6. AGILE APPROACH <ul><ul><li>Responsive and collaborative people </li></ul></ul><ul><ul><li>Demonstrable, concrete goals (Software that works) </li></ul></ul><ul><ul><li>Everyone possesses a “Professional Attitude” </li></ul></ul><ul><ul><li>Team is live and energetic </li></ul></ul><ul><ul><li>Project is “Done” when users continue to use it </li></ul></ul><ul><ul><li>Development is continuous, feedback is continuous </li></ul></ul><ul><ul><li>Everything is agile – skills learning, requirements gathering, product deployment, user training </li></ul></ul>
  7. 7. AGAIN  “WHY” AGILE <ul><li>But WHY? </li></ul><ul><ul><li>Developing and maintaining software is such a complex activity </li></ul></ul><ul><ul><li>Anything substantive that you leave until later won’t happen, won’t happen well </li></ul></ul><ul><ul><ul><li>E.g. Code reviews, Deployment, testing </li></ul></ul></ul><ul><ul><ul><li>Fix it “NOW” or “NEVER” </li></ul></ul></ul><ul><ul><li>“ Only way to fight it effectively is to continually inject a little energy into the system” – Software Entropy </li></ul></ul>
  9. 9. IT’S IN YOUR HEAD <ul><li>It’s not alone, emotions, office politics, egos, memories etc. </li></ul><ul><li>Therefore its mixed together, things as attitude and mood can make a big difference </li></ul><ul><li>That’s why its important to pay attention to attitude yours and the teams </li></ul><ul><li>“ Professional attitude” </li></ul><ul><ul><li>Focuses on positive outcomes for the project and the team, on personal growth and on success </li></ul></ul><ul><li>Principles to adjust your attitude in “Agile way” </li></ul><ul><li>When you think as agile, everything will be agile </li></ul>
  10. 10. “ WORK FOR OUTCOME” <ul><li>“ The first and most important step in addressing a problem is to determine who caused it. Find that moron! Once you’ve established fault, then you can make sure the problem does not happen again, ever”” </li></ul>
  11. 11. “ WORK FOR OUTCOME” <ul><li>“ Blame does not fix bugs. Instead pointing fingers, point to possible solutions. It’s the positive outcome that counts” </li></ul>
  12. 12. WHAT IT FEELS <ul><li>It feels safe to admit that you don’t have an answer </li></ul><ul><li>A big mistake is an opportunity, not a witch hunt </li></ul><ul><li>Team works together, not blaming eachother </li></ul>
  13. 13. “ QUICK FIXES BECOME QUICKSAND ” <ul><li>“ You don’t really understand that piece of code, it seems to work OK as is. Oh, but it just needs one small tweak. Just add one to the result and it works. Go ahead and put that in, it’s probably fine”” </li></ul>
  14. 14. “ QUICK FIXES BECOME QUICKSAND” <ul><li>“ Do not fall for the quick hack. Invest the energy to keep code clean and out in the open” </li></ul>
  15. 15. WHAT IT FEELS <ul><li>It feels like code is well lit, there are no dark corners in the project </li></ul><ul><li>You may not know all bits and pieces. But you will have a good working knowledge. Know enough. </li></ul><ul><ul><li>If piece of code is hard to understand then it will be too hard for anyone else to maintain </li></ul></ul><ul><ul><li>Never kludge a fix without understanding, Fix the problem, not the symptom. </li></ul></ul><ul><li>No code area should be “Don’t touch, no one else knows that area” – “Keep out” signs. </li></ul>
  16. 16. “ DAMN THE TORPEDOES. GO AHEAD. ” <ul><li>“ When you discover a problem in someone else's code, just keep it to ”yourself. After all you would not want to hurt their feelings or cause trouble. And if that someone else happens to be your boss, be extra careful and just follow orders.” </li></ul>
  17. 17. “ DAMN THE TORPEDOES. GO AHEAD.” <ul><li>“ Do what’s right. Be honest, and have the courage to communicate the truth. It may be difficult at times, that’s why it takes courage.” </li></ul>
  18. 18. WHAT IT FEELS <ul><li>Courage does not feel very comfortable, but it’s the only way to remove the obstacles that will just grow worse over time, you will feel relief. </li></ul><ul><li>If you think the sky is falling and the rest of the team disagrees you, try changing the explanation, reasoning </li></ul><ul><li>“ He who chooses the beginning of a road, chooses the place it leads to” </li></ul>
  20. 20. IT’S YOURSELF… <ul><li>In this cooperate world only one who will look after your interest is – YOU. </li></ul><ul><li>It’s up to you to keep up with change. </li></ul><ul><li>“ One who adapt with the change will survive, not the strongest one” </li></ul>
  21. 21. “ KEEP UP WITH THE CHANGE” <ul><li>“ Technology changes so fast and its overwhelming. That’s just the nature of it. Stick to your old job with the language you know; you can’t possibly keep up” </li></ul>
  22. 22. “ KEEP UP WITH THE CHANGE” <ul><li>“ Keep up with the technology. You don’t have to become an expert at everything, but stay away of where industry is headed, and plan your career and projects accordingly.” </li></ul>
  23. 23. WHAT IT FEELS <ul><li>You feel aware of what’s going on, you know about technologies as they announce & adopted. You can switch technology if you want </li></ul><ul><li>Many new ideas never make full fledge, useful technologies. The same is true for large, popular, well funded endeavor. Gauge your effort. </li></ul><ul><li>You can’t be an expert of everything, don’t try it. Once you are expert in few areas, it’s easy to become an expert in a new area. </li></ul><ul><li>Understand why a new technology is necessary, what problem it tries to solve. Where can it be used. </li></ul>
  24. 24. “ KNOW WHEN TO UNLEARN” <ul><li>“ That’s the way you’ve always done it, and with good reasons. It usually works for you just fine. The ways you learned when you first started are clearly best ways. Not much has changed since then, really” </li></ul>
  25. 25. “ KNOW WHEN TO UNLEARN” <ul><li>“ Learn the new, unlearn the old. When learning a new technology, unlearn any old habits that might hold you back” </li></ul>
  26. 26. WHAT IT FEELS <ul><li>New technology might feel little scary, it feels challenging. Use your existing skills and habits as a base. </li></ul>
  27. 27. “ QUESTION UNTIL YOU UNDERSTAND” <ul><li>“ Accept the explanation you’ve been given. If you are told where the problem lies, that’s where you look,. Don’t waste your time chasing ghosts.” </li></ul>
  28. 28. “ QUESTION UNTIL YOU UNDERSTAND” <ul><li>“ WHY” is a great question </li></ul><ul><ul><li>Five progressive “WHY’s” (well directed) can understand the issue, identify the real matter </li></ul></ul><ul><ul><ul><li>“ Why oil spill on the floor…” </li></ul></ul></ul>
  29. 29. “ QUESTION UNTIL YOU UNDERSTAND” <ul><li>“ Keep asking “Why”. Do not just accept what you are told at face value. Keep questioning until you understand the root of the issue” </li></ul>
  30. 30. WHAT IT FEELS <ul><li>It feels like mining for precious jewels. You sift through unrelated material, deeper & deeper until you get shining gem. </li></ul><ul><li>Focus “Why” on relevant details. </li></ul><ul><ul><li>Vehicle starting problem, no point of asking about tires. </li></ul></ul><ul><li>When you ask why, you may be asked “Why do you ask” in return. Keep justification. </li></ul><ul><li>“ I don’t know” is a good starting point for more research, not the end of the line. </li></ul>
  31. 31. “ FEEL THE RHYTHM” <ul><li>“ We haven’t had a code review in a longtime, so we are going to review everything all this week. Also, it’s probably about time we made a release as well” </li></ul>
  32. 32. “ FEEL THE RHYTHM” <ul><li>“ tackle tasks before they bunch up. It’s easier to tackle common recurring tasks when maintaining steady, repeatable intervals between events.” </li></ul>
  33. 33. WHAT IT FEELS <ul><li>It feels consistent, steady rhythm. </li></ul><ul><ul><li>It’s easy to dance when you know when the next beat falls </li></ul></ul><ul><li>Plan on having all code checked in and tested by the end of the day, with no left overs. </li></ul><ul><li>No overtime work, don’t fall into that. </li></ul><ul><li>Fix team’s iteration length. Adjust accordingly. </li></ul><ul><li>Celebrate small goals </li></ul>
  34. 34. 4.SUMMARY <ul><li>It’s a team effort, teams tend to be small or broken up in to several small teams of 7-10. </li></ul><ul><li>Work closely with client and show them the latest version as early and as often as possible. </li></ul><ul><li>Get constant feedback from the code you are writing </li></ul><ul><li>Use build automation, always ready to release. </li></ul><ul><li>Refactor continuously </li></ul><ul><li>Work progresses in iterations, small blocks of time, where you identify set of features and implement them </li></ul><ul><li>Following these practices correctly will change your project outcome and overall experience. </li></ul>
  35. 35. Questions???
  36. 36. “ There is nothing permanent except change” Thank You !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.