http://qs321.pair.com?node_id=457973

On Monday, I start a new job. For the first time in many years, I'll be coding perl full time. My entire career I've been told that the first few days/weeks/months are critical. You know the drill, you want to prove yourself and set the tone early on. It's a balancing act: I want to prove that I'm not a slacker, but at the same time I want to show that I won't work an 80-hour week unless there's a really good reason.

The specifics of the job are intriguing. There's a foot-high stack of testcases that need to be automated, and I presume that I'll need to develop a harness of some kind. I'm familiar with the software and platform, but I haven't been briefed on the specifics of the test environment and test procedures. Can anyone suggest a strategy for the first month on the job?

-Logan
"What do I want? I'm an American. I want more."

20050520 Edit by castaway: Changed title from 'OT: The New Job'

Replies are listed 'Best First'.
Re: The New Job
by dragonchild (Archbishop) on May 17, 2005 at 20:01 UTC
    • Keep your mouth shut. No-one is dumb; they had a good reason to do it a dumb way. Find the root cause and fix it. That root cause is never your colleague.
    • After 6 weeks and before 12 weeks, you should have a project that you're championing. Sounds like the testcase automation is a good one for you. Demonstrate how you're a win for the company.
    • Keep your mouth shut. You have no idea what the political landscape is - you don't want to step on a landmine.
    • The first guy who talks to you is desperate for friends. Don't be his ally.
    • Read a random chapter from the Camel this weekend, to get into the mood.

    • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
    • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"

      Keep your mouth shut

      On the other hand, do:

      • Smile and greet your new coworkers daily
      • Ask questions frequently
      • Express your enthusiasm (assuming it's real)

      # The first guy who talks to you is desperate for friends. Don't be his ally.

      Ouch, that's harsh ;-) Besides, try avoiding any alliances whatsoever in the beginning, and preferably in the long run as well. Company politics is a good thing to keep tabs on, but unless you're a real shaker and a mover it's generally better to just stay out of it altogether from my experience.

      Remember rule one...

      I have to pipe up on that "first guy" bit. As I've said before, I'm often the first guy to talk to the new hire. I'm not desperate for friends or looking for an ally. I'm being paid to bring junior members up to speed quickly ;-)

      And in the same meditation, the second point is communication: I'm looking to feel out the new guy to see how well he will perform (the first point in that meditation), to see how willing he is to get help when he needs it, without overburdening his reporting structure.

      (And the only reason I keep using "he" here is because our new student is a male - I used the same strategy when bringing women on board as men.)

      I have to speak up on the "first guy to talk to you" rule.

      I'm generally one of the first guys to talk to new hires. That's because by an accident I've developed a reputation for knowing everyone, and I have to work to keep that reputation up. (The irony of it is that I'm really quite terrible with names.)

      Two of dragonchild's comments reminded me of some of my grandfather's articles for the journal Chemical Technology from 1972-73, as a series called 'Survival Manual for Technologists')

      Here's part of the 'new employee' advice: (the full set is over 12 pages, and I don't know what all of the reprint rules are for the journal, so these are just excerpts from the articles)

      Carl Pacifico, 'Survival Manual for Technologists: Part II', Chemical Technology, vol.2, pp.340-2, June 1972.

      Carl Pacifico, 'Survival Manual for Technologists: Part II', Chemical Technology, vol.2, pp.587-9, Oct 1972.

      (all typos, etc, are my fault, and not from the original article)

        If I had to work with anyone who was following that advice, I'd suggest firing them. Particularly the second article.
      > The first guy who talks to you is desperate for friends. Don't be his ally.

      Ouch.
    • The first guy who talks to you is desperate for friends. Don't be his ally.


    • Maybe that should read: Be his friend but not his ally. I think first to talk is just too broad. Some people are more friendly than others, while some people just don't know how to make friends.

      Keep your mouth shut. No-one is dumb; they had a good reason to do it a dumb way. Find the root cause and fix it. That root cause is never your colleague.

      I love this one! How true!

      Walking the road to enlightenment... I found a penguin and a camel on the way.....
      Fancy a yourname@perl.me.uk? Just ask!!!
