Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account? Log In

Some Extreme Programming Practices in fifteen minutes by Mind Map: Some Extreme Programming
Practices in fifteen minutes
5.0 stars - 1 reviews range from 0 to 5

Some Extreme Programming Practices in fifteen minutes

Test Driven Development (TDD)

4 Step Program

Write a failing test, non compiling code is a failing test

Write the least amount of code to make that test pass, LITERALLY THE LEAST, if x > 0 return "answer a" else return "answer b"

Refactor, don't add functionality, fix up the code and ensure all the tests still pass, ALL THE TESTS not just the last one

REPEAT

Leads to simple design

Another XP Practice

Don't over design a solution up front

9 times out of 10 TDD will lead to a much simplier solution

You will often reach this solution waaaayyy sooner because you started the problem ASAP, not after designing it for a few hours/days

Faster coding, Faster Feedback

When writing tests you can run small bits of code imediately, and often, no longer building an entire project that can take minutes or hours

Immediate feedback on what is working and what isn't working, automated tests can tell you when you broke something that use to work, stop doing this by hand

Every major IDE can do unit testing

thus every major IDE supports TDD

Continuous Integration

Tech Talk Presentation by me

buildfordisable.nicholastuck.com

the origin of this practice

originated from XP as code integration

later adopted by agile and repurposed to mean entire project integration

Definition

The development team should always be working on the latest version of the software

Upload their current version to the code repository every few hours, or when a significant break presents itself

Benefits

Avoid merging conflicts which can waste a ton of time

Share and help eachother, no your task or my task, it's our task, we can work our task together at any point, no delays between pc's, no delays between different schedules, no delays to make everything work before sharing code

Really Needs

automated builds, need to know what build works and what build doesn't

a respect for broken builds, need to fix a build as soon as it breaks, highest priority on the team, higher than the RTS

Pair Programming

Tech Talk Presentation by me

pairprogramming.thesoftwaregardener.com

Definition

1 computer, 1 desk

2 team members

continual collaboration, develop, design, test, integrate, everything!

Driver

Codes, syntax, for loop etc

Documenting, Test cases, Design

Navigator

Observes the drivers work, checking for syntax and logic errors

Plans the next steps, next logical step to solve the current problem, designs the next solution

Fights off distractions, drive bys, keeps track of new problems or things to investigate

Benefits

Constant Review, 2 heads are better than one, Less bugs, bugs are the most costly part of software projects

Constant Training, Everyone has specialties, we all can learn from each other and learn faster togeher

Simple Design

Take a "simple is best" approach to software design

"Is there a simpler way to introduce the same functionality?"

Simple is easier and faster to implement vs complex

Simple is subjective and judged by the team

Easier to understand, Includes better naming & clean code

Refactoring should also be used to make complex code simpler

Constant refactoring should be done

it's part of the process, it's not a separate story or task