Books & Videos

Table of Contents

  1. Chapter 1 Great Software Development: Pleasing your customer

    1. Tom’s Trails is going online

    2. Most projects have two major concerns

    3. The Big Bang approach to development

    4. Flash forward: two weeks later

    5. Big bang development usually ends up in a BIG MESS

    6. Great software development is...

    7. Getting to the goal with ITERATION

    8. Each iteration is a mini-project

    9. Each iteration is QUALITY software

    10. The customer WILL change things up

    11. It’s up to you to make adjustments

    12. Iteration handles change automatically (well, sort of)

    13. Your software isn’t complete until it’s been RELEASED

    14. Tools for your Software Development Toolbox

  2. Chapter 2 Gathering Requirements: Knowing what the customer wants

    1. Orion’s Orbits is modernizing

    2. Talk to your customer to get MORE information

    3. Bluesky with your customer

    4. Sometimes your bluesky session looks like this...

    5. Find out what people REALLY do

    6. Your requirements must be CUSTOMER-oriented

    7. Develop your requirements with customer feedback

    8. User stories define the WHAT of your project... estimates define the WHEN

    9. Cubicle conversation

    10. Playing planning poker

    11. Put assumptions on trial for their lives

    12. A BIG user story estimate is a BAD user story estimate

    13. The goal is convergence

    14. The requirement to estimate iteration cycle

    15. Finally, you’re ready to estimate the whole project...

    16. Tools for your Software Development Toolbox

  3. Chapter 3 Project Planning: Planning for success

    1. Customers want their software NOW!

    2. Prioritize with the customer

    3. We know what’s in Milestone 1.0 (well, maybe)

    4. If the features don’t fit, reprioritize

    5. More people sometimes means diminishing returns

    6. Work your way to a reasonable Milestone 1.0

    7. Iterations should be short and sweet

    8. Comparing your plan to reality

    9. Velocity accounts for overhead in your estimates

    10. Programmers think in UTOPIAN days...

    11. Developers think in REAL-WORLD days...

    12. When is your iteration too long?

    13. Deal with velocity BEFORE you break into iterations

    14. Time to make an evaluation

    15. Managing pissed off customers

    16. The Big Board on your wall

    17. How to ruin your team’s lives

    18. Tools for your Software Development Toolbox

  4. Chapter 4 User Stories and Tasks: Getting to the real work

    1. Introducing iSwoon

    2. Do your tasks add up?

    3. Plot just the work you have left

    4. Add your tasks to your board

    5. Start working on your tasks

    6. A task is only in progress when it’s IN PROGRESS

    7. What if I’m working on two things at once?

    8. Your first standup meeting...

    9. Task 1: Create the Date class

    10. Standup meeting: Day 5, end of Week 1...

    11. Standup meeting: Day 2, Week 2...

    12. You have to track unplanned tasks

    13. Unexpected tasks raise your burn-down rate

    14. Velocity helps, but...

    15. We originally calculated velocity as...

    16. So we have this much “float”...

    17. ... but it may not be enough!

    18. We have a lot to do...

    19. ...but we know EXACTLY where we stand

  5. Chapter 5 Good-Enough Design: Getting it done with great design

    1. iSwoon is in serious trouble...

    2. This design breaks the single responsibility principle

    3. Spotting multiple responsibilies in your design

    4. Going from multiple responsibilies to a single responsibility

    5. Your design should obey the SRP, but also be DRY...

    6. The post-refactoring standup meeting...

    7. Unplanned tasks are still just tasks

    8. Part of your task is the demo itself

    9. When everything’s complete, the iteration’s done

  6. Chapter 6 Version Control: Defensive development

    1. You’ve got a new contract—BeatBox Pro

    2. And now the GUI work...

    3. And a quick test...

    4. And Bob does the same...

    5. Demo the new BeatBox for the customer

    6. Standup meeting

    7. Let’s start with VERSION CONTROL

    8. First set up your project...

    9. ...then you can check code in and out.

    10. Most version control tools will try and solve problems for you

    11. The server tries to MERGE your changes

    12. If your software can’t merge the changes, it issues a conflict

    13. Now show the customer...

    14. More iterations, more stories...

    15. Standup meeting

    16. We have more than one version of our software...

    17. Good commit messages make finding older software easier

    18. Now you can check out Version 1.0

    19. (Emergency) standup meeting

    20. Tag your versions

    21. Tags, branches, and trunks, oh my!

    22. Fixing Version 1.0...for real this time.

    23. We have TWO code bases now

    24. When NOT to branch...

    25. We fixed ersion 1...

    26. ... and Bob finished ersion 2.0 (so he says)

    27. Version control can’t make sure your code actually works...

    28. Tools for your Software Development Toolbox

  7. Chapter 6 ½ Building your Code: Insert tab a into slot b...

    1. Developers aren’t mind readers

    2. Building your project in one step

    3. Ant: a build tool for Java projects

    4. Projects, properties, targets, tasks

    5. Good build scripts...

    6. Good build scripts go BEYOND the basics

    7. Your build script is code, too

    8. New developer, take two

    9. Tools for your Software Development Toolbox

  8. Chapter 7 Testing and Continuous Integration: Things fall apart

    1. Things will ALWAYS go wrong...

    2. Standup meeting

    3. There are three ways to look at your system...

    4. Black-box testing focuses on INPUT and OUTPUT

    5. Grey-box testing gets you CLOSER to the code

    6. White-box testing uses inside knowledge

    7. Testing EVERYTHING with one step

    8. Automate your tests with a testing framework

    9. Use your framework to run your tests

    10. At the wheel of CI with CruiseControl

    11. Testing guarantees things will work... right?

    12. Standup meeting

    13. Testing all your code means testing EVERY BRANCH

    14. Use a coverage report to see what’s covered

    15. Getting good coverage isn’t always easy...

    16. Standup meeting

    17. Tools for your Software Development Toolbox

  9. Chapter 8 Test-Driven Development: Holding your code accountable

    1. Test FIRST, not last

    2. So we’re going to test FIRST...

    3. Welcome to test-driven development

    4. Your first test...

    5. ... fails miserably.

    6. Get your tests to GREEN

    7. Red, green, refactor...

    8. In TDD, tests DRIVE your implementation

    9. Completing a task means you’ve got all the tests you need, and they all pass

    10. When your tests pass, move on!

    11. Different task, same process

    12. Red: write (failing) tests

    13. Green: write code to pass tests

    14. Simplicity means avoiding dependencies

    15. Always write testable code

    16. When things get hard to test, examine your design

    17. The strategy pattern provides for multiple implementations of a single interface

    18. Keep your test code with your tests

    19. Testing produces better code

    20. More tests always means lots more code

    21. Strategy patterns, loose couplings, object stand ins...

    22. We need lots of different, but similar, objects

    23. What if we generated objects?

    24. A mock object stands in for real objects

    25. Mock objects are working object stand-ins

    26. Good software is testable...

    27. It’s not easy bein’ green...

    28. A day in the life of a test-driven developer...

    29. Tools for your Software Development Toolbox

  10. Chapter 9 Ending an Iteration: It’s all coming together...

    1. Your iteration is just about complete...

    2. ... but there’s lots left you could do

    3. Standup Meeting

    4. System testing MUST be done...

    5. ... but WHO does system testing?

    6. System testing depends on a complete system to test

    7. Good system testing requires TWO iteration cycles

    8. More iterations means more problems

    9. The life (and death) of a bug

    10. So you found a bug....

    11. Anatomy of a bug report

    12. But there’s still plenty left you COULD do...

    13. Time for the iteration review

    14. Some iteration review questions

    15. A GENERAL priority list for getting EXTRA things done...

    16. Tools for your Software Development Toolbox

  11. Chapter 10 The Next Iteration: If it ain’t broke... you still better fix it

    1. What is working software?

    2. You need to plan for the next iteration

    3. Velocity accounts for... the REAL WORLD

    4. And it’s STILL about the customer

    5. Someone else’s software is STILL just software

    6. Customer approval? Check!

    7. Testing your code

    8. Houston, we really do have a problem...

    9. Standup meeting

    10. Trust NO ONE

    11. You without your process

    12. You with your process

  12. Chapter 11 Bugs: Squashing bugs like a pro

    1. First, you’ve got to talk to the customer

    2. Standup meeting

    3. Priority one: get things buildable

    4. We could fix code...

    5. ... but we need to fix functionality

    6. Figure out what functionality works

    7. NOW you know what’s not working

    8. Spike test to estimate

    9. What do the spike test results tell you?

    10. Your team’s gut feeling matters

    11. Give your customer the bug fix estimate

    12. Things are looking good...

    13. ... and you finish the iteration successfully!

    14. AND most importantly the customer is happy

    15. Tools for your Software Development Toolbox

  13. Chapter 12 The Real World: Having a process in life

    1. Pinning down a software development process

    2. A good process delivers good software

    3. Formal attire required...

    4. Some additional resources...

    5. More knowledge == better process

    6. Tools for your Software Development Toolbox

    7. It’s time to leave a mark on the board world!

  1. Appendix Leftovers: The top 5 topics (we didn’t cover)

    1. #1. UML class diagrams

    2. Class diagrams show relationships

    3. #2. Sequence diagrams

    4. #3. User stories and use cases

    5. #4. System tests vs. unit tests

    6. #5. Refactoring

  2. Appendix Techniques and Principles: Tools for the experienced software developer