Re: The New Job
by jhourcle (Prior) on May 17, 2005 at 20:10 UTC

    Ask for a mentor.

    You'll probably have a manager, but try to find someone one who's willing to take you under their wing, who understands the ins and outs of the department/org/corporation's politics, and understands not just how things are being done, but why they're being done.

    Start out by doing most programmer's least favorite job -- documentation. You'll want to know the systems inside and out. (at my last job, I'm still remembered for labeling all of the systems ... of course, it was because I was frustrated with ejecting a cdrom, and then wandering around the data center trying to find the tray that was sticking out so I could find systems (which doesn't work when it's inside an cabinet, and the tray came out, hit the cabinet door, then went back in)).

    The trick is to find the jobs that other people want done, but don't have time to do themselves... The types of things that would make their life easier, but they just don't have the time with their current schedule to get done. Unfortunately, finding those jobs can take some time to figure out what they are. (and if you're being brought in for a specific task, you probably don't have the luxury to work on).

    Oh -- and don't spend the entire day chatting on websites.

      Oh -- and don't spend the entire day chatting on websites
      Doh!

      Of course I should mention that I'm not really new to the job, I've just been away for a while...

Re: The New Job
by elwarren (Priest) on May 17, 2005 at 23:05 UTC
    Always take your lunch break. The moment you skip your lunch and start eating at your desk, you lose that hour break in the day and never get it back.

    Try to come in early, but don't stay late. Everyone admires the guy that gets there early. Early really means, try to mirror your bosses schedule so that he always sees you there. If your boss works from 6am till 4pm, but you work from 10am till midnight; you may put in more hours, but the only ones that count are the ones he sees you.

    Don't surf. You can do that when you've mastered your environment, or at home.

    Depending on how much control you have on that project implementing test cases, you might want to pick the low-hanging fruit to boost your percent complete. Knocking out the simple test cases will also allow you to get an idea of how to work out your harness before tackling the bigger tests.

    Merely bits of my opinion.
Re: The New Job
by bradcathey (Prior) on May 17, 2005 at 22:21 UTC

    As an employer, I crave communication with my employees. Not because I'm nosey, but I want to know if they are having problems, issues, victories, progress, etc. Their time is valuable, and if they are spending all day on something that should take 3 hours, then I want to know about it. I give them the old "cut-your-loses" speech. Sure, they need to stretch to solve problems, but when the meter is ticking, there is a time to come to the boss and get some direction.

    For instance, I have a relatively new programmer working for me right now. He will spend hours trying to find a bug, but I'll walk in and spot a tiny oversight immediately. I'm glad he's not afraid to try to solve it on his own, but you need to know when to go for help.

    Just today, a customer was beating up on one of my designers. I didn't know about it until much later, and after much gnashing of teeth and lost productivity. I told my designer that when something seems amiss, let me know so I can confirm it, negotiate with the customer and get things back on track.

    All that to say, be communicative.


    —Brad
    "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
      Here's a powerful tip that will make your boss think you are a superstar: At all times, be able to give a 20 second answer to the question, "How's it going?" that is centered on the miracle you just pulled off and how you are saving the project with what you are working on. Your manager only has 20 to 60 seconds. Be sure you include some phrase like, "I've got it under control," or the manager will go into problem solving mode. (Problems rub off on YOU in the manager's mind.) You have to think up these miniture stories beforehand. BS will not work.
Re: The New Job
by bluto (Curate) on May 17, 2005 at 22:23 UTC
    It's a balancing act: I want to prove that I'm not a slacker, but at the same time I want to show that I won't work an 80-hour week unless there's a really good reason.

    To be honest, the time for sticking by your guns over work week issues is at the interview. If the culture says 80hr weeks are not unexpected, then expect lots of pressure if you don't live up to expectations. I'm just glad Microsoft decided not to hire me out of grad school. :-)

    Can anyone suggest a strategy for the first month on the job?

    Develop a taste for espresso?

    At the beginning you'll be expected to produce fruit. Your first job is to find out what fruit to produce (i.e. what your boss is looking for in order to trust you). Over the long haul you'll want a nice test framework. However, if they really expect to see some concrete progress up-front, then you really don't want to spend all of your initial time on building a nice test framework, but have no working test cases to show for it.

