    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Editorial</title>
        <link>https://members.accu.org/index.php/journals/341</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>


        <h2>Journal Articles</h2>


<div class="xar-mod-head"><span class="xar-mod-title">Overload Journal #57 - Oct 2003 + Project Management</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c78/">Overload</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c155/">57</a>
                    (12)
<br />

                                            <a href="https://members.accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c13/">Topics</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c66/">Management</a>
                    (95)
<br />

                                            <a href="https://members.accu.org/index.php/journals/c155-66/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/journals/c155+66/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Editorial</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 02 October 2003 22:56:14 +01:00 or Thu, 02 October 2003 22:56:14 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a></h2>
</div>
<p>Afew weeks ago I returned from holiday to find a lot of postings
on the <tt class="computeroutput">accu-general</tt> mailing list
that had been initiated by my last editorial. The thing that
started them was a posting by Allan Kelly (which also appears as a
&quot;letter to the editor(s)&quot; in this issue). The thing that struck me
about the discussion was that it generalised rapidly from the
evolution of Overload to the evolution of software development as a
profession.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e27" id="d0e27"></a>Software
development as a profession</h2>
</div>
<p>Is software development a profession? Clearly, many contributors
to the mailing list feel that it should be - they bemoan the lack
of accreditation that is available to architects, doctors,
accountants, and so on. Some of them even proposed that the ACCU
might fulfil this role! (In the UK there is an organisation better
constituted to do this - the BCS - but it lacks the recognition and
authority that would be needed.)</p>
<p>How does a profession come to be? It requires several things:
for the professional it requires there to be a strong incentive to
be recognised as a professional (this could be legal, financial, or
access to market). For the client, a strong incentive to employ a
professional (this could be legal, guarantee of quality, or access
to market). Is this what we see in software development?</p>
<p>At the weekend I was talking to a friend of mine from
university, he works in software development and is a qualified
project manager. To me this was a novelty - most of the project
managers I've worked with have no qualification and, indeed, don't
seem to have ever opened a book on the subject. (Mostly they have
attained the role because that is what you do after enough years as
an analyst-programmer, business analyst, or whatever.) It seems
that his qualification (Prince 2) has some market value - there are
organisations that require it, but hasn't been enough to keep him
in employment recently. It is also hard to assess for those not
familiar with it: it relates to a particular method which may or
may not be suitable for a specific project.</p>
<p>The situation is worse for developers - what recognition do
developers get for having enough interest in what they are doing to
open a book? There are qualifications in particular technologies -
but these are often short-lived and don't always reflect a
developer's primary skill: that of solving problems. This isn't
just a problem for the developer, but also for the prospective
employer: how are they to identify the useful candidates?</p>
<p>This last question has vexed me somewhat over the last couple of
weeks - I've been doing technical assessments of candidates for a
client. Before I see candidates their CVs have been reviewed and
the best selected, followed by eliminating those that get poor
scores on BrainBench - but despite this selection process the
majority are clearly unsuitable. (For example, when presented with
a class hierarchy that makes use of the implementation of &quot;cat&quot; by
specialising it to produce &quot;dog&quot; they approve of this approach to
the reuse of code.)</p>
<p>But it is not typical of the job market for an employer to care
about such fine distinctions between developers - despite my
misgivings about their abilities almost all of these developers are
in work and have succeeded in a series of jobs. Typically they
assume they have done well enough on the test - displaying a
confidence in their abilities, which appears to reflect that they
are able to deliver what their employers expect of them.</p>
<p>To me it is clear that the majority of developers and the
majority of their employers neither recognise nor care about the
qualities that have been represented as &quot;professional&quot; in the ACCU.
And yet these businesses are commercially viable - they are not
being outcompeted by a few more discerning organisations. It would
appear that, for the business that employs them, there is no
commercial value to professionalism in software development
staff.</p>
<p>To me this is something of a paradox: I have repeatedly
demonstrated ways to reduce the cost and timescale of software
development. The size of the savings can be considerable - in one
organisation a cost overrun of 120% was typical (and a significant
part of the turnover), reducing this to 15% was not recognised and
the &quot;traditional&quot; approach has been reinstated. (The other
difference, which affected developers more than business costs, was
a similar reduction in unpaid overtime.) Professionalism in
software development does save time and money - it can be
demonstrated; it is repeatedly reported in books and journals; and,
it is rarely practised.</p>
<p>Where does this leave software development? Clearly, it doesn't
meet the conditions I outlined above as being necessary for
development as a profession. It isn't a profession now and it won't
be in the foreseeable future.</p>
<p>Does this mean that there is no point in being &quot;professional&quot; in
the way we approach it? I hope not: the habit of doing things right
is a part of who I am - and I have enough experience of the pain
that doing things wrong engenders to want to avoid it. I know that
a lot of you feel likewise - the ACCU seems to have attracted
developers who care about what they do. But, despite the ambitions
of some, it isn't a profession.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e50" id="d0e50"></a>Software
development as a craft</h2>
</div>
<p>Is software development a craft? In many ways this seems a much
more appropriate analogy. The degree to which it relies on the
practice of good judgement, and the extent to which this relies on
experience is suggestive of this. There are often different
&quot;schools&quot; within a craft and the variations between different
development methods and tools fits well, as does the importance of
the teachings of various masters. (Clearly the masters are those
who are sought out for this purpose, not those who appoint
themselves.)</p>
<p>The existence of several schools of software development is
clear: there are &quot;heavyweight&quot; methods (like RUP); there are
lightweight methods (like Crystal); there are weakly typed
languages (like SmallTalk); and, there are strongly typed languages
(like Java). Some proponents of each of these tend to believe that
they alone have seen the one true way - while more measured
observation will show that each has both successes and failures.
(The existence of several schools isn't incompatible with being a
profession - but it does make agreeing the criteria for any
professional qualification more difficult.)</p>
<p>What is missing from &quot;software development as a craft&quot; is a
recognised system of apprenticeships, journeymen and masters. Very
few organisations consider that &quot;I studied with Angelica Langer&quot; is
a better qualification than &quot;I glanced at a book once&quot; - and
neither, judging by the CVs I see, do developers. (In case you are
wondering I chose the example because there is at least one
organisation that looks for this specific qualification - they know
who they are.)</p>
<p>Does this mean that there is no point in seeking out the masters
to learn from them? Again, I hope not: there is far too much to
learn for trial and error to be an effective approach (especially
when it is often hard to be sure which factors affect the result).
The ACCU contributes here by providing several forums in which the
masters can be sought: mailing lists, journals and conferences.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e61" id="d0e61"></a>Software
development as a science</h2>
</div>
<p>Is software development a science? It is tempting to think that
the existence of &quot;computer science&quot; courses provides some basis for
this - but the true sciences (mathematics, physics, etc.) don't
have &quot;science&quot; in their name. And a closer examination of &quot;Computer
Science&quot; shows it to be mostly technology (there is some applied
science - mostly mathematics).</p>
<p>The essence of science is the ability to devise experiments to
test theories (at least that is how Popper and I see it). And in
software development this is singularly hard to do. There is too
much uncontrolled variability - and it isn't clear which variables
are important. There are people trying to make a science of it:
Alastair Cockburn collects anecdotal evidence about projects and
tries to identify common factors - but this work is still at a
stage where there is a lot of &quot;interpretation&quot; which may not
sufficiently repeatable to support experimentation.</p>
<p>One day there may be a science of software development, but as
far as I can tell it is a long way off.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e70" id="d0e70"></a>Software
development as a team activity</h2>
</div>
<p>One classification I had not considered until recently is the
idea that the important classification of software development is
that it is a form of teamworking. This certainly fits with my often
repeated plea for communication over documentation. And (as I
discovered recently when reading an unpublished thesis on the
subject - I hope to bring you some of this material in the future)
there are various established classifications of team behaviour and
development that are very useful in assessing development
projects.</p>
<p>Oddly, this had not occurred to me as a useful classification
despite its use in one of the first discussions I ever read on
development processes (The Mythical Man Month). This uses analogies
to teams in several different fields of endeavour to establish the
roles and interactions that have proven successful.</p>
<p>On reflection though I think this is the right answer: looking
back over various projects I find a strong correlation between the
quality of the team (rather than of the individuals) and the
results of the project. (The only exceptions I can think of are
where a good team failed - and I would ascribe the failure to
external factors.)</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e79" id="d0e79"></a>Software
development and Overload</h2>
</div>
<p>The remit of the ACCU has drifted over the years, it started
with a very narrow focus on C as the &quot;C Users Group (UK)&quot;. It has
expanded into other languages (Overload was originally the journal
of the Borland C++ User Group) and other areas of development.</p>
<p>Overload has always been more focussed on the &quot;front line&quot;
rather than on the &quot;supply lines&quot; - which has its risks as well as
its benefits. There is clearly interest in software development as
a professional activity, as a craft, as a team activity and as an
organisational function. These interests are not always compatible,
but we can try to cover them all.</p>
<p>What appears in Overload is very dependent upon what is
submitted for publication, and this covers an increasing range of
topics. But there is a commitment from the team of readers to
ensure that every article is as good as we can make it. You can do
your part by submitting great material - or just by encouraging the
authors of things you like.</p>
<p>It is up to you.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
