A while ago I did a talk that was a very general overview of many of the popular software development processes being used in the industry. Obviously this is way too much information to cover in a single talk. The point of the talk was certainly not to make everyone in the audience an expert on all the subject matter. It was just to quickly list as many buzz words that I could think of, briefly define each, and describe the problems each process can help solve.
Following the talk I released a large list of additional resources. The real goal of the talk was to point people in the right direction so that they could go forth learn more about any software development process they felt might be beneficial to them or their team. Here is that list.
- Software Engineering, Agile, Lean, DevOps
- Waterfall, Extreme Programming (XP), Scrum, Kanban
- System Metaphor, User Story, “As a”, System Metaphor, Epic, Cynefin
- Backlog Management, Grooming, Story Map
- Sprint, Planning Meeting, Planning Game/Poker, Estimate verse Commitment
- Velocity, Sustainable Pace
- Burn Down Chart, Kanban Board, Cumulative Flow Diagram
- Stand Up, 3 Questions, Definition Of Done, Review Meeting
- Retrospectives
- Coding Standards, Code and Design Reviews, Pair Programming
- Technical Debt, Refactoring, Unit Testing (TDD, BDD, ATDD)
- Iterative Development, Incremental Development
- Version Control, DVCS, Integration
- Continuous Delivery, Continuous Release, Feature Toggle
-
Software Engineering
- http://en.wikipedia.org/wiki/Software_engineering_professionalism
- http://en.wikipedia.org/wiki/Software_engineering
- http://en.wikipedia.org/wiki/Software_crisis
- Book: Fred Brooks, The Mythical Man-Month Added in 2020
- Editorial: Tom DeMarco, Software Engineering: An Idea Whose Time Has Come and Gone?
- Agile
-
Lean
- http://en.wikipedia.org/wiki/Lean_software_development
- http://en.wikipedia.org/wiki/W._Edwards_Deming
- Video (59 min): Barry Hawkings, Agile, Lean, and the Space Between
- Waterfall
- Extreme Programming
- Scrum
- http://en.wikipedia.org/wiki/Scrum_(development)
- Blog Post: Ron Jefferies, What is Scrum?
- http://www.scrum.org/
- Video (57 min): Mike Cohn, Getting Agile with Scrum
- Kanban
- http://en.wikipedia.org/wiki/Kanban_(development)
- Video (59 min): Rachel Davies, Moving from Scrum to Kanban
- Video (51 min): Dave White, Intro to Kanban
-
DevOps
- http://en.wikipedia.org/wiki/DevOps
- Blog Post: Matt Watson, What is the Ops in DevOps?
- Adaptive Leadership
- Blog Post: Liz Keogh, Cynefin for Devs
- Blog: Roy Osherove, Elastic Leadership (or as a podcast (37 min))
- User Stories
- System Metaphor, http://www.extremeprogramming.org/rules/metaphor.html
- Video (59 min): Eric Evans, DDD: putting the model to work
- Book: Eric Evans, Domain-Driven Design
- Book: Mike Cohn, User Stories Applied
- Blog Post: Scott Ambler, Introduction to User Stories
- Blog Post: Roman Pichler, User Stories are Not Enough to Create a Great User Experience
- Blog Post: Steve Rogalsky, Story Mapping
- Blog Posts: Timothy Klenke (shameless plug): The User Story Is The Thing & Reason Based User Stories
- Velocity
- Blog Post: Martin Fowler, It’s Not Just Standing Up: Patterns for Daily Standup Meetings
- http://en.wikipedia.org/wiki/Burn_down_chart
- http://en.wikipedia.org/wiki/Kanban_board
- Blog Post: Bernd Schiffer, 7 Steps to Build a Kanban Board for a Scrum Team’s Impediments
- Article: Creating and Interpreting Cumulative Flow Diagrams
- Sustainable Pace, http://www.extremeprogramming.org/rules/overtime.html
- Deployment Cycles
- Cartoon: Work and How We Do It
- Video (30 min): Jez Humble, Continuous Delivery
- Book: Jez Humble and David Farley, Continuous Delivery
- Retrospectives
- Book: Ester Derby and Diana Larsen, Agile Retrospectives
- Code Quality
-
Code and Design Reviews
- Blog Post: Jason Cohen, 11 proven practices for more effective, efficient peer code review
- Blog Post: Kevin Burke, Why code review beats testing: evidence from decades of programming research
- Pair Programing
- Book: Laurie Williams and Robert Kessler, Pair Programming Illuminated
- Video (10 min): Laurie Williams, Introduction to Pair Programming
- Blog Post: Jeff Atwood, Pair Programming vs. Code Reviews
- Video (30 min): Angela Harms, Does Pair Programming have to suck?
- Video (50 min): Woody Zuill, Mob Programming, A Whole Team Approach
- Community: Pair With Me
- Community: Code Retreat
- [parody] Video (2 min): Spooning
- Refactoring and Technical Debt
- Video (5 min): Ward Cunningham, Debt Metaphor
- Blog: Ron Jeffries, on Technical Debt
- Book: Robert “Uncle Bob” Martin, Clean Code (or as a video series)
- Book: Martin Fowler, Refactoring
- Video (7:26): J. B. Rainsberger 7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development Added in 2020
- Automated Testing: TDD, BDD, ATDD
- Video (50 min): Michael Feathers, The Deep Synergy Between Testability and Good Design
- Book: Roy Osherove, The Art Of Unit Testing
- Blog Post: Martin Fowler, Mocks Aren’t Stubs
- Blog Post: Dan North, Introducing BDD
- Blog Post: Peter Provost, Kata - the Only Way to Learn TDD Added in 2020
- Version Control
- Video (63 min): Source Control Strategies Panel
- Blog Post: Paul Hammant, What is Your Branching Model?
- Video (61 min): Martin Woodward, Version Control On Your Terms
- Book: Scott Chacon, Pro Git