Re: The New Job
by jbrugger (Parson) on May 18, 2005 at 04:32 UTC
    I wonder why no one told this
    The first weeks are critical for both you and the company. Mistakes are to be made, and are not critical.
    Stay yourself, and try to find out if you fit in the company, as the company tries to find out if you fit in it.
    This works in both ways.
    Just don't try to create more expectations than you can deliver in the end, this is not good for you, and not for the company.

    "We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise." - Larry Wall.
Re: The New Job
by xorl (Deacon) on May 18, 2005 at 13:38 UTC

    The 80hr a week thing should have been discussed during the salary negotiations. If 80hr/wk is common you had better do it as well as start looking for another job.

    The two articles from Chemical Technology are just plain awful advice. Don't follow it if you're in an IT job or there are other IT folks around. That advice is applicable to someone who doesn't need to produce. IT folks are expected to produce.

    For the first year, no matter what, always have your project done perfectly and early. This will gain you the reputation you need to slack off later ;-) as well as get promoted or at least not get laid off. Make sure your boss' boss learns of this reputation as well as whoever can decide if your job should be eliminated or not. Corporate downsizing is still a trend so you need to make sure they think you're valuable and that you could and want to take on other jobs.

    Offer to help everyone. Don't be pushy about it and be careful not to offend when doing it. For example you're in the morning staff meeting when Joe Sixpack mentions he is working on a certain aspect of the FooBar Project. Mention that you're done something similar and would be interested in helping there. Don't say "Joe's solution is just stupid, I can fix it in 10min if we do it the right (my) way." Sometimes it is best to stay quite in staff meetings and then approach Joe Sixpack after the meeting with your idea. "I think I can help you on the FooBar Project. If my idea is right we can finish it up early and go out for drinks tonight."

    If lunch breaks are ok with your company, then eat lunch with a different coworker each day (even if it means you have to go out to the overpriced sushi place 20 miles away and put raw fish in your mouth). If there is a usual lunch bunch go with them at least once a week but no more than that. You do want to look like you fit in, but at least for the first month don't fall into any regular group. You want to fit in, but you don't want to accidentally fall in with the wrong crowd. Also try to at least once a week go to lunch with someone not in your department. This is a little harder to do in megacorps and you may only be able to do this once a month.

    Find out who the office gossip is. Make sure you never ever give them anything to use against you. However you should pump them for information. They are usually quite willing to share. They can help you figure out the right people to know and what it takes to get promoted or fired. Be aware that a lot of the gossip is well just gossip.

    Also find the office socialite. You need to be invited to their parties. You need to see that they get you invited to other parties. Within the first 6 months you need to have a party and ask that this person handle the invitations. For some reason the office gossip and the office socialite are either the same person or best friends.

    BE NICE AND FRIENDLY TO EVERYONE. By everyone I mean everyone from the President to the assistant junior janitor. You want to make sure you don't give anyone a good reason to dislike you regardless of their position in the company. Also the assistant junior janitor can be a good source of dirt on other people in the company or can help you get access to the incriminating files.

    Also get to know all of the security personnel especially the night time guards. Find out what exactly they do. Do they monitor your movements? Your Internet browsing? What else do the monitor? Who has access to their records? Where are the flaws in the system? These guys can be very useful on helping you dig up dirt, provide after hours access, or cover your own tracks.

    In addition to the above, you also need to find and make friends with three key people:

    1. Someone not in your chain of command but very high in the company. These days you need to have more than just your dept head fighting to keep your job from being eliminated. You don't have to be best buds but they need to know you and think you're a nice hard working guy.
    2. The CEO's (or at least someone really high up in the company) secretary or assistant. Cross this person and your memo on "how to save the company $10 million and not eliminate my job" will end up in File 13 while your nemesis' memo on "how to waste $50 million and fire that guy I hate while giving me a big raise" will make it to the powerful person's desk.
    3. Your boss. There is nothing worse than working for someone who doesn't like you. Some bosses don't want to be friends with their underlings. That's ok, just make sure he doesn't hate you. Be nice. Invite him and his wife for drinks or dinner. Make sure he's always invited to any parties you have. If you can find out any dirt to hold over him so much the better.

    Two final rules.

    1) Always have candy or chocolate at your desk visible for anyone to see and take. I recommend also some sugar free options too. I can't emphasize enough how important this is. Free food and free chocolate will make everyone love you. Speaking of food, if you have a garden make sure you bring in the produce.

    2) DO NOT DATE, SLEEP, OR HAVE AN AFFAIR WITH ANYONE WHO WORKS FOR THE COMPANY. Unless of course it is the CEO or someone who can guarantee you a promotion and you get the evidence on tape and in writing. But seriously I've watched a number of coworkers not take this advice and eventually one or both of them have to leave.

    Bottom line: Be nice, get results, uncover evidence, and don't fool around..

