Ours is probably the only industry which gets paid, first to do a bad job and then to keep fixing it
Recently we’ve received an email which characterizes the software profession as cited in the title.
That characterisation is not flattering, but may be appropriate. There are professions such as banking that seem to attract criminals, or should we say incurable optimists? We do not mean to imply that all bankers are criminals, but that this group contains more of them than other professions because “that is where the money is”.
Obviously, programmers does not belong to this category. To be a (good) programmer requires appropriate talent, some knowledge or even education and experience in several years of hard work. It is not very attractive even if we are relatively well paid. Unfortunately, in the eyes of our customers, clients or employers “we do a bad job and then keep on fixing it”.
In most cases the individual programmers can not be blamed for the misery. The results of their work depend on the environment, in which unrealistic goals and deadlines are set. Also on the platform (e.g. operating system) used and on the development system which are often imposed by ignorant managers.
Nevertheless, we must admit that we are responsible for the idea that software is a kind of artistic activity that does not require engineering discipline. We are responsible for sabotaging any attempts to use specifications seriously (do you know those UML or other standardized requirements documents prepared because “those of the top” want it, but never used in the generation of the software in detail?). We reject requirements for making documentation that could be useful to our successors (and even to ourselves some years later). We are responsible for using for any new task a tool (language, method) we happen to have learned, ignoring the very important paradigm that “every task requires the proper tool”. There is a long list of our sins that culminates “in code we trust”, meaning that only the final source code can represent the real documentation. But source code is usually unreadable, in that a clear overview of behavior in all circumstances is only visible with great difficulty.
Do we see a way out of this misery? Your opinion will be appreciated by other programmers.
Leave a Reply
You must be logged in to post a comment.