4 ms·
As someone who has been programming for a living for a couple of decades now I have seen more than one methodology come along and propose to solve all the "prob
by markbnj 12y ago
As someone who has been programming for a living for a couple of decades now I have seen more than one methodology come along and propose to solve all the "problems" with my craft. Like any young discipline we still have a lot of things to work out, however I find that as I get older I have less tolerance for the view that "the problem" lies in the way programmers do things. I think rather that "the problem" lies in the way customers treat the process of creating software. They approach it with a casualness and an indecisiveness which would not work in any other context where something expensive and custom was being built from scratch. I can honestly say that in over twenty years I have not been acquainted with a project that failed because the people who were responsible for writing the code couldn't get it done, or couldn't get it done fast enough. On the other hand I've seen lots of projects fail due to inadequate executive commitment, off-the-cuff estimates, evolving feature sets, etc.
- cageface 12y agoI agree with this but I think at least part of the problem is that we don't have good tools for specifying precisely what it is we intend to build. If we could create software plans as detailed and exacting as blueprints for a new building we'd have far fewer failures. Instead we toss together a few wireframes and start hacking and by the time we're done the final product is nothing like what we were originally tasked to build. As far as I can tell this just isn't the case in any other field of "engineering".
- markbnj 12y agoPerhaps, but how useful are those detailed plans and blueprints to the actual consumer of the construction service? They get studied, sure, but I think the customer is still working at the level of features and their expression in the plan, not the plans themselves which are more of an internal tool for the architect and builders. It's true that we lack widely accepted formalized design tools like blueprints, but at the same time it's interesting to note that one of the recognized problems with extensive planning and design documentation in software is that it can't keep up with evolving requirements :). So again, we can't plan because the customer has been taught to think everything is open for discussion at all times.
- cageface 12y agoI agree that client requirement sculpting is a major issue. But I think if we could give them something like the kind of detailed 3d walkthrough that's possible now in architecture, for example, we could possibly also get them to agree that no significant changes will be made once they've signed off on the plan. I have no idea how this could actually be done though. So many of the implementation details are opaque to any non-technical client.