Re: The New Job
by Anonymous Monk on May 17, 2005 at 23:46 UTC
    Don't assume anything in advance. Show your skills as you are required and don't "shove" your knowledge at them. As for the hours, be fair to yourself and then to them.
Re: The New Job
by scmason (Monk) on May 17, 2005 at 21:29 UTC
    Tell them you know me, that will clear the way for beautiful and exciting things (like being allowed to chat on internet sites all day). On the odd chance that that does not work, stare blankly at a point 12 inches to the left of their eyes anytiume anyone talks to you and then respond with random things like "I didn't really mean to do it, she just made me so mad"
Re: The New Job
by jacques (Priest) on May 17, 2005 at 21:49 UTC
Re: The New Job
by cbrandtbuffalo (Deacon) on May 18, 2005 at 12:50 UTC
    All good stuff so far. I'll just add two things I didn't see:
    • Manage your own to-do list effectively and follow through on what you promise to do. In other words, manage yourself so your manager doesn't have to, and say what you are going to do and do what you said. This seems so obvious, but I have seen so many people over-commit (with the best of intentions) and not deliver.
    • Take advantage of your honeymoon period to ask stupid questions that aren't really stupid. You have a period of time to be the "I don't know how this works" guy without it being negative. In the process of asking these questions, you are likely to find out that a bunch of other people don't know the answers either, but then the information is out there for everyone.

    Good luck!

      That first one has a caveat though - make sure to let your manager manage you when they want to. Don't become so intent on being independant that you do what you want to do instead of what you are being told to do. Your might be able to manage your own to do list, but your boss is still in charge :)

      ----------
      My cow-orkers were talking in punctuation the other day. What disturbed me most was that I understood it.
