This action might not be possible to undo. Are you sure you want to continue?
Ken Bauer 15 August 2012
The Software Problem History of the Software Problem Our Solution: XP & Agile Methods Implementation Issues Management Issues Review, Conclusions, Future
15 August 2012 XP, Ken Bauer 2
B.Sc. Computer Science (Honours), University of Victoria, 1993 M.Sc. Computer Science University of Washington, 1995 OOPSLA Committee member 1995-present (attendee since 1992)
15 August 2012
XP, Ken Bauer
Professor, Computer Science ITESM, Campus Guadalajara 1995-1997, 1999-present O-O, S.E., P.L., O.S. Introduced Java to ITESM in 1996 Director, ISC at Campus Guadalajara 2000 - present
15 August 2012 XP, Ken Bauer 4
0 Harley Street Software. Java. Software Engineer. worked on VAJava v1.Industry Background Object Technology International (IBM) 1997. XP. 1998 Consulting in O-O. 1998 Safeware Engineering Inc. Ken Bauer 5 .. systems administration and security since 1999 15 August 2012 XP.
The Software Problem 15 August 2012 XP. Ken Bauer 6 .
Why Is Software So Hard? Is it technical Or is it human Are systems just bigger Or did we have problems with small systems Or is it really that hard? XP. Ken Bauer 7 15 August 2012 .
Technical Issues Compilers Development Environments Wizards 15 August 2012 XP. Ken Bauer 8 .
Compilers The human code-optimizers of the 1970’s and 1980’s are no longer needed Computers parse fast Human’s parse slow Human’s need abstraction 15 August 2012 XP. Ken Bauer 9 .
Development Environments Syntax checkers/highlighters Debuggers (distributed) Source Code Control Team development support 15 August 2012 XP. Ken Bauer 10 .
frameworks are all buzzwords. code-generators. Which ones work? Wizards are magical and mystical But who was that code generated? And do you understand it? ALL of it? 15 August 2012 XP.Wizards Wizards. templates. Ken Bauer 11 .
etc 15 August 2012 XP. Ken Bauer 12 .Human Issues Management Style Programmer as a profession Software is written by people for people People make mistakes People get bored People get defensive etc.
Management Style What is the manager’s role? (fill in our work here) 15 August 2012 XP. Ken Bauer 13 .
Programmer As a Profession What kind of people are we getting? Who is responsible for the development of the developer? University/College The company The developer herself Government 15 August 2012 XP. Ken Bauer 14 .
Software is Peopleware Software almost always involves people at the end. Ken Bauer 15 . and definitely in the beginning and middle 15 August 2012 XP.
Ken Bauer 16 .Software is Peopleware Software almost always involves people at the end. and definitely in the beginning and middle People have needs 15 August 2012 XP.
and definitely in the beginning and middle People have needs People have desires 15 August 2012 XP.Software is Peopleware Software almost always involves people at the end. Ken Bauer 17 .
and definitely in the beginning and middle People have needs People have desires People have lives!!!! 15 August 2012 XP.Software is Peopleware Software almost always involves people at the end. Ken Bauer 18 .
system builds. code walkthroughs Can we live with buggy systems? 15 August 2012 XP. code reviews. what are we going to do about it? Testing.To Err Is Human Can we finally accept this? If so. Ken Bauer 19 .
people like people and even working with them Two heads (together) think better than one two (apart) People learn best from people. Ken Bauer 20 . banging their head against the monitor 15 August 2012 XP. videos. code. not books.Everyone Needs Stimulation Grunt programmers produce grunt code In general.
culture it? 15 August 2012 XP.People Have Their Pride There is no such thing as the egoless programmer Who do we deal with this ego? Smash it with a hammer? Or should we harness it. Ken Bauer 21 .
Environment Issues Today and tomorrow are different Time does not stand still. Ken Bauer 22 . neither do needs (requirements) Systems need to be ready to adapt to needs (adaptable systems) People should not be required to adapt to systems 15 August 2012 XP.
Tomorrow. Tomorrow What happens between today and tomorrow gives us more information Good experience is experience So is bad experience! We need to use what we learn everyday to the best advantage 15 August 2012 XP. Ken Bauer 23 .
Death and Taxes These all have something to do with software Changing requirements are a reality Death (or at least other disasters) will affect your project Regulations (government and otherwise) will be part of the process 15 August 2012 XP. Ken Bauer 24 .Change.
Systems Change “Whenever a system is installed. OOPSLA 2001 Systems need to be able to change and built for that in mind 15 August 2012 XP. Ken Bauer 25 .” – Tom DeMarco. somebody gains and somebody loses power.
Ken Bauer 26 . not the ones that are thrust upon them 15 August 2012 XP. that quote by Tom Every system creates losers and winners (in the change department) Our users should get the changes they want.People Don’t Like to Change Again.
Ken Bauer 27 .History of the Software Problem 15 August 2012 XP.
1995 (kwb) His comments on Eric Raymond 15 August 2012 XP. Ken Bauer 28 .Fred Brooks No Silver Bullet 1975 (kwb) Silver Bullet Refired.
David Parnas Modular Programming Star Wars project and his abandonment of the project Shouldn’t be building projects so incredibly huge. Ken Bauer 29 . 15 August 2012 XP.
Ken Bauer 30 .Tom DeMarco “Peopleware”. not a technical one Most software development projects fail because of failures within the team running them Keynote at OOPSLA 2001 15 August 2012 XP. Lidster and DeMarco. 1987 The first to insist that software is a people problem.
Watts Humphrey PSP. Team Software Process CMM. Ken Bauer 31 . Capability Maturity Model Focused on a disciplined approach to “Software Engineering” 15 August 2012 XP. Personal Software Process TSP.
Levels of CMM 1 No order 2 Repeatable 3 Defined (processes) 4 Managed (quantifiable quality goals) 5 Optimizing (continuous improvement) XP. Ken Bauer 32 15 August 2012 .
Ken Bauer 33 . 2001 Brings a psychological background and business school education to the industry 15 August 2012 XP.Larry Constantine Larry wrote continued to write about Peopleware in the 90’s The Peopleware Papers.
Ed Yourdon The Decline and Fall of the American Programmer. Ken Bauer 34 . 1999 15 August 2012 XP. 1992 Rise And Resurrection of the American Programmer. 1996 Death March.
Rapid Development. Software Project Survival Guide and After the Gold Rush Software Engineering as a profession Editor in Chief.com Reading list is excellent 15 August 2012 XP. IEEE Software www.Steve McConnell Code Complete. Ken Bauer 35 .construx.
Campus Guadalajara XP. Ken Bauer 36 15 August 2012 .Kent Beck Smalltalk/OOPSLA community Early Patterns work eXtreme Programming Manifesto XP Series (7 now) Keynote at CongresoISC 2000 at ITESM.
Ken Bauer 37 .Alistair Cockburn The Agile Software Development Series “Agile Software Development” “Writing Effective Use Cases” “Surviving Object-Oriented Projects” 15 August 2012 XP.
The Pragmatic Programmers Dave “Pragmatic” Thomas Andy Hunt Programming as a craft Metaphors such as gardening 15 August 2012 XP. Ken Bauer 38 .
Linus Torvalds. Eric Raymond Open Source Movement Cathedral and the Bazaar 15 August 2012 XP. Ken Bauer 39 .
Ken Bauer 40 .Our Solution: XP &Agile Methods 15 August 2012 XP.
Ken Bauer 41 .XP (white-book) Forward by Erich Gamma (OTI) XP nominates programming as the key activity throughout a software project. This can’t possibly work! 15 August 2012 XP.
Ken Bauer 42 .XP (white-book) Forward by Erich Gamma (OTI) Work in a just-in-tie software culture with compressed release cycles and high technical risk Change becomes your friend Communication in and across geographically separate teams (done with code) 15 August 2012 XP.
XP (white-book) Forward by Erich Gamma (OTI) Read code to understand new or evolving system APIs Life cycle and behavior is defined in test cases (done with code) Problem reports come in with test cases demonstrating the problem (again. with code) 15 August 2012 XP. Ken Bauer 43 .
XP (white-book) Forward by Erich Gamma (OTI) Continuously improving code with refactoring OTI has a code-centric development process (pre XP) and it worked. And worked well with products shipped on time 15 August 2012 XP. Ken Bauer 44 .
and delivering quality software in time is even harder To make it work requires the disciplined use of additional best practices 15 August 2012 XP. cowboycoder based Delivering software is hard. Ken Bauer 45 .XP (white-book) Forward by Erich Gamma (OTI) This is not just daredevil.
Ken Bauer 46 .XP (white-book) Forward by Erich Gamma (OTI) Kent Beck wrote the book on bestpractice patterns in Smalltalk (literally) Dave Thomas (big Dave of OTI. not the pragmatic Dave or the Wendy’s Dave) co-wrote the “Smalltalk with Style” book 15 August 2012 XP.
XP (white-book) Forward by Erich Gamma (OTI)
Kent Beck and Ward Cunningham inspired much of the Pattern movement and best practices They also refined what they were seeing into a lightweight methodology That is what XP is. The writing down of what they were experiences
15 August 2012 XP, Ken Bauer 47
Clear separation of roles of customer and programmer Bill of Rights Courage Customers: scope, priority, composition and dates of releases Programmers: estimates, technical consequences, process, detailed schedule
15 August 2012 XP, Ken Bauer 48
XP Is an Onion
15 August 2012
XP, Ken Bauer
Schedule slips Project canceled System goes sour Defect rate Business misunderstood Business changes False feature rich Staff turnover
15 August 2012 XP, Ken Bauer 50
Ken Bauer 51 .Schedule Slips Short release cycles 3 months AT MOST Within release are iterations 1 – 4 weeks per iteration Highest priority features first 15 August 2012 XP.
Project Cancelled Customer chooses smallest release that works best for them Keeps value of software at its greatest 15 August 2012 XP. Ken Bauer 52 .
System goes sour Create and maintain comprehensive suite of tests Run and re-run after every change Several times a day! Keep system in prime condition Cruft cannot accumulate XP. Ken Bauer 53 15 August 2012 .
Ken Bauer 54 .Defect Rate Tests from the perspective of programmers – function-by-function Tests from the perspective of the customers – feature-by-feature 15 August 2012 XP.
Business misunderstood Customer is integral part of team Specification is continually refined Learning by customer and team can be reflected in the software 15 August 2012 XP. Ken Bauer 55 .
Business Changes XP shortens release cycle Less change during a release Customer welcome to substitute new functionality for functionality not yet completed 15 August 2012 XP. Ken Bauer 56 .
Ken Bauer 57 .False feature rich XP insists that only the highest priority tasks are addressed Customer makes the priority decisions NOT the programmer 15 August 2012 XP.
Ken Bauer 58 .Staff turnover Programmers accept responsibilty for estimating and completing their own work XP gives them feedback about the actual time taken so they can improve estimates XP encourage human contact among the team 15 August 2012 XP.
Ken Bauer 59 .Economics of Software Cash flows in and out Interest rates Project mortality 15 August 2012 XP.
difficult Earning more. superior marketing and sales organization Spending later and earning sooner to pay less interest and earn more interest Increasing the probability that the project will stay alive 15 August 2012 XP. Ken Bauer 60 .Maximizing Economic Value Spending less.
Options in Economics Option to abandon – cancel is sometimes good Option to switch – change direction Option to defer – wait to spend money Option to grow . Ken Bauer 61 .capitalize 15 August 2012 XP.
Ken Bauer 62 .E. Cost Time Quality Scope Focus on Scope 15 August 2012 XP.Four Variables in S.
Ken Bauer 63 .Cost of Change Graph on board Requirements Analysis Design Implementation Testing Production 15 August 2012 XP.
Four Values Communication Simplicity Feedback Courage 15 August 2012 XP. Ken Bauer 64 .
Ken Bauer 65 .Basic Principles Rapid feedback Assume simplicity Incremental change Embracing change Quality work 15 August 2012 XP.
Ken Bauer 66 . honest communication 15 August 2012 Work with people’s instincts.Other Principles Teach learning Small initial investment Play to win Concrete experiments Open. not against Accepted responsibility Local adaption Travel light Honest measurement XP.
then we wouldn’t have to write them. Tests are interesting when they fail. especially if we didn’t expect them to fail. Ken Bauer 67 .” “JUnit: A Cooks Tour” – Kent Beck & Ward Cunningham 15 August 2012 XP.Test First JUnit (or other testing framework) “If tests always ran correctly.
Ken Bauer 68 .Basics of Programming Coding Testing Listening Designing 15 August 2012 XP.
Ken Bauer 69 15 August 2012 .The 12 XP Practices The Planning Game Small Releases Metaphor Simple design Testing Refactoring Pair Programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards XP.
Ken Bauer 70 .Planning Game Business people: Scope Priority Composition of releases Dates of releases Technical people: Estimates Consequences Process Detailed scheduling 15 August 2012 XP.
Small Releases Small as possible Containing the most valuable business requirements Has to make sense as a whole No half-implemented features 15 August 2012 XP. Ken Bauer 71 .
Ken Bauer 72 .Metaphor Replaces much of what others call architecture Give everyone a coherent story within which they can work A story that can easily be shared by business and technical people 15 August 2012 XP.
Ken Bauer 73 .Simple Design The right design: Runs all the tests Has no duplicated logic States every intention important to the programmers Has the fewest possible classes and methods 15 August 2012 XP.
Testing Any program feature without an automated test simply does not exist Unit tests build confidence in the operation of the program for the programmers Functional tests give customers confidence in the operation of the program 15 August 2012 XP. Ken Bauer 74 .
Refactoring Changing the existing program to make adding a new feature simpler Making the program simpler but still passing the tests 15 August 2012 XP. Ken Bauer 75 .
Pair Programming One keyboard. mouse and monitor Inactive partner IS active: Is this whole approach going to work? What are some other test cases that might not work yet? Is there some way to simplify the whole system so the current problem just disappears? 15 August 2012 XP. Ken Bauer 76 .
Ken Bauer 77 .edu/lauri e/Papers/Kindergarten.Pair Programming (cont) “All I Need to Know about PairProgramming I Learned in Kindergarten” – Laurie Williams?? http://collaboration.ncsu.PDF Or ACM Digital Library 15 August 2012 XP.csc.
Ken Bauer 78 .Collective Ownership Anyone adds value when needed and they can Better than individual ownership Better than NO ownership 15 August 2012 XP.
Continuous Integration Daily builds are for wimps Big builds are hard Fixing broken builds is harder 15 August 2012 XP. Ken Bauer 79 .
Ken Bauer 80 .40-Hour Week Being fresh Overtime is a symptom of a serious problem on the project Vacations of at least 2 weeks People need “downtime” 15 August 2012 XP.
On-site Customer Those quick questions become really quick And we actually ask them Instead of assuming The customer can do other stuff 15 August 2012 XP. Ken Bauer 81 .
Once and Only Once rule (no duplicate code) Adopted voluntarily by the whole team XP. Ken Bauer 82 15 August 2012 . Just needs to be agreed on.Coding Standards Do it my way….
Ken Bauer 83 .Management Issues The Green Book 15 August 2012 XP.
Ken Bauer 84 . Future 15 August 2012 XP.Review. Conclusions.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.