> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/general-paradigms/scientific-method.md).

# 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
