- Developers, product management, and customers brainstorm ideas.
What problem are we trying to solve?
What market opportunity are we trying to meet? - Developers & product management write the core user stories.
- Developers build an end-to-end product skeleton with mocks to any external systems.
- Developers spec out the core product API.
- Developers and product management iterate over the product skeleton adding the core user stories.
- Partnering with the customer; developers and product management push the product to market as quickly as possible.
- From customer feedback developers and product management enhance, rewrite, or create new user stories and apply those stories back into the product.
- Repeat 1-7
Month: December 2009
Meetings
It seems that in all my years of software development every company I work at seems to feel the need to pull people off of real work to have a meeting. Where they want to discuss some useless topic that just makes managers feel like the team is being productive by communicating status or issues. So what are good guidelines for meetings? Should we be having meetings? Here are my 3 golden rules:
- Meetings should never be scheduled; you should strive to create an environment where meetings just happen. How do you do this? Create open development environments where there are no offices or cubicles just groups of desks with lots of couches and whiteboards. In this environments meetings become organic and happen only when people need to talk.
- You should never have meetings to communicate status; that is why you use wiki’s and bug tracking tools. People who want status should just pull the status from those tools. It does not matter if you are standing up while you are giving status in a meeting or you call it agile. Status or issues should be an asynchronous activity where the people who need to know should be pulling those from the team, not slowing them down with a synchronous meeting.
- You should only have meetings for productive things like brainstorming new ideas, doing use cases, group design, discussing code, or getting the team together for drinking beer.