I recently got a job for a company that develops and manufactures high grade electronics (company will not be named for reasons that will become obvious).
I was hired from being a floor tester to being a test development technician about 2 years ago with the clear intent of being a software developer. (I have next to no electronics background tho I have picked up a little in the last 2 years.) Upon joining the department I was faced with a few facts.
1). Pure Hardware Engineers all think they can engineer software because software is an easy afterthought. 2). Source control and pretty much the entire Joel test are out the window and then some. 3). C is the language of the gods... except for when rapid responsive change is the standard, everything we developed was written in C by what appeared to be a team of monkeys.
I was faced with spaghetti code, no documentation, no standards, no source control, and no bug tracking. I've made it a point to hold myself to high standards but getting the department to adopt new development platforms (like .Net) is proving to be a nearly impossible task... How can I stay sane in this environment? How can I thrive, grow as a developer, continue to LEARN! One thing that miffs me is that I am literally the most qualified developer, and the lowest ranked person in the entire department (although at least they realized my value, when all the engineers moved into the new offices and the tech's got left behind, I did move into the new offices)
What can I do to work my way into a higher position without coming off as an elitist jerk? I was fortunate to even get into this position because although my code skills are mediocre, I'm a big fish in a small pond when it comes to my department. I ALSO HAVE NO DEGREE! I'm trying to remember to let my work speak for it's self but so little is really seen by management (much less understood, remember point #1 above) that it's becoming really frustrating to continue to put my best into my work. HELP!
I have a mostly good relationship with my boss, but he's a bit spineless when it comes to HIS boss. My boss was the only semi-competant programmer in the department until I started (he got promoted a week later) and he respects me as a peer in software. He's pretty approachable but I don't feel that anything I say really matters because of HIS boss.
Source control is in place but it recieved a rather... cold reception by my team beecause we were initially forced into using the corporately utilized Rational Clearcase (which sucks if you aren't using an IDE that integrates well). We're moving to SVN with Trac shortly thank god.