Thesis : let's write the first thing that comes into our heads

  • Problem : Ouch! That hurt. When we needed to scale it or change it we couldn't understand a damned thing and it took months.

Anti-thesis : let's sit down and design it properly making allowances for all the changes we might need to make. And discipline ourselves not to cut any corners.

  • Problem : Huh? The project took 3 times as long as we initially estimated, and we still didn't expect X as a requirement. What went wrong?

Synthesis : ExtremeProgramming / WorseIsBetter. Learn to only address immediate concerns, but always keep ReFactoring, WorkingTheCode so that it's always malleable and ready for further extention.