- Start with an idea
- Choose a language(s) (C#)
- Choose an IDE (Visual Studio)
- Choose a cloud (Azure)
- What architecture will we use (containers/PaaS/VM scalesets) (the answer should NOT be VM's)
- What is the plan for resilency
- What is the plan for backups
- Choose a DevOps platform (GitHub)
- Create an organization
- Create a repo
- Setup branch rules/policies (require a code review)
- Creating the new/empty project
- Setup basic CI
- Creating basic empty projects (Rest API, Website, etc)
- Creating basic automated test projects - to prove that we are deploying working code
- unit/integration tests
- smoke/functional tests
- code coverage
- Add editor config file (to take the opinion out of code styling)
- Add infrastructure as code to deploy to each needed environment (Dev, QA, Prod?)
- Back to GitHub
- Setup dependabot to automatically update dependencies
- Setup security to check for secrets and unsafe dependency
- Setup basic CD, to deploy to each cloud environment, with smoke tests and environment approvals as needed
- Project planning
- Set goals/roadmap. What does Alpha/Beta/GA look like?
- Create Epics
- Create Features
- Create PBI/ User Stories