Error Free Code, Is It Attainable
Error Free Code, Is It Attainable
~<uch has been written about error free code; what it is,and bo~¢ tc ~ttain
it. Given that error free code is desirable and worth striving for,can it ever
be realized in the majority ef our code? I believe that the 8~swer
regrettab!y,Js no. If one were to disregard the every day simple applications~
like o~r 30th update program,or simple reports,error free code in larFe systems
is not attainable. There are a number of reasons for that pessimistic
statement,s~ch as the following: multiplicity of design methodologies ,non use
of reusable code,time constraints,user misunderat~r~JDp,aed testing. The
followi~g is an e:~amination of each of the previous reasons.
_Methodolosy.
There are any number of r~ethodeJ~ies which are in use t,-MeTz and which can
be used when developing large systems or programs. Eome of these methodologies
include: structured ~ e s J ~ , t o p down design and coding,code ~eviews,progranmning
teams (13,16),and chief progran~:er (2),to name a few. All of them are ~cod and
have merit,and have proved ,sefu! in developing large systems. Hot.ever,the very
fact that there ere so many methodologies a progr~m,mer can use in developing a
project or system is one reason why error free torte is dlff!cuJt to obtain.
Many programmers c h 2 ~ e jobs frequently and with each change invariably new
methods and procedures have to be learned. Bec~:u~e meat companies have their
own standards and procedures,and Job turnove:: for programmers is common place
(Bartol (3) claims that "half of a staff turns over every two
yesrs"),programmers are constsrt!y !ear:ling new design and coding procedures.
How can programmers be expected to. cede error free systems when they are always
searching for new jobs,or learning the methods ard standards of their present
employer? Employcrs r,~ed to learn how to motivate ~zheir programmers and
analysts,so that they ui]! be more inclined to rem~Jr vJth them. Bartoi (3)
suggests one xoav that companies can help reduce the turnover rate is by
rewarding the higher ploduct~ve computer professionals,and to encourage
professicna!]y oriented employees to pursue p~ofessional interests and to
re~.lard them for their professionalism. Le Duc (i0) seems to imply the same when
he says management must encourage all opportunities for growth,and that the
~rewth can be by informal or formal lear~ing, l.e D,c ~]so suggests that
program~ners should ~e encouraged to learn about interfa~zing j o b s ~ . e .
user,operations,etc.. This suggestion mlght have a dual benefit. For
one,programmers may become better at their profession becaumc they would become
familiar with what otPcr people will do with their programs a~nd systems after
they are created, in addition,they may be happier,because they are increasing
their know!edge,and thus more inclined te remain with their present empioyeer.
Reusable Code.
Reusable code is code which can be used in more than one system oK
program. This means that after a system is put into production and the bugs are
removed over time,sections of the system could be reused to create other
systems. ~,~ny systems have code which can be reused many times. Examples ef
this are update programs and systems,billing systems ,payro ~
....etc, • Often all
Time Constraints.
Testing_ L
References
8. C-arman, John R, The "Bug t~ Heard vPc~md The World, ACM Software Engineering
Notes voi 6 #5 Oct 1981
9. Coos~C. Prod Hartmanis,J, The P r o g r a ~ i n g Language ADA Reference M anua]~
Springer-Ver~g~ Der]in Heide!ber~,N,Yo 19~!
I0 Le Duc,L. A. Jr, }~otJ.~:'~!JoPof Programmers~ Data Base vol ]l ~t4 Summer
1980
ii. Lientz,Be~1~et P~ 8 ~ Swanson,E, Burton. Problen~s in Application Software
Maintenance. ¢~o~imication Of The ACM vo] 2& #] ! ~]ov 198!
12. Mangel,Kenr~eth 7° Theory Of Small Program Com p!e~:!ty ACI< Sigplan Notes vol
'- ~3 ~i~:~-ch 1982
!3, Y~rteJ,Mari!yn The Effect Of Program~,ing Team Structures On 7rogr~mmJ~g
Tasks Communication Of The ACM vol 24 #3 March 1981
14. Neumann,Feter G. Psychosocial Implications Of Computer Software Development
~r.~ TT~c:Zen ~ d The Art Of Computing. AC~ Soft~are Engeneeri~g NOtes ve] 7 #2
~vr~] 1982
]5. Newste@,Pe+er P. and Leong,Wing-Keen and Yeung,Jca~e. Tbe Impact On
Programming Styles Oe Deg~,gg!ng Efficiency. ACM Software Engineering Notes vol
~_ Oct. 1981
16. Prentice,Dan. An Analysis: Of Software Development Environments. ACM
Software EnFJ~eer!ng Notes vol 6 #5 Oct 1981.
!7, Speetor~D. Language ~'eatures To Support lle~cab!]jtv, ACM Sjgplan Notices
vol 18 #9 Sept:. ].983,