eXtreme.NET Dr. Neil Roodyn
eXtreme.NET Who is Dr. Neil? MISSION: To increase the value of your Software Business Working with software for way too long to be healthy Spend half my year in Australia Regular contributor to: Australian Developer, International Developer, Cutter IT Journal, CUJ, CODE…
eXtreme.NET Books
eXtreme.NET Quick Definitions What is XP? What is.NET ? What is eXtreme.NET ?
eXtreme.NET Thinking Out of Focus? Technology –Features –Toys Process –Methodologies –Best Practices People
eXtreme.NET What is software? CODE!
eXtreme.NET CODE Code is what it is all about software product = some code
eXtreme.NET Better Product = better code –Easy to install –Has functions the user wants –High quality repeatedly works –Upgradeable more features the user wants easily added
eXtreme.NET It's not hard! So why do software projects fail? –We should use language ‘xyz’ –We should use technology ‘abc’ –We should use these complex patterns That we don’t actually need –We should use these practices That are not suitable for this project
eXtreme.NET We make it more complex than is needed Makes us look smart Justifies our high salary Covers our arses –'It was a tough project, no wonder it failed!'
eXtreme.NET STOP IT NOW! Do the simplest thing that could possibly work.
eXtreme.NET How? Let me show you....
eXtreme.NET Iteration 0 The automated build file The installer
eXtreme.NET Demo Simple build batch file
eXtreme.NET Planning game Customer meeting User stories Task break down
eXtreme.NET The Development Cycle Test Code Test Refactor Test Integrate
eXtreme.NET Test Driven Development Test First Programming Test Frameworks support TDD NUnit
eXtreme.NET The Why Questions Why do we need tests in our code at all? Isn’t that the job of the testers? Why do we have to write test code? Why not do manual testing? Why write the test code before the ‘proper’ code? Why doesn’t this whole process cost the customer more?
eXtreme.NET Refactoring Changing the structure of code while maintaining the behaviour
eXtreme.NET The Why Questions Why not just get it right the first time? Why not just start again if you know it’s wrong? Why can’t I just refactor at the end of the project? Why does this help me develop more robust code? Why should I do it when no one else does? Why do something that doesn’t add any new features to the code?
eXtreme.NET Demo TDD and refactor
eXtreme.NET Testing the GUI It’s SO HARD –Yes so is writing good software! It’s actually not so hard –use reflection
eXtreme.NET Spiking the unknown When you find an area you don’t fully understand –Explore –Experiment –Explain
eXtreme.NET Ship It! Anytime you have a green screen Should be ready to ship your software everyday
eXtreme.NET eXtreme.NET Day Hands-on how to use the techniques Coming back in October –1 or 2 days?
eXtreme.NET Resources
eXtreme.NET Questions? Thank You!