Please enable JavaScript.
Coggle requires JavaScript to display documents.
Understanding Software (Understanding Software (The components of software…
Understanding Software
-
-
-
Debugging
-
Source of Bugs
-
-
Responsilbility
Programmers responsibility is writing simple code, so that the future programmer reading your code should understand it
The simpler the code is, the fewer bugs you will have
-
Make it never comeback
When solving a problem in codebase, you're not done when the symptoms stop. You're done when the problem has disappeared and will never come back
-
-
Engineering in Teams
-
Developer Productivity
-
Do not measure lines of code, Computer programming is a skill, not a job
-
-
Kindness and Code
-
-
During Code review, comment on the code not the developer
Understanding Software
What is a computer?
A computer is a piece of matter that can carry out a series of symbolic instructions and compares data in assistance of a human goal
-
Software as Knowledge
Software is fundamentally, a solid object that is made of knowledge. It follows all the rules and laws of knowledge. It behaves exactly as knowledge behaves in just about any given situation, except that it’s in concrete form
-
Philosophy of Testing
The Purpose of test is to deliver knowledge about the system, and the knowledge has different levels of value.
-
-
-
All tests have at least 3 results - Pass, Fail, Unknown
A full set of tests, when combined gives us the knowledge we want to gain
Types of Tests
Unit Testing
Unit test should be testing the behaviour of the component, not its implementation
Integration Testing
If two components are hard to test due to their complexity of their interactions, this indicates that either one or both of them should be refactored
End-to-End Testing
If a system is designed in such a way that it can only be tested via end-to-end test, then that is a symptom of broad architectural problems in the code
-
-
-
-
-
Developer Hubris
When a programmer is truly clever, what will show for users is that your program is awesome. It is so awesome, the user hardly notices it's there. That is true brilliance
The true humility required of the developer is the willingness remove their identity from the users world
-
Users have problems, Developers have solutions
Problems come from users, not the developers
When you solve developer problems instead of the users problems, you're putting a lot of effort into something that isn't going to help people in the best possible way
-
Success comes from execution, not innovation
Only Innovation doesn't lead to success, Execution does.
-