« No Password Fields | Main | Dick Hardt on Identity 2.0 (OSCON 2005) »

Flexibility is Overrated (OSCON 2005)

David Hannson, originator of Ruby on Rails, gave a talk on Rails as a keynote today. Much of it was things I’ve already covered on the tutorial, but he said something that I think developers too often overlook:

Flexibility is overrated.

When you insist on flexibility over everything else, you sacrifice velocity and agility. Constraints are liberating. When you don’t have to worry about every small detail, you can follow a path and worry about infrastructure.

I often tell engineers who scoff at software as somehow less rigorous because we can’t use math to analyze what we do the way engineers do their designs that they’re lucky the world constrains them so that relatively simple math works. Think about how hard engineering would be if the world wasn’t mostly a linear place where boundary conditions were meaningful. Differential equations, as used by engineers, would be worthless.

I agree with Hannson: we should be willing to trade flexibility when it gives us better understanding and agility.

Posted by windley on August 4, 2005 12:28 PM

See related posts:

1 Comments

Comment from Robert Lucente at August 6, 2005 8:48 AM

Most engineering taught at the undergrad level deals with Linear Time Invariant (LTI) systems. There you can use standard calculus and ordinary differential equations. Even this stuff is hard. Now, when try to tackle some real world problems which aren't linear or time invariant, then you end up with complex eqs (non-linear) and partial differential equations. Software is definitely non-linear and time variant. Software is definitely "time variant". The output is definitely not just a function of the current input. The output of sw is dependent on what happened previously. I think the buzz word is that the system "has memory".