SmoothSpan Blog

For Executives, Entrepreneurs, and other Digerati who need to know about SaaS and Web 2.0.

The X in Software Engineering: Exactly!

Posted by Bob Warfield on January 29, 2008

Thanks for this from Discipline and Punishment:

The underlying desire — that programming ought to involve rigorous, logical reasoning about clearly defined abstractions — is largely correct. The confusion arrives when the content — this ability reason precisely about very imprecise things (like the real world) — is confused with the form, some magical ‘X’ that instantly elevates any activity to programming. Unfortunately, like all idolatry, it’s not a rational conclusion so disabusing individuals of such notions is terribly difficult. But I think they all come around eventually. All disciplines that don’t participate in metaphor, that revolve around creativity in the face of severe constraints, eventually come to realize that less is more.

5 Responses to “The X in Software Engineering: Exactly!”

  1. ilyabm said

    software development is craft – neither math, nor science, nor engineering.
    Craftsmen make things that are alike, but everyone of them is handmade and unique. High-tech craft uses math to first build a model of the things that is to be made. Craft is not science – it does not study any phenomena or creates new theories, although sophisticated craft uses results of scientific research. Craft is not art – it is appreciated when the products of craft are aesthetically pleasant, but they need to function in teh first place. Craft is not engineering – engineering is about developing a predicable mechanical process of manufacturing some complex product sby the workers (people or machines) that do not come close to understanding the complexity of the product – they just repeat certain actions over and over – that’s why it is possible to automate the production.
    Software development is the ultimate craft of the modern time. Don’t you think? 🙂

  2. smoothspan said

    Ilyabm, software development can be practiced as craft, science, or engineering, depending on the practitioner and what they want to achieve. You’ve pointed out how it can be a craft. If you don’t think it can be a science, you haven’t had enough contact with academia. It can be a very formal science replete with complex mathematics and experimentation. It can also be practiced as engineering, because it is possible to create a repeatable process. Any lack of repeatability is due all too often to factors that would make it impossible to achieve repeatability in any profession. In particular, if you want repeatability, you design in margin for error.

    The structural engineers who worked on the plans for my house told me they normally factor in 8x over design on structure. How often have you seen a software project where the schedule was estimated, and then the team was allowed 8x longer as a margin to ensure repeatability? How many times have you seen a “repeatable” engineering project in another discipline fail to be delivered on time? Perhaps not as commonly as software, but remember, they had a lot bigger safety margin.



  3. Jeff Bean said


    I’m in the camp of less is more. Having worked lots of marketing programs and tracked them through Saleforce, I wish the software was a bit less robust. It feels overbuilt for the majority of the market. I’m intrigued by open source SaaS, and one company that appears focused on making marketers’ jobs more human and intuitive. Have you heard of LoopFuse? If so, would love your opinion on this open source SaaS approach. I don’t work for them or have any friends there. I’m just a marketer navigating the software market in search of best approach to measure and track campaign value.


  4. smoothspan said

    Jeff, I’ve heard of loopfuse, but know very little about it. Salesforce started out lean and mean, at least compared to conventional CRM like Siebel. They are adding a lot of functionality, which can be good, but Force sure looks like Same Old Enterprise Software customization, which is bad.



  5. […] The X in Software Engineering: Exactly! […]

%d bloggers like this: