Thread View: comp.sw.components
4 messages
4 total messages
Started by Travis Marlatte
Fri, 13 Oct 1989 14:05
Maintenance (was: Schedule and Budget...)
Author: Travis Marlatte
Date: Fri, 13 Oct 1989 14:05
Date: Fri, 13 Oct 1989 14:05
49 lines
3245 bytes
3245 bytes
I don't see the reasoning that novice programmers should be given the task of maintaining existing systems. I also don't see the reasoning that thou who creates it will maintain it even unto ball and chain. Simple analogy: A team of crack engineers build a beautiful and structurally sound bridge that serves its purpose well. Five years after construction, it is learned that the foundation at one end is giving way due to water damage. The company assigns its newest employee to the task of designing the correction to the problem. Sounds absurd to me! I would hope it sounds absurd to the rest of you too. Isn't the analogy correct. Why would I want to assign inexperienced staff to the task of shoring up existing systems? Especially, since we know that mainenance is often a task of stretching the intent of the original design to meet current expectations. Further, why would I want my newest employee dedicated to mastering 5 year old technology? Why does the idea of an apprentice not spring to mind quickly? Would it not be better to have a junior programmer (or junior software engineer or junior whatever) position? This position may very well get stuck with a load of grunt work tasks. But, the work would ultimately be the responsibility of a senior person who guides the work of the junior. The work would then include a mix of maintencance and latest and greatest design - whatever the senior staff was working on. By blending the work of the past with the work of the new, the junior member gets an introductory view of the whole picture. Technology transfer through sharing rather than dumping - dumping unwanted, undesirable tasks on a new hire. This type of idea can be taylored to each situation. A company developing coin machines may have a six month apprentice program. A company developing chemical process control might have a 5 year program. I have a friend working as a actuary. For advancement, they have to take a series of tests that may take up to ten years to complete. Their status as an actuary depends on the level they have achieved in taking the tests. While I don't think the software business is as structured as the insurance business, my point is that a training program for newcomers should not be shuned. It should not be embarassing to be considered a junior staff member. Of course, there is cause to celebrate when that day comes that you are no longer considered a junior. By the way, my first job out of school was as a maintenance programmer for control systems. I didn't mind doing it but it certainly was a waste of time. Only by becoming involved in curent design effort does one come to understand the task of doing current design. Travis
Re: Maintenance (was: Schedule and Budget...)
Author: Phil Meyer
Date: Fri, 13 Oct 1989 19:33
Date: Fri, 13 Oct 1989 19:33
23 lines
1806 bytes
1806 bytes
In article <1271@accuvax.nwu.edu> travis@delta.eecs.nwu.edu (Travis Marlatte) writes: > >Why does the idea of an apprentice not spring to mind quickly? Travis has a good point here. The analogy to a wizard's apprentice is even better. How do you become a wizard? By studying with/for a wizard. (or rather, what is the BEST way) We must also cultivate a love of the craft. This is the real difference between being bored (in any position) and being happy with the workload. Many really good programmers do it because they couldn't think of doing anything else. "Give me a workstation and a place to sit, and I'm happy." is a common attitude among the wizards I have known. The specific task, whether it be maintainance or design, is seldom mentioned. But rather, the usuall conversations amongst these people lean towards new constructs, difficult passages, tools, the latest and greatest hardware, etc. etc. +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+ | Honesty is in the eye of | Phil Meyer | | the creditor. | Usenet: <backbone>!attctc!lodestar!phil | | | VoiceNet: (214) 991-0897 | +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
Re: Maintenance (was: Schedule and Budget...)
Author: Steven M. List
Date: Wed, 18 Oct 1989 17:05
Date: Wed, 18 Oct 1989 17:05
71 lines
4481 bytes
4481 bytes
travis@delta.eecs.nwu.edu (Travis Marlatte) writes:
>I don't see the reasoning that novice programmers should be given the
>task of maintaining existing systems. I also don't see the reasoning that
>thou who creates it will maintain it even unto ball and chain.
This seems awfully absolute. I didn't hear anyone make either of these
statements as absolutes. In fact, as regards the second statement, it
was specifically mentioned as an option. There are MANY people who find
the option to have responsibility for and commitment to a project from
"womb to tomb" VERY attractive. There are others (myself included) who
like to do a certain amount of work on a project and then move on to some-
thing else. The threshhold varies, but the desire tends to be one for
change and variety.
>Simple analogy: A team of crack engineers build a beautiful and structurally
>sound bridge that serves its purpose well. Five years after construction,
>it is learned that the foundation at one end is giving way due to water
>damage. The company assigns its newest employee to the task of designing
>the correction to the problem.
I notice that Travis said "newest employee", not "novice engineer" or
"recent graduate."
>Sounds absurd to me! I would hope it sounds absurd to the rest of you too.
>Isn't the analogy correct. Why would I want to assign inexperienced staff
>to the task of shoring up existing systems? Especially, since we know that
>mainenance is often a task of stretching the intent of the original design
>to meet current expectations. Further, why would I want my newest employee
>dedicated to mastering 5 year old technology?
Sounds absurd to me too. No one said that was the idea. The idea is that
through working on fixing bugs (maybe major, maybe not), a new employee
(not necessarily junior, however!!!!) can learn the systems, the techniques,
and the standards and approach used by his/her new employer. While we
tend to think of YOUNGER employees when we think of NEWER employees, this
is CLEARLY not the case. When you change jobs, do you expect to walk into
your new job and immediately start designing their hottest project? While
it does happen, it is the exception rather than the rule. New employees
have to learn their way around; socially, organizationally, and
professionally. In our profession, this is frequently accomplished by
putting the employee to work on low- to medium-priority maintenance
tasks.
> [ lots of interesting stuff about apprenticeship approaches ]
I agree that apprenticeship is a terrific way to progress. Once again,
I must point out that NEW employee does not translate to RECENT GRADUATE
or YOUNG. Put the issue in perspective.
>By the way, my first job out of school was as a maintenance programmer
>for control systems. I didn't mind doing it but it certainly was a waste
>of time. Only by becoming involved in curent design effort does one come
>to understand the task of doing current design.
"A waste of time." Does this let everyone know what Travis thinks of
maintenance and programmers who DO maintenance? Obviously what is
important and interesting to Travis is design and being in on the
ground floor of a project. While that's true of many of us, we also
learn to appreciate the time we get to work on maintenance. It can
be a wonderful break from the pressure and pace of being at the front
end. Like doing gardening or cooking or folding laundry. Like doing
manual labor after programming all day. Change.
Nurture versatility and an appreciation for ALL aspects of your
profession, and you will BE a professional.
--
+----------------------------------------------------------------------------+
: Steven List @ Transact Software, Inc. :^>~ :
: Chairman, Unify User Group of Northern California :
: {apple,coherent,limbo,mips,pyramid,ubvax}!itkin@guinan.Transact.COM :
Re: Maintenance
Author: Travis Marlatte
Date: Thu, 19 Oct 1989 01:32
Date: Thu, 19 Oct 1989 01:32
44 lines
2927 bytes
2927 bytes
The discussion was kind of heading in the direction of using maintenance as a training vehicle for new engineers. I think most of us agree that this is wrong. Exposure only to maintenance is probably not the way to bring a new programmer up to speed for design. Whoops. There I said it again. The goal is create good designers. Somehow, to be a good programmer, I believe one has to become a good designer. Even in maintenance, and we all know I think that job is scum, good design techniques are paramount to making sound revisions - whether defect fixes or enhancements. Contrary to my sarchastic comment above, I love maintenance. I have always been one to enjoy tearing something apart, figuring out how it works, and how to make it work better. I would think that most engineers have this same attitude. I do think that maintenance as a training vehicle is a waste of time. The trainee learns nothing except how stupid past developers were. The company may benefit from freeing up its more highly prized programmers but there certainly is a cost of poorly done maintenance. Actually, maintenance is an important part of new design as well. I can't count how much time I've saved by striping a piece of code from a past product and using it in a new design. Gosh - reusable software. To reiterate my position - apprenticeships or something similar seem like a pretty clean way of approaching training. Note that this does address the new employee whether novice or experienced. Some formal program to help the experienced programmer fit in with the company is just as appropriate as a formal program to bring the novice up to speed. A few comments on licensing: (are you out there Ms. Richards?) Licensing does not prove competence or ability. It merely transfers liability. And that usually doesn't work either. Licensing should mean nothing to a fellow programmer (or engineer). It is only a stamp of approval from a publicly recognized body and it is for the benefit of the public. Licensing can only be used as a first defense against blithering idiots passing themselves off as professional programmers. I am quite confident that the programmers responsible for recent widely publicized software failures were nothing but professionals and would have gained a license if such were required. Travis
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads