Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Cameron and Tracey Hughes

Dr. Dobb's Bloggers

If You have to ask the Price, you need a bigger Budget

November 09, 2010

Sometimes we respond to the emails we get directly and privately because it just seems more appropriate. At other times we share our responses because we believe that our response fit some general case of potential questions or potential emails. So in the interest of time and effort we share our response to particular emails.We were recently questioned about the practicality of formal software development methods, formal languages, and specification languages as they apply to small-to-medium software development efforts in general and small-to-medium parallel programming efforts in particular. In fact, we were accused of being a little preachy and unrealistic, and that we were making assumptions about the development resources available to any given organization.

We always enjoy this type of email and at times we've answered them privately and then some pretty useful exchanges ensue. But today we would just like to share our general position on the matter. We realize there is all sorts of software cobbling going on out there with lots of the cobbling done by end-users who are technically savvy but with no formal training, education, or apprenticeships. We are personally aware of many, many small-to-medium size organizations using anyone in their organization that seems to have a knack at getting something done on the computer, as the defacto development person or group. We find finance people doubling as developers, administrative assistants doubling as web programmers, network engineers doubling as software engineers, etc. We can also appreciate some of the reasoning behind these relationships of convenience, and we understand the cost savings to the organization. We get the whole get-er-done mentality; do-it-yourself lawyering, self-diagnosing using doctor-on-the-web, making additions to the home with the help of a DVD and a visit to the Home depot. We get that. But we can't let convenience, cost savings, and as-long-as-it-works-for-now approaches violate or dictate the basic principles of software engineering.

There is a reason why engineering degrees, med school, law school, etc., take so much time. These things require highly specialized knowledge, education, training, vernacular and skill set. The student and apprentice go through years of exacting education and specialized training. One of the reasons this is necessary because the professionals that are released into society from these areas have the potential to directly affect the public safety and the good of the commonwealth. We want our buildings, bridges, roads, and amusement parks to be safe and we trust our engineers have the knowledge and the skill set to make it so. We want our medical practitioners to hold all life precious and sacred and we want them to have the requisite knowledge and skill set to preserve life and maintain health at all costs. From me and Tracey's perspective software engineering also demands this same level of responsibility to the public. You better believe we make assumptions about development resources! Here are some of them:

We assume if you are engaging in a software development effort, that you will have access to professional software engineers and developers. And that these engineers and developers are versed in the basics of software engineering and computer science and have formal training, education, or apprenticeships. We assume that your development effort will adopt one or more formal software development life cycle models. We assume that your organization either has the time or will make the time for the software engineers to effectively do their work. We assume that you can afford the software development effort. If the software development effort is going to produce software that is unsafe, unreliable, or incorrect, it's better not to produce any software at all. That's the long-winded answer. And here's the short version answer to one of our more recent and critical emails; if you can't afford to do it right, then you can't afford to do it at all. Our assumption is that you want to do it right and you want to know how to go about doing it right. Formal languages and specifications to follow ...

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.