Design - Production Methodologies
Design Process
-
.
-
.
-
DesignProcess: Elon Musk's design process {1:22 -> 4:24} .
-
"Make your requirements less dumb".
-
"Delete the part or process".
-
"Possibly the most common error of a smart engineer is to optimize a thing that should not exist".
-
-
"Simplify and optimize".
-
"Accelerate".
-
"But don't go faster if you are digging your own grave".
-
-
"Automate".
-
-
3 ideas from the book 'Refactoring by Martin Fowler' .
-
The ideas:
-
Write code for humans to understand.
-
Make code that can be 'maintainable' and that can be changed in the future.
-
-
Only after 3 strikes do a refactor.
-
Do not refactor initially. Focus on the goal, leaving refactor for when the topic becomes a problem.
-
-
Make easy changes first, then make the complete changes.
-
This is because there is usually a lot of uncertainty, so wait to see which uncertainties will arise, without spending so much time on the first uncertainty you encounter.
-
-
-
The first two ideas are the most interesting:
-
-
"Fail fast"
-
Think, write notes, prototype. All of it quickly, to avoid spending time on something that would not survive in the future.
-
-
Game Development Caution - Fear of producing new things in a team .
-
Interesting.
-
Apps
-
Gather .
-
Pixel art app for meetings.
-
Software Testing
Methodologies
DevOps
-
It is an iterative method, in a loop.
Implementation
-
DevOps:
-
DevOps == 'Development', 'Operations'.
-
A broad concept, something like a philosophy.
-
-
DevOps:
-
DevSecOps == 'Development', 'Security', 'Operations'.
-
It's DevOps but with emphasis on Security, in addition to the other concepts.
-
-
DevOps Engineer:
-
It's a role.
-
Use of CI/CD Pipeline.
-
-
SRE:
-
It's a role.
-
SRE == 'Site Reliability Engineering'
-
Part of DevOps. As the name says, but focused on 'reliability'.
-
Continuous Integration / Continuous Deployment (CI/CD Pipeline)
-
Steps:
-
Code repository:
-
Git.
-
-
Containers / Packaging.
-
Explanation:
-
Similar in functionality to a Virtual Machine, but focused on the app rather than the Operating System.
-
-
Docker.
-
-
Build tools / Package managers:
-
Maven.
-
Gradle.
-
Npm.
-
-
'Push to artifact repository':
-
Nexus.
-
DockerHub.
-
-
-
Automation of all steps (Build automation):
-
GitLab.
-
GitHub Actions.
-
TeamCity.
-
Jenkins.
-
-
Cloud infrastructure as a service:
-
AWS (Amazon).
-
Google Cloud.
-
Microsoft Azure.
-
Alibaba Cloud.
-
IBM Cloud.
-
SalesForce.
-
Tencent Cloud.
-
Oracle Cloud.
-
Waterfall
-
Understanding S-Type, P-Type and E-Type Systems and why Waterfall is generally bad .
-
The argument is that most productions are based on creating something that is an E-Type System, which indicates a constant feedback loop is needed to produce a good application. Since Waterfall does not loop, it does not fare well in this type of production. It is argued that Waterfall is only valid for S-Type Systems (the simplest and most predictable of all).
-
Be careful with the central graph in the video (Stacey Matrix). He inverted the direction of the axes and only fixed it around 7:00.
-
Agile
-
.
Lean (for Software Development / Startup)
-
Supposedly used for 'Anarchy' productions, where there is no certainty and no agreement.