Scientific Method
What is it
falsifiable
dont trust experts
science is about reverse engineering nature
Scientific principles
It is adherence to Logic and Data - gathered by impartial unbiased experiments
Too much focus on logic -> mathematics, theories that may not be useful
Too much focus on data -> mechanics, can maintain stuff, but not improve it
Engineering is the use of science to economically change society one innovation at a time
Why use it
Otherwise we rely on cargo-cult, dogma, to guide out software creation
Faith and belief in experts, rather than the idea and the evidence that backs it up
personal opinions, people become biased, arguments (vi vs emacs)
Some one has an idea, it becomes popular, is used but no one questioned it
People relying on common sense, or using it as a reason
The term "Recommended Practice" or how to use it, should be a flag
Marketing to sell a product leads it to becoming the norm, being sold a magic bullet
What makes it worse and hard not to trust, is there is some grain of truth, some reasonable logic behind it
Need an impartial way of finding the best way to develop software, which is unbiased, evidence based, impartial
Use in software creation
Idea is to use scientific method to develop hypothesis/experiments that can be tested and have evidence that they work.
Agile
is about fast feedback to use improve, restart that cycle, to narrow down on what is required
Test first
Learning from feedback to improve
How to make software more like Engineering
Demand proof
Never trust the manual fully
trust the evidence - tests, source code
libraries that are used, should be read
if no source, decompile
Theory
Difference with Mathematics/logic
Last updated