The Bootstrap and Split Personality AntiPractices experiencesteachingextremeprogramming
|
|
|
- Margery Nicholson
- 10 years ago
- Views:
Transcription
1 The Bootstrap and Split Personality AntiPractices experiencesteachingextremeprogramming AlexandreFreire 1,FabioKon 1,AlfredoGoldman 1 1 DepartamentodeCiênciadaComputação(IME-USP) [email protected], [email protected], [email protected] Abstract. This article provides insight into two simple and common problems when teaching XP: the Bootstrap and Split Personality antipractices. Bootstrap describes how teams have difficulties starting a project with little or no code base. Split Personality describes difficulties experienced when one assumes both the Coach and Customer roles. We present these organizational antipatterns as antipractices we have identified while teaching XP in different contexts. We discuss simple solutions to the antipatterns based on reflections from these experiences and describe concrete situations where they were effective. Resumo. Este artigo apresenta reflexões sobre dois problemas simples e comuns no ensino de XP: as anti-práticas Bootstrap e Split Personality. Bootstrap descreve dificuldades de equipes que começam um projeto com uma base de código pequena ou inexistente. Split Personality descreve dificuldades que uma pessoa enfrenta ao assumir ambos os papéis de Treinador e Cliente em um projeto. Apresentaremos estes anti-padrões organizacionais como antipráticas que identificamos ensinando XP em diferentes contextos. Iremos discutir soluções simples para estes anti-padrões baseadas em reflexões sobre nossa experiência e descrever situações concretas onde as soluções foram efetivas. 1. Introduction WhileteachingXPmanyproblemsarisethathavetobedealtwith,mostlyduetodifferent contexts and heterogeneous teams that have to learn practices and adapt them to their reality. We have had extensive teaching experience in academic and business contexts, trying different solutions to common problems by adapting practices and refactoring XP rules to fit local realities. From these experiences, we identified two very common, simple and recurrent antipatterns. One deals with the time a team takes to start being productive and picking upprojectvelocityusingallofxp spractices.weshowthathavinglittleornocodebase tobuilduponcanbethesourceofdifficultiesandproposeconcretesolutionssoateam canstarttoworkinparallelassoonaspossible.theotherconcernsthedifficultiessome teamshavetodealwithwhenthesamepersonplaysthecoachandcustomerrolesinan XP project. Just as many agile practices(e.g., Stand Up Meetings or Developing In Pairs ) have been cataloged as organizational patterns by [CoplienandHarrison2004], UmaversãomaisdetalhadadesteartigopodeserencontradanoRelatórioTécnicoRT-MAC do IME/USP 1
2 many organizational and process antipatterns have been observed as well [BrownandThomas2000]. Antipatterns are apparent solutions commonly applied to solving a problem, but that in fact create a bigger problem. Antipatterns propose a refactored solution to the problem. Having observed these apparent solutions in our projects and in other research papers relating experiences teaching XP [Mugridge et al. 2003, Jackson 2004, Tomek 2002], we will define them as antipatterns andpresentrefactoredsolutionsthatmightbeofusetotheagilecommunity.wewilluse AntiPractices as a metaphor to present these organizational antipatterns, as proposed by[kuranuki and Hiranabe 2004], having slightly refactored the pattern template used there, to allow a simple and quick exposition of this pattern language. In the next section we will describe the context of projects where we tried different approaches to solve each antipractice. We will then introduce the antipractices, presenting different contexts and countermeasures in a narrative story format, and later generalizing them in a pattern-like format, proposing solutions. Finally we will conclude recommendingtheuseofsomeoftheproposedsolutionsinspecificcontextswheretheyhavebeen proven useful. 2. Projectsandcontexts-TheXPLabandPaggo The XP laboratory course at IME/USP has had success teaching Computer Science students how to extreme Program while developing real world projects [Goldmanetal.2004,Freireetal.2004]. Wewilllookintooneprojectrealizedduring the4theditionofthelab. The project, Cigarra [Freire et al. 2005a], was built in a partnership with the Ministry of Culture in Brazil, the requested system solves the need of Cultural Hotspots to distribute multimedia artifacts. The team was composed of twelve members: eleven studentsandateachingassistantforthecourse,whoalsoworkedasaministryofculture consultant; thus,heplayedboththecoachandcustomerrolesintheteam. Sincewe hadnocodetostartwith,wechosetouseafewexistingfreeandopensourcetoolsand frameworks to develop the system. Having acted as industry consultants as well, we experimented implementing XP atpaggo,astartupventureinthecreditcardbusinessinbrazil[freireetal.2005b].the firstauthorworkedthereasaconsultantcoachinga6personteaminxppractices,frameworks,andooconcepts.themainobjectivewastohaveanxpproficientteamreadyto be independent from the coach within 6 months. One of the company s founders played an in-house customer and was present daily. 3. Bootstrap- WewanttodoXP,butcan tgetallpracticesgoing,weare waiting for code that doesn t exist yet The Bootstrap antipractice describes how teams learning XP have difficulties when startinganxpprojectwithlittleornocodebase,whichiscommonwhenteachingxp.inour experience,developersinlargexpteamstendtohaveahardtimetostartintegratinga systemoreventest-firstwhenthereisnocodetobuildupon.itishardforpairstomove people around because the pair that started coding a component is reluctant to let other pairsworkonit,fearingwhatanewpersonmightthinkoftheirtestsortheirwork,or evenbecausetheywanttobetheonestocontinuedevelopinguponthecodetheystarted 2
3 to build. Task coordination is complicated, specially for the bootstrap story(the first story a team implements)[andrea 2001], getting the team to work in parallel is complicated since many stories depend on other stories that are not yet developed or completed. Techniques have been proposed to help scale the bootstrap and other stories. However,wefoundthatwhenaprojectbegins,andlittleornocodeexists,programmersthat have no experience with XP have many difficulties to start being productive, and the team takes a while to establish a good project velocity and adopt all practices fully. Wenotethatthisproblemissimpletosolveinsomecases, specificallyifthe team is mature and has had previous experience with agile methods. Among the possible solutionsonecanfind,(1)breakingupthebootstrapstoriesusingstoryotypes 1,(apattern language that defines different types of stories, some which are easier to bootstrap [Meszaros 2004]) or by creating specific tasks to focus on setting up development infrastructure or researching new technologies, (2) building upon an existing free and open source code base,(3) developing bootstrap code with a pair or smaller team using TDD. WhentheteamislearningXP,andspeciallyiftheyarealsolearninghowtotestandrefactor,weproposethatsomeoftherulesofXPberelaxed,suchasallowingintegrationof untestedcodeforashortperiodoftime,justtobootstrapthecodebase,sothateveryone canthenworkinparallel.weknowthisgoesagainstxpvalues,butinexceptionalcases, like the ones we ll observe, we think that this relaxation can be beneficial Cigarra The Coach was having trouble with the team developing Cigarra, he was under pressure fromhisteamandthecourseprofessor:theyweretheonlyteaminthexplabthathadto push back the deadline for their first release. The coach observed that two developers waited around for others to work so that they hadsomethingtodo. Thestorytheyhadacceptedduringtheplanninggamewas dependent on another pair finishing a story before they could proceed. Two other developers were reluctant to integrate their code; they had finished their story, but were not convinced they had enough tests. As they had little testing experience they were afraid of committingtheircodeuntiltheyweresuretheyhadgoodtestsandallofthempassed Action Thecoachsawthatactionhadtobetakensotheteamwouldremainmotivated; they had to deliver their first release soon. Talking with the developers, he decided to split stories into development and testing tasks, and to refactor the bootstrap story written by consultants for the Ministry into smaller stories using storyotypes. We found that many stories, of the variation or new business rule storyotypes, depended on other stories, of the new functionality or infrastructure storyotypes, being completed, we prioritized the secondset,sothatcodewouldexisttobeworkedon. The coach also created research tasks related to free and open source software andframeworksthatweregoingtobeusedintheproject. Thesetaskswereaimedat 1 Storyotypesdefinefourdifferenttypesofconcretestories,which(1)helpsetuptheinfrastructure,(2) create new functionality in the system,(3) alter existing functionality, and(4) create new business rules. 3
4 testing functionality we planned on using, or even code we wanted to refactor into our application. Some of the developers mention that they did not see the point in writing testsfor3rdpartycode,butaftersomenegotiationagreedthatitwasbettertodothatthan justwaitingaroundfordependenciestoclearupwithnoworktodo. Atemporaryrule was agreed upon, that after each lecture period, everyone would commit their code, even itwasnotfullytested.wemadeitclearthatthiswasanexceptionalagreement,validfor justenoughtimetogetacodebasewithwhicheveryonecouldworkinparallel. After that, continuous integration would depend on passing tests After effect Thedecisionsseemedtowork.Noonewouldjustwaitforotherstofinishstoriestowork on dependencies. The team was glad that new test tasks where created. The developers that were afraid of committing their code with few tests, now felt comfortable with that, and finally integrated their code into the repository, allowing other developers to start working. They also had an opportunity to try test-first programming, committing their testsbeforeanycodewascreated.ithelpedtohavethecoachreviewthecodeandreassure thattheirtestsweregood,andtohavetherestoftheteamtohelpdevelopthecodetopass tests, not necessarily working with the same pairs that created the tests. They were proud to learn how to test effectively. Confidence on code quality rose and the team managed to deliver their first release. As a side-effect from testing the free and open source frameworks and software, the team was confident on the choices and grew knowledgeable on their use. Team members also saw a great opportunity to give back to the open source community, submitting patches to projects with the test-suites we created Paggo AtPaggo,thecustomerhadasmallprojecthewouldliketouseasatestforintroducing XP.Oneofthedevelopersdidnotwanttopairprogram,andwantedtocodeallhisstories, only integrating the code when he finished everything. Two other team members had never written tests and delayed committing their stories, holding back others. The coach was also worried about the quality of the code being produced and resistance from some teammemberstoembracechange. Again,wesawthatsometeammembersweretoo comfortableinthepositionofwaitingforotherstofinishtheirworksotheycouldstart working. Developers were frustrated that progress was slow and were conscious that not all practiceswerebeingfollowedthroughly; wewanttodofullxp,butweareslowbecause wedon thaveenoughcode,wehavetowaitforotherstofinishtheirstoriessothatwe canproceed;becausewearenewtoxp,somearereluctanttointegratetheircode,andwe can t start working in parallel Action The coach reached an agreement with the customer: they decided that the first application wouldbetreatedasaprototype,itsmainobjectivewouldbetoteachxppracticesand 4
5 wouldprobablybediscardedafteritwasfinished. Weexplainedthistotheteamand gotthemtofocusonimprovingtheirpractices.wewrotemanytestsandteammembers weregladtohaveachancetoexplorepossibilities.theyknewthateventoughsometests didnotseemgoodenough,thiswouldnotbeaproblembecausetheapplicationwasnot critical. The programmer that did not want to do pair programming was convinced to try itasanexperiment,andacommitrulewascreated. Allcodewouldbecommittedtwice aday,oncebeforelunchandoncebeforeleavingtheoffice,evenifeverythingwasnot tested; again, this rule had an expiration date, after which code could only be integrated if all tests passed After effect Developers managed to incorporate all XP practices after the first prototype project. They evolved their testing and continuous integration skills. Some were conscious that many tests written during the prototype project were not necessary and code quality was not very high, but the customer was comfortable with this. When the project was completed, wefoundthatitwasgoodenoughtopassthecustomer sacceptancetests,anditwaseven put into production Crystalize We named this AntiPractice Bootstrap and have suggestions for avoiding trouble in the future. Causes for the problem are directly related to the size of the team, available code baseuponstartingtheprojectanddeveloperslackoffluencyinxp.whenstartinganew projectwenowtrythesealternativeapproaches:(1)allowingapairorasmallsubsetof the team to write the base business model classes overnight with TDD, so that everyone can start working in parallel in new business rule or variation storyotypes,(2) building uponanexistingfreeandopensourcecodebasetoallowtheteamtostrengthenother techniques,suchastesting,and(3)allowingashortperiodoftime,wheretheteamcan integratecodethatisnotcompletelytested.thethirdoptionisasolutiontopickupspeed bootstrappingtheprojectcodebase,wefeelthatthisnolongerbreaksxprules,aslong as testing is done early enough. Using storyotypes to split large stories in the first iteration, creating tasks for setting up continuous integration, development environments, writing build scripts, and researching technologies(specially if looking for free and open source projects to build upon)soastooccupyalloftheteamevenifitisnotyetpossibleforeveryonetowrite code, are good countermeasures for this antipractice of starting XP learning projects with no code base. 4. SplitPersonality- WhoamI?CoachorCustomer? Studies point out that one of the challenges of teaching XP is practicing on-site customer correctly[mugridge et al. 2003, Tomek 2002]. The Split Personality antipractice describesthedifficulttaskonehastoendurewhenassumingboththecoachandcustomerrolesinanxpproject,thisantipracticeshouldnotbeobservedinvanillaxpenvironments, however it is very common solution applied in academic contexts. Having the same person act as Customer and Coach may lead to schizophrenic results, it confuses 5
6 the team and makes it hard to distinguish business and development forces in day-to-day activities and specially in the planning game. Itishardfordeveloperstoestablishwhenoneisguidingtheteam,andmaking sureeveryonefollowstherulesofthegame,asacoach;orwhenhe/sheistryingtorequest stories, validate them, or give clear feedback about the requirements, acting as a Customer. It is also difficult for this person to avoid introducing a Customer s concerns into his coaching duties, and vice versa. It has been reported that both the Customer role[martinandnoble2004]andthecoachrole[hedinetal.2003]arecomplex,challenging, and time consuming, they should not overload a single person. When trying to address this issue we will discuss different solutions such as using someone from the teamasacustomerproxy 2,or,whenit snotpossibletogetanotherperson,somethingas simpleasclearlydistinguishingwhenoneisactingascoachorcustomerbyusingahat. Straight forward solutions are proposed for controlled contexts. In the XP lab, the ideal practice is to simply have coaches for the whole period, using graduate students or senior students and a real Customer that can at least participate in weekly meetings Story The coach for the Cigarra project, was having trouble addressing the Customer role withouttakingintoaccounthiscoachingdesires. Itwasnotcleartodeveloperswhenhe expressed Customer s concerns, or when he was giving advice as a Coach. Even for himselfitwasnotclearwhenhedecidedsomethingbecauseheknewthecustomerwantedit, orbecausehesawthatitwouldbebesttocoachtheteam.difficultieswereaugmentedby thefactthattheteamwaslarge(twelvepeople),andthatitwasdifficulttocommunicate clearly to everyone what the Customer intended and what the Coach wanted. During the planning game of the exploratory phase, the team tried to convince the Coach that it was best to code spikes to try out different peer-to-peer technologies suchasbittorrent,jxta,orcorba.theteamwantedtotestalloftheseinteresting technologiesandthecoachthoughtitmightbeagoodopportunitytoallowtheteam to explore possibilities. However, he was confused: was he representing his customer orgivingacoach sadvice? Couldhedobothatthesametime? Inretrospective,this choice wasted precious time, added difficulty to bootstrap the project, and made the team changethedatefortheirfirstrelease. Henowbelievesthathe,asaCoach,shouldhave backedhimselfasacustomer(knowingthatbittorrentwasbyfarthebestchoiceand not wanting to waste precious time with an exploration that would lead to a foreseeable result) instead of going along with the team Action The Coach decided to try different approaches with his team. He invited other Ministry consultants to come act as proxy customers during Planing Games and to run acceptance testswhenareleasewasdelivered.healsostartedbringingahatandsomegadgetstothe lab.hewouldputonthehatwhenhewantedtoactasacustomer,makingitcleartothe team when he was addressing business rules from the client s perspective, or what part he was playing during a Planing Game. He even managed to stage conversations between team. 2 Apersonresponsibleforinteractingwiththecustomerregularlyandrepresentinghisneedsforthe 6
7 the Coach and the Customer, addressing his multiple personalities with gadgets, to both organize things in his mind and communicate more clearly with the team After effect Usingproxycustomersotherthanhimselfandahatwhenhehadnootherchoice,really made the difference for the Coach. He found that at important moments, such as acceptancetestingofarelease,itwasveryvaluabletohaveaproxycustomer,sothathecould be completely concentrated on his coaching activities and the team would feel that they were facing someone that would really benefit from the system they were developing. Whenaproxycouldnotbepresent,hefounditreallyusefultouseahatandother gadgetsactingbothascoachandcustomer.hecouldunderstandwhathehadtodobetter, anditwaseasiertokeepthecoachlockedawayinhismindwhenhehadthecustomerhat on. Itwasalsofunfortheteam,andaddedahealthyschizophrenicdynamictoplaning games and stand up meetings Crystalize We called this antipractice Split Personality. Having to act both as Customer and Coach is stressful and can be quite confusing to developers and the person in question. This problemisnotthathardtosolveifonehascourageanddiscipline,oriftheteamissmall. When possible, using proxy, or real customers, can be of great help and alleviates load. WhenallelsefailsandthepersoncoachinghastoactasCustomer,usingahat andgadgetstoclearlydistinguishthecoachfromthecustomercanbeagoodhumored waytocarrythisburden,anditwasveryusefulforus,helpingthepersonclearhismind into acting the appropriate way. These are proven solutions to the common antipractice ofhavingthesamepersonactascoachandcustomer. 5. Summary and Conclusions We have identified two organizational antipatterns that are common and recurrent both in industrial and academic environments based on our experiences in these contexts. We have presented Bootstrap, Split Personality in the form of a small antipattern language and discussed different solutions to these antipatterns based upon reflections from our experience. BootstrapaddressestheissueofateamthatstartstolearnXPinaprojectwith littleornocodebase.theteamisnewtoxpandneedstobequicklyproductive.when startingaprojectfromscratch,wehaveshownthatallowingasmallsubsetoftheteam tobootstrapthecodebasewiththebusinessmodelclassesandthenfocusingonnew business rules or variation storyotypes, is a simple solution to bootstrap. Using free and opensourcesoftwareasainitialcodebaseisalsoasolutionthatcanhelpteamsstrengthen other practices and techniques, such as testing. When the team is learning XP and other techniques, using storyotypes to split up the bootstrap story, and allowing code to be committed without complete test coverage, only during a short period of time, is a solution to bootstrap. Split Personality addresses the issue of a person on the team being overloaded withtherolesofcoachandcustomer. Whenthereisthepossibility, oneshoulduse 7
8 oneormorecustomerproxiesorarealcustomer. Wheneverythingelsefails,relyon thesimplesolutionofusingahatorgadgetstodistinguishclearlywhenoneisactingas Coach or as Customer. We believe the proposed solutions will be valuable to the community. In our ongoing work, we are looking for more antipractices and their refactored solutions as to make the adoption of agile methods easier in a wider variety of contexts. References Andrea, J.(2001). Managing the Bootstrap Story in an XP Project. In Proceedings of XP 2001, North Carolina,. Brown, W.J., H. M. and Thomas, S.(2000). AntiPatterns in Project Management,. John Wiley& Sons. Coplien, J. and Harrison, N.(2004). Organizational Patterns of Agile Software Development. Prentice-Hall, Inc. Upper Saddle River, NJ, USA. Freire, A., Gatto, F., and Kon, F.(2005a). Cigarra-A Peer-to-Peer Cultural Grid. In Anais do 6o Workshop sobre Software Livre(WSL 2005), pages Freire, A., Goldman, A., Ferreira, C. E., Asmussen, C., and Kon, F.(2004). Micouniversity schedule planner. In Anais do 5o Workshop sobre Software Livre(WSL 2004), pages , Porto Alegre. Freire, A., Kon, F., and Torteli, C.(2005b). Xp south of the equator: An experience implementing xp in brazil. In Proceedings of the XP 2005 Conference, volume 3556 of Lecture Notes on Computer Science, pages Springer. Goldman,A.,Kon,F.,Silva,P.J.S.,andYoder,J.W.(2004). BeingExtremeinthe Classroom: Experiences Teaching XP. Journal of the Brazilian Computer Society, 10(2):1 17. Hedin, G., Bendix, L., and Magnusson, B.(2003). Coaching Coaches. In Proceedings of 4th International Conference on Extreme Programming and Agile Processes in Software Engineering(XP 2003), volume 2675, pages Springer. Jackson, A., e. a.(2004). Behind the Rules: XP Experiences. In Proceedings of the 2004 Agile Development Conference, Salt Lake City. Kuranuki, Y. and Hiranabe, K.(2004). AntiPractices: AntiPatterns for XP Practices. In Proceedings of the 2004 Agile Development Conference, Salt Lake City. Martin,A.,R.B.andNoble,J.(2004).TheXPCustomerRoleinPractice:ThreeStudies. In Proceedings of the 2004 Agile Development Conference, Salt Lake City. Meszaros, J.(2004). Using Storyotypes to Split Bloated XP Stories. In Proceedings of the XP/Agile Universe 2004, volume 3134, pages 73 80, North Carolina,. Springer. Mugridge, R., MacDonald, B., Roop, P., and Tempero, E.(2003). Five Challenges in Teaching XP. In Proceedings of 4th International Conference on Extreme Programming and Agile Processes in Software Engineering(XP 2003), volume 2675, pages Springer. Tomek, I.(2002). What i Learned Teaching XP. In Proceedings of the 2002 OOPSLA Educators Symposium, Seattle. 8
Extreme Programming: Strengths and Weaknesses
The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA [email protected] Abstract:
Hybrid: The Next Generation Cloud Interviews Among CIOs of the Fortune 1000 and Inc. 5000
Hybrid: The Next Generation Cloud Interviews Among CIOs of the Fortune 1000 and Inc. 5000 IT Solutions Survey Wakefield Research 2 EXECUTIVE SUMMARY: Hybrid The Next Generation Cloud M ost Chief Information
Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006
Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme
Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda
Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or
How To Adopt Rup In Your Project
08Bergstrom.C08 Page 127 Thursday, December 4, 2003 12:06 PM 8 How to Adopt RUP in Your Project Support Projects with Mentoring Make a High-Level Adoption Plan and Develop a Communication Plan Project
Agile Models. Software Engineering 2004-2005. Marco Scotto ([email protected]) Software Engineering
Agile Models 2004-2005 Marco Scotto ([email protected]) Content Introduction Tame projects & wicked projects Win-Win Spiral software development model XP software development process Enforcing the
White paper: Developing agile project task and team management practices
White paper: Developing agile project task and team management practices By Vidas Vasiliauskas Product Manager of Eylean Board 2014 The case Every one of us seeks for perfection in daily routines and personal
SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island
SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii
Web Application Development Process
Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements
Automated Acceptance Testing of High Capacity Network Gateway
Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 [email protected], 2 [email protected],
Java course - IAG0040. Unit testing & Agile Software Development
Java course - IAG0040 Unit testing & Agile Software Development 2011 Unit tests How to be confident that your code works? Why wait for somebody else to test your code? How to provide up-to-date examples
Adopting Agile Testing
Adopting Agile Testing A Borland Agile Testing White Paper August 2012 Executive Summary More and more companies are adopting Agile methods as a flexible way to introduce new software products. An important
An Introduction to Extreme Programming
An Introduction to Extreme Programming Ken Auer [email protected] http://www.rolemodelsoft.com RoleModel Software, Inc. 5004 Rossmore Dr. Fuquay-Varina, NC 27526 919-557-6352 Page 1 The Joy of Software
Quality Assurance Software Development Processes
Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed
XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
Agile Development with C#
Agile Development with C# Paweł Jarosz, [email protected] Cracow University of Technology, Poland Jyvaskyla University of Applied Sciences, February 2009 Paweł Jarosz who am I? M.Sc. of Applied Physics
Agile Projects 7. Agile Project Management 21
Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management
CSE 435 Software Engineering. Sept 16, 2015
CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process
Introduction to extreme Programming (XP)
Introduction to extreme Programming (XP) Extreme Programming (XP) Kent Beck C3 Project Chrysler Comprehensive Compensation system. XP Values: Communication Courage Feedback Simplicity Established the Twelve
Software Configuration Management Practices for extreme Programming Teams
Software Configuration Management Practices for extreme Programming Teams Ulf Asklund, Lars Bendix, Torbjörn Ekman {ulf bendix torbjorn}@cs.lth.se Department of Computer Science Lund Institute of Technology
Agile Testing and Extreme Programming
Agile Testing and Extreme Programming [email protected] www.pettichord.com March 2003 Copyright 2003 Bret Pettichord. All rights reserved. The Agile Alliance Values We have come to value: Individuals
History of Agile Methods
Agile Development Methods: Philosophy and Practice CPSC 315 Programming Studio Fall 2010 History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight software
CSSE 372 Software Project Management: More Agile Project Management
CSSE 372 Software Project Management: More Agile Project Management Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: [email protected] Learning Outcomes: Plan Create a plan for
Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods
Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing
Agile So)ware Development
Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast
Agile Techniques for Object Databases
db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and
Preface 2008 - Agile Testing Review
Preface Why We Wrote This Book We were early adopters of Extreme Programming, testing on XP teams that weren't at all sure where testers and testing fit in. At the time, there wasn't much in the agile
Contents. 3 Agile Modelling 31 3.1 Introduction 31 3.2 Modelling Misconceptions 31
Contents 1 Introduction 1 1.1 WhyThisBook? 1 1.2 A Bit of History 1 1.3 What Is Agile Software Development? 2 1.4 WhyBe Agile? 3 1.5 What This Book Is About? 3 1.6 Implementation Languages 3 1.7 The Structure
Extreme programming (XP) is an engineering methodology consisting of practices that ensure top-quality, focused code. XP begins with four values:
Scrum with XP By Kane Mar, Ken Schwaber. Introduction Scrum and extreme programming (XP) are both Agile methodologies. We've heard controversy regarding the value of each, with people familiar with each
Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series
Overview This is a 15-day live facilitator-led or virtual workshop is designed to prompt your entire team to work efficiently with Microsoft s Application Lifecycle Management solution based around Visual
Agile Essentials for Project Managers Keys to Using Agile Effectively With Project Teams
Agile Essentials for Project Managers Keys to Using Agile Effectively With Project Teams 1 Greg Smith Agile Coach/Trainer: Certified APM, CSM, PMI-ACP Co-author of Becoming Agile in an Imperfect World
Agile with XP and Scrum
Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on
The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary
! " # $%&' ()**+ % The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary , 75% of the enterprise software products
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 1 Agile Myths, Busted Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feelsgood processes. Quite the contrary. As Mary Poppendieck
Scrum. in five minutes
Scrum in five minutes Scrum and agile methods are hot topics these days A simple method for the management of complex projects... Older methods focus on staying on track; Scrum is aimed at delivering business
Agile Software Development in the Large
Agile Software Development in the Large Jutta Eckstein 1 Large Large in... Scope Time People Money Risks We concentrate on Large Teams Large is relative 1, 2, 10, 100, 2000 People 2 Principles behind Agile
Introduction to Software Project Management. CITS3220 Software Requirements & Project Management
Introduction to Software Project Management CITS3220 Software Requirements & Project Management "A project gets a year late one day at a time." "Anything that can be changed will be changed until there
Agile methods. Objectives
Agile methods CMSC435-1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To explain
The Agile Manifesto is based on 12 principles:
The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered
Handbook for finding the right FX Broker
Handbook for finding the right FX Broker With currency trading becoming even more popular, the number of brokers is growing at a rapid rate. What should one look at when deciding which broker to open an
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem
Agile processes Extreme Programming, an agile software development process Perdita Stevens School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development
Tech-Clarity Insight: Top 5 Misconceptions about Innovation Management Software
Tech-Clarity Insight: Top 5 Misconceptions about Innovation Management Software Busting Myths to Improve Innovation, Time to Market, and Profitability Tech-Clarity, Inc. 2013. Table of Contents Executive
Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer
i ii imnin111 imiiii niiini n in mi1111 m i urn u n in i H 111 nil n i ni*tmi n11111 iimn mn n IIIH iwi m«inininnmminniii m HI
Agile Testing. What Students Learn
Agile Testing Transition sound traditional test practices into an Agile development environment. By using a step-by-step approach, this course documents how to transition from traditional test practices
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
Testing Rails. by Josh Steiner. thoughtbot
Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................
User Stories Applied
User Stories Applied for Agile Software Development Mike Cohn Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City Chapter 2 Writing Stories
Software Development Process Selection Approaches
The Journal of Applied Science Vol. 11 No. Vol. 2:45-50 11 No. 2 [2012] ISSN 1513-7805 Printed in Thailand Review Article Software Development Process Selection Approaches Phongphan Danphitsanuphan Department
When agile is not enough
When agile is not enough LESS 2010 Kati Vilkki [email protected] 1 Nokia Siemens Networks When agile is not enough What does lean thinking add to agile? Combining agile and lean Change in mind-set Management
Making Architectural Design Phase Obsolete TDD as a Design Method
HUT / SoberIT 2004 Spring T-76.650 SQA in Agile Software Development 1 Making Architectural Design Phase Obsolete TDD as a Design Method Marc Josefsson T-76.650 Seminar course on SQA in Agile Software
What happens to my application form? How do I apply? Completing the form
Application Advice BSc (Hons) Nursing at York 2015 How do I apply? You can make an application for our nursing programme through UCAS. The main application period is between September and January. During
Benefits of Test Automation for Agile Testing
Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,
Introduction to Agile
Chapter 1 Introduction to Agile Objectives: Define Agile software development Explain differences and similarities between various lightweight methodologies Learn the core principles of Agile Dispel common
Agile and lean methods for managing application development process
Agile and lean methods for managing application development process Hannu Markkanen 24.01.2013 1 Application development lifecycle model To support the planning and management of activities required in
Choosing an LMS FOR EMPLOYEE TRAINING
Choosing an LMS FOR EMPLOYEE TRAINING As organizations grow it becomes more challenging to scale your internal learning culture. You must be certain that your staff is trained in the entire organizational
Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014
Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014 1 Goals Cover Material from our User Stories Book Chapter 15: Using Stories With Scrum Chapter 16: Additional
Job Satisfaction and Motivation in a Large Agile Team
Job Satisfaction and Motivation in a Large Agile Team Bjørnar Tessem 1, and Frank Maurer 2 1 Department of Information Science and Media Studies, University of Bergen, NO-5020 Bergen, Norway [email protected]
Cold Calling in the 21 st Century: The New Rules
Cold Calling in the 21 st Century: The New Rules By Wendy Weiss, The Queen of Cold Calling Is Cold Calling Dead? That s what you hear. No one likes making cold calls. No one likes receiving cold calls.
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.
An Introduction to extreme Programming Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Extreme Programming (XP) is a (very) lightweight incremental software
Chapter 10. Becoming an Agile Enterprise
Chapter 10. Becoming an Agile Enterprise Continuous improvement is not about the things you do well that's work. Continuous improvement is about removing the things that get in the way of your work. The
Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD
Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:
Agile processes. Extreme Programming, an agile software development process
Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development
SOFTWARE ENGINEERING CSC 423 B - MWF 11-12 EXTREME PROGRAMMING
SOFTWARE ENGINEERING CSC 423 B - MWF 11-12 EXTREME PROGRAMMING TO: Dr. Khaldoun El Khalidi FROM: Lamia Nassif, Jessy, Nadine Ghanem, & Pedro Maroun Eid Due: 20 March 2002 1 Table of Contents I. ABSTRACT...3
Agile Software Development and Service Science
DOI V Agile Software Development and Service Science How to develop IT-enabled Services in an Interdisciplinary Environment Andreas Meier, Jenny C. Ivarsson Abstract This paper shows the necessary steps,
Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.
Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.com 1 About Coveros Coveros helps organizations accelerate the delivery
Insight Guide. E-Learning Compliance. www.kineo.com
Insight Guide E-Learning Compliance LAST MENU BACK NEXT Insight Guide Overview The challenges of compliance training Questions to ask before you begin your design 20 minutes A new generation of design
Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development
Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort
Lean Software Development and Kanban
1 of 7 10.04.2013 21:30 Lean Software Development and Kanban Learning Objectives After completing this topic, you should be able to recognize the seven principles of lean software development identify
An Introduction to SharePoint Governance
An Introduction to SharePoint Governance A Guide to Enabling Effective Collaboration within the Workplace Christopher Woodill Vice President, Solutions and Strategy [email protected] 416-477-3945
WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF
WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF AGILE IN PRACTICE. Lewis Chasalow Virginia Commonwealth University [email protected] ABSTRACT Agile development methods have been described by
Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing
Agile Testing (October 2011) Page 1 Learning Objectives for Agile Testing "Certification is the by-product; Learning is the product." Agile Testing should: Compare and contrast agile testing with traditional
Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective
Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Iteration Advantages: bringing testing into the development life
Agile Test Automation
Linda Hayes, Founder, Worksoft Inc. Shoeb Javed, Vice President of Engineering, Worksoft Inc. Contents Executive Summary/Intro...................................... 3 Continuous Integration Environment............................
Agile Software Project Management Methodologies
Economy Informatics, 1-4/2005 27 Agile Software Project Management Methodologies Prof. Constanţa-Nicoleta BODEA, PhD Economic Informatics Department, Academy of Economic Studies, Bucharest Successfully
TIE-PROJ, Project Management workshop 16.09.2014 questions from ten groups:
TIE-PROJ, Project Management workshop 16.09.2014 questions from ten groups: 1. members from groups: G6, G7, G9 Q1: How to ensure that all group members have understood the requirements and got the idea
Agile and lean methods for managing application development process
Agile and lean methods for managing application development process Hannu Markkanen 27.01.2012 1 Lifecycle model To support the planning and management of activities required in the production of e.g.
An Example Checklist for ScrumMasters
An Example Checklist for ScrumMasters Michael James ([email protected]) 14 September 2007 (Revised 24 July 2012) A Full Time Facilitator? An adequate ScrumMaster can handle two or three teams at a time.
Styles of Leadership
Purpose: To focus on three styles of leadership, the importance of developing a flexible style and to help you understand your natural leadership style. Learning Objectives: 1. To understand three styles
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
by Heather Oppenheimer and Steve Baldassano
Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level
Indicators. Salesforce SUCCESS. www.501partners.com 501Partners
7 Indicators of Solutions NON-PROFITS FOR Every implementation is unique, and each requires planning, direction and commitment for success. Some projects never get off the ground, while others founder
Visual Interface Design. Interaction Design. Design Collaboration & Communication. Lean UX
Cooper provides training in all aspects of our unique User Experience Design methodology through our Cooper U educational program. Every Cooper U class is taught by our senior designers to ensure you benefit
SOFTWARE PROCESS MODELS
SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation
Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming
Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Methodologies: RUP Focus
