4. How hard can it be to build
a web app?
Did not have a shippable product
Code was over engineered
Features were over specified
Too much administration
23. Development Tools
Version Control System - Subversion - UNDO + many programmers
Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things
going wrong
Database Refactoring - Rails migrations, LiquidBase
24. Development Tools
Version Control System
Version Control System - Subversion - UNDO + many programmers
Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things
going wrong
Database Refactoring - Rails migrations, LiquidBase
25. Development Tools
Version Control System
Automation tools
Version Control System - Subversion - UNDO + many programmers
Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things
going wrong
Database Refactoring - Rails migrations, LiquidBase
26. Development Tools
Version Control System
Automation tools
Database Refactoring
Version Control System - Subversion - UNDO + many programmers
Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things
going wrong
Database Refactoring - Rails migrations, LiquidBase
27. Testing Tools
Always in maintenance mode
tests automate the vefication process
tests make you brave (to change your code)
Tests must pass before checking in
save embarrasement
28. Testing Tools
Unit testing
Always in maintenance mode
tests automate the vefication process
tests make you brave (to change your code)
Tests must pass before checking in
save embarrasement
29. Testing Tools
Unit testing
Functional testing
Always in maintenance mode
tests automate the vefication process
tests make you brave (to change your code)
Tests must pass before checking in
save embarrasement
30. Testing Tools
Unit testing
Functional testing
Continuous Integration
Always in maintenance mode
tests automate the vefication process
tests make you brave (to change your code)
Tests must pass before checking in
save embarrasement
35. What is a story?
Features, fixes or nonfunctional requirements
As an <actor> <action>
i.e. As a User I can view my account balance
i.e. As an Administrator I can delete a user
Not over specified
Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
36. What is a story?
Features, fixes or nonfunctional requirements
As an <actor> <action>
i.e. As a User I can view my account balance
i.e. As an Administrator I can delete a user
Not over specified
Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
37. What is a story?
Features, fixes or nonfunctional requirements
As an <actor> <action>
i.e. As a User I can view my account balance
i.e. As an Administrator I can delete a user
Not over specified
Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
38. What is a story?
Features, fixes or nonfunctional requirements
As an <actor> <action>
i.e. As a User I can view my account balance
i.e. As an Administrator I can delete a user
Not over specified
Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
39. What is a story?
Features, fixes or nonfunctional requirements
As an <actor> <action>
i.e. As a User I can view my account balance
i.e. As an Administrator I can delete a user
Not over specified
Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
40. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
41. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
42. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
43. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
44. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
45. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
46. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
47. Management - Story Board
Story Board - what we are doing this week
•
Purpose: it is a communication tool - not just for the team but for anyone who is
interested.
•
It does not have all the details - see issue tracker or talk to customer
•
3 columns - todo, doing, done
•
all items start in todo and are order, in priority, from top to bottom
•
when someone picks a story, they move it to ‘doing’ and put their avatar next to it
48. 3. Simple Development
Process
KISS
Agile and Iterative - Scrum and XP
Process keeps everyone on the same page
49. 4. Ship it!
If you don’t ship it, it is just an elaborate art project
Ship the simplest thing possible (at first)
*
RB gallery example
*
release early & often - good enough - good enough for your users, for future
maintenance and your piece of mind (PragProg). Like an artist, you need to know when to
stop.
52. RedBubble Practices
1. Good people
There are no rules, there are only guidelines - if it doesn’t help you, then change it!
53. RedBubble Practices
1. Good people
2. Good tools
There are no rules, there are only guidelines - if it doesn’t help you, then change it!
54. RedBubble Practices
1. Good people
2. Good tools
3. Simple Development Process
There are no rules, there are only guidelines - if it doesn’t help you, then change it!
55. RedBubble Practices
1. Good people
2. Good tools
3. Simple Development Process
4. Ship it!
There are no rules, there are only guidelines - if it doesn’t help you, then change it!
56. RedBubble Practices
1. Good people
2. Good tools
3. Simple Development Process
4. Ship it!
5. Have fun
There are no rules, there are only guidelines - if it doesn’t help you, then change it!
57. A week in software
development
An Iteration
Thursday Friday Monday Tuesday Wednesday
Release Standup Standup Standup Early Morning Standup
Kickoff Beverages Code Review Finalize planning Showcase
Start planning next week Close it off
End of iteration Review
Free time
Why do you want a good process?
•
a good process takes the day to day “what do we do now” conversations away so you
can actually get down and do the work
•
Thursday is the start of the week, Wednesday is the end
58. What now?
Try Agile and Iterative Development
Try some new tools
Make a difference
61. Resources
Books
“Pragmatic Programmer” by Hunt and Thomas
“Agile and Iterative Development” by Craig Larman
“A Rational Design Process: How and why to Fake
It.” Clements, P., and Parnas, D
Scrum and XP from the Trenches - Henrik Kniberg
“The Art of the Start” by Guy Kawasaki
“Beautiful Code: Leading Programmers Explain How
They Think”