Consulting
Musings
Bio + Résumé Contact
Home >> Musings >> Software Development

Software Development

Anyone can tell you that writing software is hard. But that analysis is not precisely correct. Writing software is actually easy, just like digging ditches is easy (if done by pointing and clicking). Deciding what software to create, and how it will be architected, written, certified, tested and released, is not only complex, time intensive, and expensive, but is almost never actually done. Most software is written by diving in and coding toward an elusive end.

The classic analogy is that software is like any other ware: incredible experitise is required for design and tooling, but only skilled labor is needed for manufacturing and distribution. Architects and engineers are expensive, educated, experienced professionals. Electricians, plumbers and carpenters are trained craftsmen. Truck drivers and line workers are unskilled laborers. It seems like the modern endeavor of software development ought to correspond to other costly, complicated, large-scale projects, with tier upon tier of careful structure. The curious thing about software is that this is just generally not how it's done.

It is this single facet of software development---that all of the work from start to finish is often completed entirely by highly-paid, ultra-creative techno-wizards---that makes software development hard. The problem space itself is no more fundamentally difficult than creating any other complex thing. However, the discipline has developed without the usual hierarchy associated with big projects. The problem with programming is the programmers.

Blog: Turning Left Against Traffic
New on robbyslaughter.com Upcoming Travel
Austin, TX
Aug 28-Sep 2
Email List
Email List
signup@right.here
Low Volume, Spam Free