Agile mindset

Download Agile mindset

Post on 13-Jul-2015




1 download

Embed Size (px)


<ul><li><p>AGILE MINDSETPresented by: Dhanuka SenaratneDate: 12/14/2011*</p></li><li><p>CONTENTS*</p></li><li><p>1. WHY AGILE*</p></li><li><p>ITS AGILEIts like surfingThe sea is unpredictable, Every wave is different, May be sharks in waterIn software development Requirement and challenges that come up during the project Never ceasing and ever changingProject takes different shapes from domain, application etc.Project depends on skills, training and competence of all developers of the teamLike a successful surfer successful developer is one with,Fitness (Technical)Balance Agility quickly adapt to the unfolding situation</p><p>*</p></li><li><p>WHY AGILESpirit of AgilityAgile Manifesto In 2001, 17 persons got together in Snowbird, UtahWas discussing why projects failing, replace heavy artifact driven processes with lightweight, results driven processSoftware development is not a linear deterministic processIts never ceasing and ever changingIndividuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan </p><p>*</p></li><li><p>AGILE APPROACHResponsive and collaborative peopleDemonstrable, concrete goals (Software that works)Everyone possesses a Professional AttitudeTeam is live and energeticProject is Done when users continue to use itDevelopment is continuous, feedback is continuousEverything is agile skills learning, requirements gathering, product deployment, user training</p><p>*</p></li><li><p>AGAIN WHY AGILEBut WHY?Developing and maintaining software is such a complex activityAnything substantive that you leave until later wont happen, wont happen wellE.g. Code reviews, Deployment, testingFix it NOW or NEVEROnly way to fight it effectively is to continually inject a little energy into the system Software Entropy</p><p>*</p></li><li><p>2. BEGINNING AGILITY*</p></li><li><p>ITS IN YOUR HEADIts not alone, emotions, office politics, egos, memories etc.Therefore its mixed together, things as attitude and mood can make a big differenceThats why its important to pay attention to attitude yours and the teamsProfessional attitudeFocuses on positive outcomes for the project and the team, on personal growth and on successPrinciples to adjust your attitude in Agile wayWhen you think as agile, everything will be agile</p><p>*</p></li><li><p>WORK FOR OUTCOMEThe first and most important step in addressing a problem is to determine who caused it. Find that moron! Once youve established fault, then you can make sure the problem does not happen again, ever</p><p>*</p></li><li><p>WORK FOR OUTCOMEBlame does not fix bugs. Instead pointing fingers, point to possible solutions. Its the positive outcome that counts</p><p>*</p></li><li><p>WHAT IT FEELSIt feels safe to admit that you dont have an answerA big mistake is an opportunity, not a witch huntTeam works together, not blaming eachother*</p></li><li><p>QUICK FIXES BECOME QUICKSANDYou dont 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, its probably fine</p><p>*</p></li><li><p>QUICK FIXES BECOME QUICKSANDDo not fall for the quick hack. Invest the energy to keep code clean and out in the open</p><p>*</p></li><li><p>WHAT IT FEELSIt feels like code is well lit, there are no dark corners in the projectYou may not know all bits and pieces. But you will have a good working knowledge. Know enough.If piece of code is hard to understand then it will be too hard for anyone else to maintainNever kludge a fix without understanding, Fix the problem, not the symptom.No code area should be Dont touch, no one else knows that area Keep out signs.*</p></li><li><p>DAMN THE TORPEDOES. GO AHEAD.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.</p><p>*</p></li><li><p>DAMN THE TORPEDOES. GO AHEAD.Do whats right. Be honest, and have the courage to communicate the truth. It may be difficult at times, thats why it takes courage.</p><p>*</p></li><li><p>WHAT IT FEELSCourage does not feel very comfortable, but its the only way to remove the obstacles that will just grow worse over time, you will feel relief.If you think the sky is falling and the rest of the team disagrees you, try changing the explanation, reasoningHe who chooses the beginning of a road, chooses the place it leads to*</p></li><li><p>3.FEEDING AGILITY*</p></li><li><p>ITS YOURSELFIn this cooperate world only one who will look after your interest is YOU.Its up to you to keep up with change.One who adapt with the change will survive, not the strongest one*</p></li><li><p>KEEP UP WITH THE CHANGETechnology changes so fast and its overwhelming. Thats just the nature of it. Stick to your old job with the language you know; you cant possibly keep up</p><p>*</p></li><li><p>KEEP UP WITH THE CHANGEKeep up with the technology. You dont have to become an expert at everything, but stay away of where industry is headed, and plan your career and projects accordingly.</p><p>*</p></li><li><p>WHAT IT FEELSYou feel aware of whats going on, you know about technologies as they announce &amp; adopted. You can switch technology if you wantMany new ideas never make full fledge, useful technologies. The same is true for large, popular, well funded endeavor. Gauge your effort.You cant be an expert of everything, dont try it. Once you are expert in few areas, its easy to become an expert in a new area.Understand why a new technology is necessary, what problem it tries to solve. Where can it be used.*</p></li><li><p>KNOW WHEN TO UNLEARNThats the way youve 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</p><p>*</p></li><li><p>KNOW WHEN TO UNLEARNLearn the new, unlearn the old. When learning a new technology, unlearn any old habits that might hold you back</p><p>*</p></li><li><p>WHAT IT FEELSNew technology might feel little scary, it feels challenging. Use your existing skills and habits as a base.*</p></li><li><p>QUESTION UNTIL YOU UNDERSTANDAccept the explanation youve been given. If you are told where the problem lies, thats where you look,. Dont waste your time chasing ghosts.</p><p>*</p></li><li><p>QUESTION UNTIL YOU UNDERSTANDWHY is a great questionFive progressive WHYs (well directed) can understand the issue, identify the real matterWhy oil spill on the floor</p><p>*</p></li><li><p>QUESTION UNTIL YOU UNDERSTANDKeep asking Why. Do not just accept what you are told at face value. Keep questioning until you understand the root of the issue</p><p>*</p></li><li><p>WHAT IT FEELSIt feels like mining for precious jewels. You sift through unrelated material, deeper &amp; deeper until you get shining gem. Focus Why on relevant details. Vehicle starting problem, no point of asking about tires.When you ask why, you may be asked Why do you ask in return. Keep justification.I dont know is a good starting point for more research, not the end of the line. *</p></li><li><p>FEEL THE RHYTHMWe havent had a code review in a longtime, so we are going to review everything all this week. Also, its probably about time we made a release as well</p><p>*</p></li><li><p>FEEL THE RHYTHMtackle tasks before they bunch up. Its easier to tackle common recurring tasks when maintaining steady, repeatable intervals between events.</p><p>*</p></li><li><p>WHAT IT FEELSIt feels consistent, steady rhythm. Its easy to dance when you know when the next beat fallsPlan on having all code checked in and tested by the end of the day, with no left overs.No overtime work, dont fall into that.Fix teams iteration length. Adjust accordingly.Celebrate small goals </p><p>*</p></li><li><p>4.SUMMARYIts a team effort, teams tend to be small or broken up in to several small teams of 7-10.Work closely with client and show them the latest version as early and as often as possible.Get constant feedback from the code you are writingUse build automation, always ready to release.Refactor continuously Work progresses in iterations, small blocks of time, where you identify set of features and implement themFollowing these practices correctly will change your project outcome and overall experience.*</p></li><li><p>*</p></li><li><p>There is nothing permanent except change*</p></li></ul>