All problems come from humans.
You need a vision and a leader.
- Well defined vision for the project
- A Bridge (leader) who has expertise both in humans and in software manufacturing - a must for critical projects
- Human problems
- Technology decisions
- Business challenges
- Areas of expertise
- Software architect
- UI/UX designer
- Backend developer
- Frontend developer
- Automated and manual testing
- Content editor (media, translations)
- Account administrator at infrastructure and other service providers
- Maintenance (DevOps, monitoring)
- Well oiled internal communications (Clubhouse, Yac, Slack instead of emails)
- Separating design and coding
- Paying back technical debt from the very first month (at least 1 full day every month)
- Going back one step when humans must touch production environments
- Operating transparently, having a public roadmap, changelog and status page (stackshare.io)
- Specialized infrastructure and other service providers
- All Hungarian service providers are blacklisted
- Avoiding installation of new major version releases of any software in production, letting others test it first
- UI can be designed from style guide/brand guidelines
- High percentage of general/abstract code, low amount of project specific code
- Running solid CI from the very first commit: syntax check, CS, static analysis, unit tests, end-to-end tests
- Monitoring backend and frontend and reacting to reports (that is the sole purpose of reports)
- Upgrading all software you depend on once a month (UPGRADE.md)
- Easy onboarding (videos)
- Designing and implementation of a fantastic and engaging UX
- Helping users, not letting them reach a dead end
- Being in very close contact with users (customer relations: marketing, sales, support)
I've received a link from @iamgergo
https://basecamp.com/shapeup/shape-up.pdf