    <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: &quot;They&quot; Have Their Reasons</title>
        <link>https://members.accu.org/index.php/articles/257</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>




<div class="xar-mod-head"><span class="xar-mod-title">Journal Editorial + Overload Journal #65 - Feb 2005</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/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c184/">Journal Columns</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c185/">Editorial</a>
<br />

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

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

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

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c147/">65</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c185-147/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c185+147/">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: &quot;They&quot; Have Their Reasons</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 19 February 2005 16:35:57 +00:00 or Sat, 19 February 2005 16:35:57 +00:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e18" id="d0e18"></a></h2>
</div>
<p>People, by and large, work by trying to achieve goals - and it
is by understanding their goals that we can best understand their
behaviour. That is why &quot;user stories&quot; are such an effective way of
capturing requirements (most approaches to requirements capture are
effective when they are used with a focus on what is being
attempted). But, as anyone that has done requirements capture
should be able to tell you, people tend to be poor at explaining
what their goals are. Without guidance they will focus on how they
expect these goals to be achieved.</p>
<p>Contrast the following directions to a colleague's desk:</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>&quot;Go through those double doors, across the office and through
the next ones, down the stairs to the next floor, turn left and go
through the security door, follow the corridor around to the left
and right, when you go through the next door he's over to the right
by the window.&quot;</p>
</blockquote>
</div>
<p>With:</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>&quot;About twenty feet in that direction and one floor down.&quot;</p>
</blockquote>
</div>
<p>Which is easier to understand? Or easier to implement? I'd take
the goal oriented version - which tells me where I'm trying to get
to - every time.</p>
<p>More importantly, the first explanation is much more susceptible
to changes in circumstances: the stairs being out of use, extra
doors being introduced on the corridor...</p>
<p>A couple of years ago I spent several months working with
business analysts who regularly produced requirements specification
documents that read like the first quote above. Actually, they were
worse: although the business analysts avowed no special knowledge
of computers, and especially of user interface design, they
included screen layouts. I was involved for several reasons, but
two important ones were that the customer didn't accept the
resulting software (it didn't address their requirements) and that
the requirements capture process was far too slow (at the rate it
was going it would take several times the agreed time-scale for the
project).</p>
<p>It didn't take long to establish that the business analysts
didn't enjoy writing this stuff. Or that the customers struggled to
approve it (or &quot;accepted it&quot; without agreeing for contractual
purposes). Or that errors and omissions were not detected until
late in the development cycle (integration testing or acceptance
testing). Or that the developers were frustrated into blindly
implementing things they didn't pretend to understand. And if a
change in understanding required changes to the product it was an
intractable problem to find all the documents affected.</p>
<p>Fortunately, by the time I got involved, the project was
suffering sufficient pain that enough people were willing to try
something else (so long as I took the blame if it didn't work).
Having quickly read Cockburn's &quot;<i class="citetitle">Writing
Effective Use Cases</i>&quot; I chose to introduce goal oriented
&quot;stories&quot; describing what people would be doing with the system we
were developing. We also dispensed with screen layouts and
substituted lists of items to be input and presented. The customers
found the resulting documents more accessible and contributed more
to their creation, the business analysts found the documents easier
to produce, and the developers felt they could identify and deliver
what was wanted. Everyone thought it an improvement.</p>
<p>Why then had the &quot;old way&quot; become established? Asking the
business analysts got responses along the lines of &quot;we don't like
it, but that is what they [the developers] want&quot;. The developers
had a different version &quot;we don't like it, but they [the business
analysts] have to do it that way for customer sign off&quot;. Somehow,
no one had been happy, but had just accepted that things were the
way they were because &quot;they&quot; needed it that way.</p>
<p>&quot;They&quot; is one of those stereotypes of social life - a faceless
other that behaves in inexplicable (and often damaging) ways. Users
try to do the weirdest things with the software we supply them,
managers seem determined to stop the work getting done, prospective
employers eliminate talented individuals during the recruitment
process, developers show no interest in avoiding problems,
accountants shut down successful projects. &quot;They&quot; cause many of the
problems and irritations we face in life. &quot;They&quot; are stupid,
malicious or ignorant.</p>
<p>Nonsense! If you can find and talk to them you will find that
&quot;they&quot; are normal human beings trying to achieve reasonable goals
in reasonable ways. And, all too frequently, &quot;they&quot; are just as
dissatisfied with the state of affairs as you are.</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>When I'm using a piece of software I don't suddenly lose all
sense - maybe it is hard to figure out how to achieve my
objectives. I'll try things that make sense to me to try - which is
not always what the developer expected. (Even when the developer
has been diligent about getting feedback on the user interface
design.)</p>
</li>
<li>
<p>If I'm running a project then I don't forget that code needs to
be written, but sometimes ensuring that the functionality meets the
need or ensuring that funding continues requires something else
gets done first.</p>
</li>
<li>
<p>If I'm recruiting I need to avoid people that won't be effective
in the organisation - bringing someone disruptive into a team costs
their time and that of others. Given that cost is it surprising
that employers are not prepared to &quot;take a chance&quot; when there is
anything that raises doubts about the suitability of a
candidate.</p>
</li>
<li>
<p>If I'm developing software I can only tackle so many issues at
once. If an organisation lacks a repeatable build process and
version control then these are things that need fixing before
looking at the proposed list of new features. Some problems are not
serious enough to warrant effort right now.</p>
</li>
<li>
<p>If I'm funding work I want to see a return (not necessarily
financial) that is better than alternative uses of those funds. The
way in which software developers sometimes report results can make
it very hard to assess that return.</p>
</li>
</ul>
</div>
<p>I don't consider any of these goals inexplicable or unreasonable
- nor should you.</p>
<p>It is a refusal to consider the reasons for the way &quot;they&quot; act
that builds the problems, and labelling them &quot;they&quot; is an
abdication of rationality. While there is a role for &quot;they&quot; and
&quot;we&quot; in thinking it is one that defines allegiances and trust, not
one that helps to resolve problems.</p>
<p>Some of this thinking seems to influence the content of
Overload: many potential authors think that &quot;they&quot; (the editorial
team) are only interested in C++, while the editorial team wonder
why &quot;they&quot; (the authors) hardly ever submit material relating to
other languages. Admittedly we do get a few Java articles, but
where are the C, Python, C# and SmallTalk articles? I know there
are members that are interested in these technologies, so there
should be both an audience and people with the knowledge to write
something. Come to think of it, if you think &quot;they&quot; are not
publishing the right articles why not get involved? You could write
articles, you could even join the team - we've not recruited any
&quot;new blood&quot; to the Overload team for two years now. Maybe &quot;they&quot;
could include you?</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e73" id="d0e73"></a>ACCU
Certification</h2>
</div>
<p>As I'm writing this a discussion has sprung up on <tt class=
"literal">accu-general</tt> about a topic that resurfaces every
year or so: &quot;why is there no effective qualification for software
developers?&quot; There are organisations (like the BCS, IEE or EC[UK])
that might be thought suitable for supporting such - but &quot;they&quot;
don't provide anything the list members feel is appropriate. This
same issue was raised in Neil Martin's keynote at the last ACCU
conference when he suggested that the ACCU step in and address this
need. As a result, the ACCU Chair (Ewan Milne) asked me to arrange
a &quot;Birds of a Feather&quot; session for those interested in exploring
this possibility, and to represent the committee there. The session
was well attended, and there seemed to be a strong consensus that
there were potential benefits for both developers and employers in
some sort of certification-of-competence scheme. It was also
thought that it would be a good idea for ACCU to get involved in
producing such a scheme. Questions were raised about what was
involved in becoming a certificating body, what it was practical to
certify and what the mechanism for certification might be. There
seemed to be a lot of interest - so Neil promised to research the
certification issues and I took email addresses for those
interested in participating in further discussion and got the
<tt class="literal">accu-certification</tt> mailing list set
up.</p>
<p>Clearly there was a misunderstanding: I expected &quot;they&quot; (the
people that signed up) would involve themselves in doing something.
It seems that those that signed up expected that a different &quot;they&quot;
(Neil, myself or the committee) would do something. In practice
only Neil did something - he reported back as promised: ACCU could
reasonably easily get itself recognised as a &quot;certification body&quot;
for this purpose. The details of what is involved were circulated
via the mailing list. And that was the end of it until the
discussion on <tt class="literal">accu-general</tt>.</p>
<p>It is easy to be critical and say that &quot;they&quot; should do
something. In this case that &quot;they&quot; (the ACCU) should do something
about certifying developers as being competent. But just think for
a moment: you are a member of ACCU, and ACCU works through members
volunteering to do things. So you are one of this particular
&quot;they&quot;, and you know exactly why &quot;they&quot; are doing nothing - because
you are doing it yourself.</p>
<p>In practice though, I feel that the ACCU already does provide a
useful qualification: I did hundreds of &quot;technical assessments&quot; for
a client last year - most candidates failed in ways that gives
cause for concern about an industry that employs them.
(Interestingly I had feedback both from the group that I was
working with about how competently the &quot;passes&quot; fitted in and also
from other groups in the client organisation that decided to employ
some of those I had failed at interview - and then found them
deficient.) The qualification that ACCU provides? I can't recall
any candidates that mentioned the ACCU on their CV failing the
technical part of the process (while the client wasn't prepared to
exempt them from the assessment on that basis, the manager
selecting the candidates to interview noticed this).</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e93" id="d0e93"></a>Before you
go</h2>
</div>
<p>I was very pleased with the feedback on <tt class=
"literal">accu-general</tt> and elsewhere to the report by Asproni,
Fedotov and Fernandez on introducing agile methods to their
organisation (I'd spent some time persuading them to write this
material up). As a result I reviewed some material that Tom Gilb
had passed me at an Extreme Tuesday Club meeting last year looking
for things that might interest Overload readers. Amongst this
material was a couple of articles (Jensen and Johansen) that appear
in this issue by kind permission of their authors. I hope that
these too meet with your approval.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
