# What is question-driven development?

Question-driven development is a technique I use to manage context-switching and getting "unstuck" in software development tasks.

It consists of a list of questions I have about a task which I tick off when I find the answers to them.

Here is an example for a task I recently did:

- [x] How do Twitter handles get saved?
  - Also as a `Contact`, but with the `Twitter` type.
- [x] What other contact types are there?
  - youtube: 1
  - linkedin: 3
  - facebook: 4
- [x] Types to add:
	- [x] twitter
	- [x] facebook
	- [x] linkedin
- [x] Add `voice` to `cell` and `phone` numbers
1
2
3
4
5
6
7
8
9
10
11

Usually it ends up being a combination of a list of questions and a to do list.

It serves the purpose of:

  1. Breaking a task down into manageable steps.
  2. Identifying what uncertainties I have about a task.
  3. Making progress with a task even when I don't have the full solution yet.
  4. Keeping track of what I've investigated so far (especially useful when doing bug investigations!).
  5. Reminding me where I was after context-switching.
  6. Reminding me why I made certain decisions.

Newsletter

If you'd like to subscribe to my blog, please enter your details below. You can unsubscribe at any time.

Powered by Buttondown.

Last Updated: 11/20/2023, 10:04:51 AM