Re: The New Job
by Anonymous Monk on May 18, 2005 at 12:53 UTC
    Here's some things that I've found useful (some of which have already been mentioned here):

    1. Never be afraid to ask a question just because you're the new guy. Sometimes people have been in one environment for so long they take a lot of knowledge for granted, and once you ask the question, they generally are quick to realize this, and are happy to help you along.

    2. Talk to everyone, but offer no opinions on political/enviromental thing even when they press you for one. They are testing you either for the company's benefit or their own. Either way, you don't want to bury yourself in a hole you hadn't realized was there yet.

    3. OBSERVE, OBSERVE, OBSERVE. You will pick up a lot by watching the dynamics of the department (and the company). Again, DO NOT voice opinions on what you observe.

    4. Find a way to infuse yourself in the organization. For example, my first IT job was as a Night Operator/Jr. Programmer. I quickly realized that I had an opportunity at night when I was waiting for jobs to finish to tackle jobs that the day time people didn't have time for. I chose to do the more high-profile ones whenever possible. This lead to my boss finding a way to move me to working days, and expanding my responsibilities as a programmer.

    5. I can't help you with the keeping overtime to a minimum thing, as it has always been my philosophy to be as flexible as possible. This is my career, not my life, but those two items aren't necessarily unconnected (at least in my world).

    Hope that helps in some way. Good Luck!
      Here's some things that I've found useful (some of which have already been mentioned here):

      1. Never be afraid to ask a question just because you're the new guy. Sometimes people have been in one environment for so long they take a lot of knowledge for granted, and once you ask the question, they generally are quick to realize this, and are happy to help you along.

      2. Talk to everyone, but offer no opinions on political/enviromental thing even when they press you for one. They are testing you either for the company's benefit or their own. Either way, you don't want to bury yourself in a hole you hadn't realized was there yet.

      3. OBSERVE, OBSERVE, OBSERVE. You will pick up a lot by watching the dynamics of the department (and the company). Again, DO NOT voice opinions on what you observe.

      4. Find a way to infuse yourself in the organization. For example, my first IT job was as a Night Operator/Jr. Programmer. I quickly realized that I had an opportunity at night when I was waiting for jobs to finish to tackle jobs that the day time people didn't have time for. I chose to do the more high-profile ones whenever possible. This lead to my boss finding a way to move me to working days, and expanding my responsibilities as a programmer.

      5. I can't help you with the keeping overtime to a minimum thing, as it has always been my philosophy to be as flexible as possible. This is my career, not my life, but those two items aren't necessarily unconnected (at least in my world).

      Hope that helps in some way. Good Luck!

      If you give a man a fish he will eat for a day.
      If you teach a man to fish he will buy an ugly hat.
      If you talk about fish to a starving man, you're a consultant.
Re: The New Job
by diskcrash (Hermit) on May 19, 2005 at 02:09 UTC
    Logan,

    I would add that you could do a few simple things that make you and your work product a lot more valuable to everyone:

    1. Pick and use a good code template.

    2. If there is CVS or CVS-like tool, use it.

    3. Track your changes each time.

    4. Use comments liberaly.

    5. Don't "golf" the code, remember you may have to maintain it when you are old and weak minded.

    6. Make the test harness usable by nearly anyone.

    7. Be wary of skew between the development and the production environments.

    8. Create concise and direct documentation.

    9. Be sensitive to "how the boss wins and loses".

    Buena Suerte,

    Diskcrash

The New Job: Thanks, Monks!
by logan (Curate) on May 19, 2005 at 21:38 UTC
    I've received a lot of good advice so far, and thank you all. Most useful has been the office politics stuff, which I'm really bad at. I guess it's an aspect of geekiness: I'm more concerned with doing my job than having a career.

    As to perl, there seem to be two schools of thought:

    1. Start coding right away so I have something to show for the first week (and preferably the first day).
    2. Create a good test harness that everyone can use.

    The first I understand. There's a lot to be said for hitting the ground running, and not spending the first month on an all-inclusive framework. The second seems like a longer-term project that will reap huge dividends in the second quarter but I won't have much to show for Week #1 or Month #1.

    At this point I'm thinking that the way to go is to code some simple tests to see how the system works and what the potential pitfalls are. At the end of week one, I'll have a few dozen testcases down and have something to put in Status Report #1. I'll write these tests with teh expectation that they will be put into a harness at some future time. In the second month, I build a harness based around Test.pm and begin rolling the testcases in (and developing more along the way.

    I'm looking for some guidance here. Has anyone tried this approach? Also, my intention is to print the output from the test harness to a web page so that my results can be public (when I'm ready to go public). Has anyone tried linking Test::Harness and one of the many HTML modules? Any advice?

    -Logan
    "What do I want? I'm an American. I want more."

Re: The New Job
by samizdat (Vicar) on May 20, 2005 at 15:33 UTC
    A lot of great advice here.

    I'll just add one that was very applicable in my current position:
    • find a Perl project that's in your department's main mission that isn't being handled well at all, and handle it
    In my case, it was graphic visualizations of test data. GD.pm and its siblings made short work of it, but the whole department now seems to shine in management's eyes because of that simple nail-hammering.