Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

How To Survive In Maintaince Programming (ACK! NO!)

by SpanishInquisition (Pilgrim)
on Oct 22, 2004 at 02:43 UTC ( #401358=perlmeditation: print w/replies, xml ) Need Help??

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.
  • Comment on How To Survive In Maintaince Programming (ACK! NO!)

Replies are listed 'Best First'.
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. :)


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, 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
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."

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
      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 ]

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.
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.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://401358]
Approved by kvale
Front-paged by claree0
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2023-06-05 09:43 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (24 votes). Check out past polls.