1. What Works In Software Development
2. Meanwhile, In A Bar In Denmark...
3. How To Be Lazy Without Really Trying
4. Contrast With XP
5. Adapt and Advance
6. Working Within A Team
7. Pardon the Mess
8. Picking Your Ship
9. More On Your Ship
10. Minimum Manager Sanity
11. If Your Manager Isn't Rational
12. Classic Mistake: Feature Creep
13. Requirements: Stories
14. Classic Mistake: Gold Plating
15. Simplest Thing That Could Possibly Work
16. Rules Of Optimization: #1
17. Rules Of Optimization: #2
18. Rules Of Optimization: #3
19. Rules Of Optimization: #4
20. Rules Of Optimization: #4.5
21. Rules Of Optimization: #5
22. Requirements: On-Site Customer
23. Classic Problem: Friction
24. Classic Mistake: Setting In Stone
25. Classic Mistake: Waterfall Model
26. Classic Problem: Programming Is Not Repetitive
27. Schedule: Small Chunks
28. Personal Release Schedule
29. Daily Smoke
30. Fast Release Means Fast Feedback
31. Classic Mistake: Self-Delusion
32. Classic Problem: Estimations
33. Mini-Milestones
34. Milestone Feedback Loop
35. Macro Mini-Milestones
36. Classic Mistake: Ballpark Estimates
37. No Surprises
38. Classic Mistake: Heroics
39. People: 40 Hour Week
40. Self-Imposed Overtime
41. The Law Is Not On Our Side
42. People: Time In Lieu
43. People: Morale
44. People: Health
45. Classic Mistake: Bad Office
46. People: Easy, Instant Communication
47. People: Core Hours
48. People: Put The Experienced Guys Near The Juniors
49. Classic Mistake: Code Ownership Considered Harmful
50. Version Control
51. Coding: Collective Ownership
52. Classic Mistake: Developer Myopia
53. Play Dumb
54. Mama Don't Let Your Programmers To Grow Up To Be Cowboys
55. Classic Mistake: Golfing At Work
56. Coding: Doc As You Go
57. Document Why
58. Documentation As A Narrative
59. Documentation Next To The Code
60. Name Calling
61. Good Names
62. The Style Of Style Guides
63. Some Style Guide Pointers
64. Classic Mistake: Low Quality
65. Coding: Test As You Go
66. Tests Are Confidence
67. Tests Provide A Place To Stop
68. Tests As Debugging Aid
69. Test Before You Commit
70. Assert Yourself
71. Design By Contract
72. High Visibility
73. Testing vs Brooks's Law
74. Coding: Automate Repetitive Process
75. Handy Tip: Be CPAN
76. Coding: Test Your Bugs
77. Effects Of Test Bugs
78. Coding: Develop Where You Can Run The Code
79. Don't Just Fix it, FIX THE HELL OUT OF IT
80. Preemptive Strike
81. Heed Warnings
82. Coding: Refactoring
83. Extract method
84. Extract method example (Before)
85. Extract method example (After)
86. Set of scalars -> collection
87. Set of scalars -> collection (Before)
88. Set of scalars -> collection (After)
89. Small Subroutines Good
90. Coding: Separate Form And Functionality
91. Coding: Focus On Interfaces
92. Bad Interfaces
93. Coding: Patterns
94. Delegation
95. Delegation Example
96. Adaptor
97. Facade
98. Factory
99. Classic Mistake: Falling Behind
100. Integration: Use The Latest Version
101. Integration: Avoid Rewrites
102. Classic Mistake: Death March
103. Getting Out Of The Hole
104. How To Convince Your Manager To Cut Features
105. Classic Mistake: Reverting To Code And Fix
106. Letting it Escape: Releasing your project
107. Further Reading
108. Further Further Reading