So you are stuck in a boring job with no way out and you are massively overqualified for what you are doing? How do you entertain yourself doing gruntwork until you can find a new job? This is a sort of a guide. I'm an expert by now... not a happy expert, but I think I've evolved considerably as a programmer despite having any meaningful work.
- If the problem isn't hard enough, make it harder.
- The 15 minute fix isn't fun. Implement the 8 hr fix that will save you 15 minutes over the next 50 problems.
- Make your designs interesting. If you create a framework that you don't like, you'll have to use it.
- Look at work as an independant study course -- where the tuition is payed to YOU and the faculty advisor is on sabbatical.
- Return defects as "by design". As in "not implemented, by design". People will buy this more than you think.
- Make your code as funky and innovative as neccessary. It should be maintainable, but it doesn't have to be "sane".
- Do reinvent the wheel. Sometimes the wheel is square. It sucks using square wheels. In an ideal world, people who build square wheels wouldn't have a job. But the world isn't fair, deal with it.
- Steal time from the clock. If the above solutions can't make the thing interesting, remember there is nothing wrong with using company time to learn new things. Half of all the things I've learned have been learned on Perl Monks when I was supposed to be doing something else. Now I'm learning Ruby!
- Subscribe to lots of technical mailing lists.
- If the group doesn't need feature X, but won't notice if you add feature X, add feature X.
- Create pet projects.
- Write utility apps for exceedingly weird purposes.
- Consider writing source code analyzers and parsers for log files.
- Learn about your corporate build system and become a part of it. Usually nobody wants to touch it. This is good. Perl is usually allowed in such areas, and no one will know what you are working on when you are working on it. Build crews are like rabid black sheep. People are afraid of them.
- Get root on some important servers. Install wikis and message boards for people to use. This makes you a webmaster or something -- people are afraid of those too.
- Print huge programming manuals at work. Like 500 page manuals. CPAN documentation. It's their printer, use it! Work may also have free binders, so that's goodness!
- Whatever you do, don't stop learning.
- Read web sites like perlmonks, ruby-lang, c2, and so on. Slashdot is kinda intersting, but can be a mind killer. And it doesn't refresh enough.
- Read other people's code. Study the design flaws in it and learn. You could read OSS projects, but corporate projects usually have a lot worse programmers due to the lack of scrutiny and rushed schedules!
- Find people in similar situations. Take long lunch breaks with them.
- Plan mass exodus. Even if there appears to be no way out, planning a way out is something to hope for.
Re: How To Survive In Maintaince Programming (ACK! NO!)
by hv (Prior) on Oct 22, 2004 at 11:16 UTC
|
If you have a suspicious supervisor, sometimes you have to introduce the complications in more subtle ways.
I once used to do work on an invoicing system for people selling cars; the program's job was to take an invoice template and fill it in. Naturally the template language could only be interesting if it were Turing-complete, but with suspicious minds around me I had to go for a two-pronged attack - get two different customers to request two different features, one of which required an optional line ("skip the following line if this value is zero") and the other of which required a dynamically-selected continuation template.
Once I had those two in place I had control flow, and shortly thereafter I had the vehicle-invoicing prime number generator: about 300 lines across 7 templates.
Ah, happy days. :)
Hugo
| [reply] |
Re: How To Survive In Maintaince Programming (ACK! NO!)
by zentara (Archbishop) on Oct 22, 2004 at 12:38 UTC
|
Here's another good one.Show your overlords a bunch of articles from SecurityFocus.com, which they won't understand, and declare that a week of "security analysis" is needed on the scripts. If they refuse, that lets you off the hook, if there really is a security flaw. :-)
I'm not really a human, but I play one on earth.
flash japh
| [reply] |
Re: How To Survive In Maintaince Programming (ACK! NO!)
by pg (Canon) on Oct 22, 2004 at 03:45 UTC
|
"If the problem isn't hard enough, make it harder."
I would rather say, "If the problem isn't simple enough, make it simpler."
| [reply] |
Re: How To Survive In Maintaince Programming (ACK! NO!)
by BrowserUk (Patriarch) on Oct 22, 2004 at 10:00 UTC
|
If all that fails, you could always badger the human resources dept. to send you on the all important B.O.F.H. training course.
And you could spend your during the inevitable extended lull between submitting the request, and someone ringing to ask why the course is so important, by searching for a suitable alternative acronym. This might be useful to you:
open W, '< words';
m[^(.)] and push @{$1}, $_ while <W>;
chomp @{$_} for 'a'..'z';
printf "%s %s %s %s",
$b[ rand @b ], $o[ rand @o ], $f[ rand @f ], $h[ rand @h ]
while <STDIN> !~ m[^Q]i;
burghers overfavor fidgetiness hostel
bookers oxbow fashionmonger headroom
boole orifice's f's heres
brookside objectizes fund headsail
ballplayer onus fathead heredes
brule or's fervors hurriedness
bids ostensorium faucal heatstroke
behalf orthocephaly fault helicopted
blaspheme occupation's faradizer herisau
bilharziasis ogpu forge hyperbolically
brazening obligating favorite's hermit's
buffoonery occular foreignness heathkit
bedaubing overemphasized forwarded hurler
braiding ode futurist hassled
bridgeford officials fibrefill huskier
bayonne ommatophore friar's hemostatic
boobify outgun flubbing hangman's
batteries octahedra finale hemorrhoidal
blobs orioles forges hullabalooing
bedrid oatcake fragmentate honegger
bouffant opsimath fulfills homologue
bedspaces overexploited formality hoya
basilisk ozonization's foresightful headlines
bottled oldsmobile first homonymous
baclava oscular floruit herisau
blurry ochrea fabricator habilitated
balkiness oxidizations foretime holofernes
buzzy outraged flume hygeia
banteringly opposable feathering homework
bayda octandrious feasibly higgling
backgammon ouessant floatation hedges
bladder's onions fiddler horace
bellyband oglethorpe farthest hemisphere
bobble orangeism fiercely hawaiian
bellhop ovationing finest hertford
boils ozonize freshly holdback
bagrodia's oncogenic farce harbingers
britannica overflight frankincense heavenly
breaststroke octagons faery hemmer
brow october fraternizing handicap's
busier onagraceous floors holdall
bookworm oafishness fling's hindrance
banknotes organizational faliscan heptateuch
backbone orated fervorlesses heckman
buzzard's oxygenizables floater halicarnassus
bowled odometer's formativeness happenstance
breaded overcolor's fortier heir
benevolently ogpu freeboard heterotopic
birthmark overcivilization's faradization's hawsepipe
blunt ottoman flippers hemihydrate
begs observe findable haphazardly
bitterwood opining funchal homotransplantation
benthos organum filose hrs
bumbledom optimists forbidder haired
beatles obsequiousness ferber's hoggishly
bullishly overcerebral frieze's heritor
baronet overrepresent fisher hypnogenetic
bodhisattva overspecializes frond heartland
bizarreness outsized frowsty huntley
braked oxide fraughting heffer
berdichev ohm forewoman headliner
brummie orderer fyzabad hairgrip
belligerence overrapturize fete handcuffing
bagful overestimated fatal homework
beardsley occasionings faltered hypostatization's
betrothal obtuseness frugally humiliation
bests oversanguine fock haunch
buggering obsession firepower hyphen's
bazaar's overruled frenetically hyperparasite
bibliology obliviously frenchize hatched
backfires oldster founding hellenization
bleeped occulter fleapits humified
brushfire onerously furriers hagar
bulbous opprobriousness flares hoaxed
betweentimes omer fireproof hindi
bipolarizes orangoutan francophone hectogram's
baldmoney opalesce felicities hushed
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
| [reply] [d/l] |
|
Is there some reason you have a lot of possessive nouns in your list (and a possessive verb(?) in your blurb)? Or will I have to invoke the Angry Flower? (Smile, it's a joke.)
-- [ e d @ h a l l e y . c c ]
| [reply] |
Re: How To Survive In Maintaince Programming (ACK! NO!)
by si_lence (Deacon) on Oct 22, 2004 at 09:38 UTC
|
Don't make me laugh that hard!
First it's not wise to spill tea on the keyboard and
Secondly people start wondering if I really need to read
Perl Monks for my work.
si_lence | [reply] |
Re: How To Survive In Maintaince Programming (ACK! NO!)
by RolandGunslinger (Curate) on Oct 22, 2004 at 12:45 UTC
|
Hmmm, maybe I should come up with a meditation on how to survive being forced into accepting a product quality job when you're a coder with 20+ years experience. | [reply] |
|
|