| The
Column is a monthly feature that explores the world
of creativity and aesthetics.
The Never Ending
Draft
Mike
de Sousa, Director, AbleStable

It is unfortunate but likely that as soon
as the phrase "software developer" hits
the reader square between the eyes, many will immediately
move their mouse towards the browser address bar
with the view to a quick escape.
Software
development is often
perceived
of as less
creative,
and certainly less "artistic" than
many other creative activities, but before the
temptation to flee from this page wins the day,
read on. The never ending
draft that defines
the working practice of the software developer
provides an insight into both the creative process,
and
differences
in how our creativity finds its expression.
Updates
and Fixes
Software
developers update their programs for five principle
reasons:
| • |
A
program
may not be functioning appropriately and
needs updating. These
update fixes may be to visual "bugs" like
a button which has been incorrectly associated
with the
wrong graphic, or problems
with the coding or "engine" which
prevent the program from performing its intended
function
appropriately. |
 |
| • |
A
program may need revisions to work in the
light of changes or updates to the operating
system. Microsoft for example changed so
much in Vista, that even those developers
who had worked with the pre-release versions
of the
new
operating system found their software didn't
work appropriately with the public release. |
 |
| • |
The
look and feel of the GUI (Graphical User
Interface) may need improving to make the
program more user-friendly. |
 |
| • |
The
look and feel of the GUI may need reinventing
or updating for marketing purposes. |
The
fifth reason that software is updated is the
most interesting from the perspective of this
column:
| • |
Feature
creep is where software can over-emphasize
new features to the detriment of other design
goals, such as simplicity, compactness, or
bug reduction. Feature creep may result from
the feedback of users, but is more often
as a result of the desire of the developer
to constantly refine and improve their code. |
The
continuous improvement or drafting of work is
the single most important process
in producing consistently successful commercial
or artistic products. That is not to say that
the creative person cannot produce work
which results from improvisation and intuition,
however
even the most talented and able creatives are
not able to continuously produce high quality
output when relying on this strategy.
The
Obsession of Redrafting
Good
software
developers are often fixated with order, syntax,
and literal interpretation. Those developers
who aren't so great may be more rounded
people, but their lack of obsession on the
minutia of
ensuring their code performs its task in an elegant
and cohesive manner, makes them less effective
at delivering robust and effective software.
The
outstanding software developer cannot help themselves,
they have a compulsion to produce code that outperforms
the previous draft, and then
to improve it further, then further still. It
is an endless and unremitting quest that often
infuriates others like the directors and marketing
department who
do not care so much about what could be better,
but
rather what can
be
promoted
and sold immediately.
The
software developer's creativity is focused towards
a kind of
poetry
of grammar.
That is,
they seek
to find
the most efficient and succinct way of
expression given the confines of the computer
language being
used. The difference with their poetry is that
it never arrives at a journey's end, nor ever
becomes more than functional.
The
Sum of the Whole
Software
developers, like any creative professionals,
have a body of
knowledge
they call upon to write their code, but
they also often use "components".
These components are segments of pre-written
code that have
often been produced by a different developer
that performs
a specific task that is crucial, or will add
benefit to, the program in development.
Let's
say you want to create a scheduler program
that has a calendar.
Rather
than writing your own original code for the
calendar you might acquire (either as open source,
or from
a commercial component developer) the
calendar component,
then integrate that
new segment of code into your existing code.
In this way the developer acts as a producer
and author, sourcing the best components,
integrating these into the overall program design,
as well as writing
original code.
There
are times when components conflict with the core
code
or with
another component that is used in the program,
and much of the developer's efforts are
taken up
with resolving these issues. Seeking
Completion
The
software developer has found a contextual home
for his/her incessant focus on logical argument.
Their creativity is unquestionable, but they
do not generally produce art. It is this qualification
that causes people to often mistakenly judge
software development as uncreative.
In
contrast, the artist,
author, designer and composer usually seek
closure in their work. Although
I for example, enjoy the process of researching
and drafting a work, there comes a time when
I need to step back. It is a time of satisfaction
and intrepedation, as much as a time
when I should move on to the next challenge
that awaits...
Feedback

AbleStable® welcomes
feedback on The Column. Go to Feedback,
complete the form, and make your views known.
|