- Continous Integration (CI)
- Code is built + Unit/Integration tested on every check-in
- Tests are executed on an environment that is downscaled in comparison to the production environment
- Build artifacts are stored in a version controlled artifact repository
- Build artifacts of a successful build are automatically deployed on a test environment
- ... now you are ready for the next Step: Continous Delivery
- Continous Delivery (CDel)
- Your application is deployable every time
- Your teams focus is on releasable software instead of focusing on features
- Every team member gets a fast feedback on every change whether the artifact is releasable
- On demand deployment of every version per mouseclick
- ... now you are ready for the next Step: Continous Deployment
- Continous Deployment (CDep)
- CDel vs. CDep: CDel - You are decinding when to deploy into production. (You have the choice) CDep - Every successful build is getting deployed to production automatically.
- Feature Toggles are making it possible to deploy to production without using the new (work in progress) features
- Pro: Fast/Early Feedback also for the deployment of features that are currently in development
YAGNI (You aren't gonna need it)
"Always implement things when you actually need them, never when you just foresee that you need them." - Ron Jeffries
KISS (keep it simple, stupid)
Most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided.
Overengineering
The act of designing a product to be more robust or have more features than often necessary for its intended use.
Technical debt
Reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.