extreme.net dr. neil roodyn. extreme.net who is dr. neil? mission: to increase the value of your...

27
eXtreme .NET eXtreme .NET Dr. Neil Roodyn

Post on 20-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

eXtreme .NET

eXtreme .NETDr. 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

http://eXtreme.NET.Roodyn.com

http://smartphone.roodyn.com/

http://tablet.roodyn.com/

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?

• http://www.dotnetsolutions.com.au/

eXtreme .NET

Resources

• http://www.Roodyn.com

• http://eXtreme.NET.Roodyn.com

• http://www.xp123.com

• http://www.extremeprogramming.org

• http://www.xprogramming.com

eXtreme .NET

Questions?

Thank You!