A basic checklist for starting a new project.
- What problems are we intending to solve?
- Figure out which stakeholders we can talk to.
- Discuss non-functional requirements, which ones apply, which does not, how does this affect the project? Security, Usability, Performance, Scaling, ...
- Any new technologies we want to use on this project?
- Make sure everyone becomes familiar with the technologies we're planning to use. Do a workshop, watch presentations, discuss.
- Get a shared understanding within the team of what we're proposing to build.
- Discuss scenarios
- Draw on whiteboard
- ...
- Talk to the stakeholders about the project and our initial ideas.
- Incorporate any feedback we get.
- Define a goal for iteration 1. Preferably something that can be demoed.
- Take notes and improve this document.
- Set up a development environment.
- Get a walking skeleton going early for shared understanding and get basic technical issues out of the way.
- Look at the libraries list.
- Set up CI.
- Set up deploy to staging and production.
- Set up exception monitoring.
- Set up dashboard.
- Spend time on automating and documenting as much as possible to make this faster next time.
- Implement goal.
- Demo it.
- Adjust as necessary.
- Are we done? If not, define a new goal.