List of PSI labs

From Inforail
Revision as of 02:11, 19 January 2012 by Alex (Talk | contribs) (Other ideas)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Mistakes

I haven't made enough mistakes
for I have never missed a class.
Today, I'm reaping the reward -
I failed the most important test.
I thought I learned,
but I'm a fool, and
barely now I understand,
that all this time
I built and ruled
a tiny castle made of sand.
Mistakes...
If I had had some more,
I'd save the world
from grief and gore...


The PSI labs rely on two basic ideas to develop the "do it right" culture:

  • A system will be used by people, therefore it has to be designed for people.
  • A system will be maintained by programmers, therefore it has to be designed in such a way that it doesn't turn into those programmers' worst nightmare.


The labs will be focused on the typical mistakes made by programmers at the design phase. These errors may cause some obvious defects, but most often they are subtle and they only show up later in the lifetime of a program (usually it is when you think about adding some new features). In those circumstances you have two options:

  • fix it with some ugly kludges
  • throw the old program and re-write it from scratch (without repeating the old mistakes [probably making new ones:-])

Making mistakes is the most effective way of learning; the trick here is that I do all the "mistake making" and you do all the "learning".


Topics

Other ideas

Quotes

User experience

  • People don't want to buy a quarter-inch drill. They want a quarter-inch hole.
  • Machines should work. People should think. Richard Hamming
  • Build a system that even a fool can use and only a fool will want to use it.
  • Computers are unreliable, but humans are even more unreliable. Any system which depends on human reliability is unreliable. Gilb

System design

  • All models are wrong, some models are useful. George Box
  • There are two ways of constructing a software design: one way is to make it simple so that there are obviously no deficiencies, and the other is to make it so complicated that there are no obvious deficiencies. C. Hoare
  • Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Martin Golding.
  • If you find a solution and become attached to it, the solution may become your next problem.
  • We'll cross that bridge when we come back to it later.
  • 5 weeks of hard work can save you 5 days of planning.
  • Walking on water and developing software from a specification is easy if both are frozen.