Modern computing environments automate support for CloneAndModifyProgramming. You may use your editor's CopyAndPaste mechanism to copy functions and perform small changes to each one.
However, if you need even more fluff in your CodeBase, mere automation of CAMP might not be enough. You need the manual skills of a CodeMonkey, to chronically reproduce the same project, over and over again, top-down, with minor variations each time.
Characteristics:
- Given strict requirements will produce program
- Don't expect to think out of the box
- Only cares about doing "cool" development
- Business need is secondary to the need to experiment and learn
- Good Code formatting
- Chooses to implement hard to maintain algorithms
- Very Poor estimator of time to complete
- May or may not have any communication skills
- Has very unhealthy eating habits
- Knows how to run the ClassWizard, then add the same feature, a little different each time, to each class the wizard creates
Draw backs:
- Doesn't care that much about the produced functionality
- Maintainability of the finished product is difficult
- Code is usually not ready for production when output
- Knows how to run the ClassWizard, then add the same feature, a little different each time, to each class the wizard creates
How to Utilize:
- Heads down code factory situations
- Must enforce stringent Regression test methodology (Unit and system)
See also: GruntProgrammer.
Another dev's opinion: the need to experiment and learn, caring about new technologies and choosing to implement algorithms don't seem to me like the characteristics of a code monkey. Most code monkeys I've met only know one language(Java usually) and are opposed to learning more, they say that algorithms and math are useless in the "real world" and they have no idea what the "cool stuff" even is, wishing to use it is unthinkable.
I've heard the phrase CodeMonkey (and various derivatives) used with a different meaning. Rather than an insult for a programmer who is sloppy (which the above implies), I hear it used for someone who is doomed to work on "unglamorous" programming tasks, often using older/antiquated/"uncool" technology. Examples of work that a CodeMonkey might do in this definition (I do not intend to denigrate these tasks myself):
- Coding/implementing forms, other UI for some enterprise/web app; typically implementing a specification designed by someone else.
- Numerous other "job-shop" tasks in the IT department. ("Oh, Joe? The VP wants this particular query automated...")
- Anything involving COBOL
- UnitTests. (In places where UnitTests are the responsibility of a separate QA staff, it's often looked down upon as "grunt work")
- In the embedded systems world, diagnostics.
- "Minor" features in an integrated product.
While the CodeMonkey in this definition is not necessarily sloppy, he is (or is perceived to be) a programmer of junior-skill; and given the above tasks in the theory that they are less important (or less likely to cause major problems if done incorrectly). Elite programmers, OTOH, like to work on such things as architectures, frameworks, kernels, libraries, toolkits--the sort of stuff that the CodeMonkeys depend on.
Note that neither definition is a compliment. (+1 to this definition. BorisStitnicky)
My understanding of the phrase is as the above...although I now appreciate that the following mention of CommodityProgrammers is perhaps a slightly less insulting term ;-) I also particularly object to the inclusion of hackers in the initial definition...to be a hacker (geek also!) is something to be most proud of. Give me a hacker to employ any day, rather than bland cookie-cutter CS grad MCSE-hopefuls ;-)
PS. I offer my unreserved apologies to all talented MSCE's out there...I know you exist
--DanKane
I've gained new appreciation for the phrase CodeMonkey, but I must admit, I originally pictured the old philosophical pondering: If an infinite number of monkeys on an infinite number of type-writers randomly tap the keys, would they eventually produce Hamlet? (I'm sure there's a link to this somewhere on Wiki.)
Then I pictured an infinite number of CommodityProgrammers tapping randomly at their keyboards. Would they eventually be able to produce <insert your favourite program>?
Well, I thought it was funny...
Hopefully no ProgrammerStereotype
http://en.wikipedia.org/wiki/Jonathan_Coulton
JonathanCoulton, wrote a humurous CodeMonkey 'anthem' featured in April, 2006 on SlashDot, and available for free on his website:
Code Monkey get up get coffee. Code Monkey go to job.
Code monkey have boring meeting, boring manager Rob.
Rob say Code Monkey very diligent. But his output stink.
His code not functional or elegant. What do Code Monkey think?
Code Monkey think maybe manager wanna write goddamn login page himself.
Code Monkey not say it out loud.
Code Monkey not crazy just proud.
Chorus:
Code Monkey like Fritos.
Code Monkey like Tab and Mountain Dew.
Code Monkey very simple man
Big warm fuzzy secret heart
Code Monkey like you.
Code Monkey like you.
Code Monkey hang around at front desk
Tell you sweater look nice
Code Monkey offer buy you soda
Bring you cup bring you ice
You say no thank you for the soda
cause soda make you fat
Anyway you busy with the telephone
no time for chat.
Code Monkey have long walk back to cubicle
He sit down pretend to work.
Code Monkey not thinking so straight.
Code Monkey not feeling so great.
Chorus
Code Monkey like you lots.
Code Monkey have every reason
To get out this place.
Code Monkey just keep on working
See your soft pretty face
Much rather wake up eat a coffee cake
Take bath, take nap
This job fulfilling in creative way
Such a load of crap.
Code Monkey think someday he have everything even pretty girl like you.
Code Monkey just waiting for now.
Code Monkey say someday, somehow.
Chorus
CategoryAntiPattern, ProgrammerStereotype