Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Context: A firm which markets oneself with all kinds of partnerships and like a programming firm, but feels to me to be a firm employing cheap students at low wages to work on their major product (which looks the part). They market themselves with a lot of praise, but I have never heard about the firm in the open-source community, which makes me skeptical about their level of expertise.

Now this firm is looking for some long-time engagement and offering a job to work on this product. But my first impression has been very negative:

  • no version control,
  • non-running codebase,
  • amateurish and inexperienced feel of the codebase.

On top of that, they appear to to be dishonest as they push for low wages by minimizing the importance of the problem, but still require a long engagement.

I don't think I can ever solve any meaningful problem in such an environment where I face this kind of diversions. It is good to speak about problems honestly and openly. Here, I am afraid about just wasting time.

Any experience like that, and recommendations about how to assess the situation or get them to change?

share|improve this question

closed as off topic by Mark Trapp, Yannis Rizos Mar 6 '12 at 5:35

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Don't rewrite. Learn to fix. Or just don't take the job,. –  Rig Mar 5 '12 at 4:12
7  
I wouldn't take over a train wreck unless I had some guarantees of fantastic compensation. –  ChaosPandion Mar 5 '12 at 4:16
1  
@Rig - I disagree, sometimes you gotta let go of a lost cause. Do you have a good reason for your opinion? –  ChaosPandion Mar 5 '12 at 4:17
1  
@ChaosPandion Sometimes...more likely though is the most cost effective measure is refactoring. Of course you won't get the chance to because you will be too busy –  Rig Mar 5 '12 at 5:46
2  
I agree with Rig but overall your gut reaction seems to be sending you some red flags. Follow your gut. –  Mallow Mar 5 '12 at 8:34

4 Answers 4

up vote 18 down vote accepted

It sounds like you already know the answer, but want someone to validate it.

Don't take this job. All of the things you mentioned about their process are red flags. Not using source control is inexcusable. The fact that code doesn't run means that the code base is are already in bad shape before you even walk in the door. The lack of documentation means it will take lots of time to learn how the system is supposed to work and how it actually does work. The vague specification is not going to make any of this easier and will make other things harder.

The tone of your post shows that you are not impressed with how this company runs it's software developement department. Things aren't going to magically be different the day you walk in the door. You might be able to fix some of the problems, but it won't be immediate and you will get push back from the people who make decisions.

Learning to refactor code and fix existing bugs IS an important skill. And, at times, it is the correct decision compared to a rewrite. But there are better situations to learn those skills than the environment you described. Most jobs you get will expose you to this type of work and you will learn as you go.

share|improve this answer

Only take a job where your authority matches your responsibility. You could take this job if the employer understands they have a pile of WTF, they are willing to let you do whatever you think is necessary, and understand that it could take a while. Do not take this job if you will be expected to somehow get this pig to fly.

share|improve this answer

Life is too short to trying pushing string uphill.

This 'opportunity' will not expand your skills or be useful when you try to get your next job. If there's nothing else in your area you might be stuck with it, otherwise try finding something else that offers professional development and good CV material.

And if their management believes they are successful then 'why should we change what is working so great'?

share|improve this answer
    
+1 how many times have I heard that last line? Of course it's usually subtle as in talking about feature deadlines. –  Michael Durrant Mar 9 '12 at 6:02

This will provide you with wonderful first hand experience of how not to manage a company, while you look for your next job.

You will tell tales about those guys' mistakes to your future coworkers for the next 10 years os so. And will add "refactoring and integration of <some-obscure-technology>" to your resume. Take it for what it is, a temporary flick to pay the bills until a good opportunity comes around.

Oh, after the first month or so of working there, set yourself a secret deadline for bailing out, and stay true to it. You probably don't want to make rust in there: bad work environments are a threat to mental sanity, on the long run. (i.e. >2yrs, I'd say)

share|improve this answer
    
Two years and I'd be ~~~~~~~~~~~~ –  Michael Durrant Mar 9 '12 at 6:03