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.

I work as the back-end developer, front-end developer, systems admin, help desk and all-around 'guy who knows computers' at a small marketing company of about 15 people.

I was wondering if others could share their experiences flying solo at companies that aren't necessarily inclined toward the technology industry.

I originally took the job in order to transition from front-end developer/designer to full-time coder. It's been a good experience to a point. I definitely get to occupy the role of 'rock star' programmer - because frankly, no one really understands my job.

Lately, it feels like a very solitary position. I rarely get to bounce ideas off of people, and everyone looks to me like I have magic powers that will make all the computers work and land us first on Google searches. I've also felt a strong disconnect versus between what we say we want (projects with large, months-long development schedules) versus what we actually do (copy-edit our sites over and over).

So who else finds themselves being the 'tech guy' in a company that thinks technology is all a bit magical, and what is your take on your situation?

share|improve this question
    
I lived that scenario most of my professional life... but never with 15 people who knew nothing about computers alongside. –  Cawas Oct 1 '10 at 19:06
    
Most of us call that a dream job... just saying. –  jmq Feb 16 '11 at 5:51
1  
get a rubber duck? c2.com/cgi/wiki?RubberDucking –  James Khoury Sep 30 '11 at 2:23

8 Answers 8

up vote 21 down vote accepted

Take advantage of the situation you have - to a certain extent, I think you have a little bit of "grassisgreeneritis". Sorry, I'm not trying to be funny here but rather serious. What I mean is that there are short-comings in every position at every company. Yours are starting to get to you more because they are now very familiar. But, at tech companies, schedules and time commitments become an issue. At larger non-tech companies, overcoming political stupidity and procedure can be big issues.

So take advantage of what you have now; learn what you can. Once you believe you can't really learn more, it is probably time to move on. There is no harm in that; it sounds like you are one of those people that have to grow to be happy with a job. Your current company should understand that when you reach that point and honestly, if they don't, leaving is definitely the right thing to do.

Having said all that, there is more you can do in your current position.

If you are feeling solitary, make some changes to eliminate that feeling.

  • Use on-line communities to bounce ideas off of people (StackOverflow is great for this).
  • Do some research with Google to find out what it would take to land your company first and then put a proposal together to get it to happen.
  • When going through projects, take the initiative and change how things happen. Don't go for the impractical, long projects. Instead, propose month long incremental improvements. Over a year, those add up and can really help you feel like you've accomplished something.
share|improve this answer

There is one distinct disadvantage to being the only developer - you have nobody to learn from.

In my opinion the best way to become a better programmer is to work with people who are better developers. If you're the solo developer you have to go out of your way to learn new technologies, concepts and language features.

I think it's important for any serious programmer to surround himself with other programmers who can challenge him at what he does. If you're working on your own you're missing out on a large chunk of what programming is all about.

You can probably earn a decent salary doing this and make yourself indispensable, but in the long term you're not going to grow as much as you can and I think the disadvantages outweigh the advantages in this case.

share|improve this answer

There are advantages and disadvantages.

You listed the most important disadvantage to me: you can't share with colleagues. But you are here with us right ? You can share with us.

The main advantages are the following:

  1. You are the top in your field in your company, and you will be there for a long time. This is very important. In large enterprise where you have dozens of developers, there is lots of competition, and most are affected by that. That's stupid, but it's the human nature.
  2. Since it's a small company, you will be likely the guy to get the approval from to hire new IT people that you will manage. This will put in a nice position where you will have many choices.
  3. Being the only one to manage IT (even in a small company), is an opportunity. You will be credited for the successes.
share|improve this answer
1  
I've been in this kind of position before, and in fact just recently accepted another job as the lone coding/IT wolf at a non-techie company and I agree completely. –  Pax Noctis Sep 26 '10 at 19:11
2  
That's assuming the company WANTS to hire more IT people. Being in this position in the past, I can say with experience that most of the time, there's no desire to expand IT, thus leading the person there to be stuck as a one-man shop for the entirety of his/her tenure with the company. –  Wayne M Sep 30 '11 at 12:47

I spent a few years as a solo programmer in a non tech company. I was employed for my techie skills but soon found a use for my programming skills (from writing small utilities to reasonable size dev projects).

One of the benefits was that I was able to read up on "best practice" and implement them within the organisation (eg source control, unit testing, functional testing etc...).

It also gave me an insight into the full lifecycle, from requirements gathering and use case specification through to post release support and release management.

I feel that the experience made me a more rounded developer, and the experience has been a benefit now that I work for a software dev company.

With regards to feeling solitary, I agree - I felt the same way. Internet communities are useful for bouncing ideas off, and local user groups can also prove entertaining. Don't have one local? Start one - there's likely to be people local to you in the same boat!

share|improve this answer

I have been in this situation most of my career. Here are the pros and cons as I see it:

Pros

  • You usually dabble in more than just programming; you also act as a systems analyst, architect, and developer.
  • More exposure to the actual business, since you really need to know what's going on due to not having an analyst/architect to handle the design work

Cons

  • You've hit the glass ceiling in almost every instance of this scenario. Unless you're in a rare company that plans to expand it's IT/Software department, you will never be promoted as there's nothing to be promoted to, and you probably will never get to hire people under you.
  • Probably overworked, possibly underpaid
  • Easy to get frustrated due to not having anyone to bounce ideas off of or brainstorm, you basically have to go with your gut instinct or spend a lot of time on sites like this or IRC or whatever talking to your peers.

Ultimately, I would say it's not a good career choice, unless you have a vested interest in the business, if it's a business you want to move into from IT, or if you are close friends/relative to the people running the company. You will learn a lot about non-software, but your experience is largely discounted because you're always going to have a heap on your plate. In all but the rarest of experiences, you're never going to be able to improve the company if their setup is bad (i.e. low-quality hardware, bad code/database), and you'll never be able to hire people under you and then become a true manager.

When I worked at a small six-person shop two years ago in exactly this role my title was "Director of IT" but I had no reports and was the sysadmin/developer/DBA all-in-one. While I learned a bit about dealing with senior management on tech decisions, I was never given the resources to actually do anything (i.e. I had no reports, no budget, and was not authorized to make any decisions), and as such I would be laughed out of any real manager interview I would go for since I wasn't a real manager but an "IT Guy" with a grandiose title. The stagnation ultimately did more harm than good and I ended up with a fair bit of health-related issues (ulcers) due to the stress of having to manage a dozen or more things on a shoestring budget with zero support or assistance.

Would I do it over again? Only if I knew the company was solidly behind me taking the reins as an IT Manager, and would give me A) The resources I need to do my job, whether that's a budget for software/hardware, the ability to hire people, or at the least hire good contractors and B) The support to make educated decisions for the company; basically being treated like an executive/manager (because if you are the only IT person, you are essentially the CTO/CIO and are expected to confer almost daily with management about the technology direction of the company) and not like an employee.

Situations like this almost never turn out well unless you find a rare case with business owners who care about growing and want to grow their IT Department. In a case like that, you are gold if you want to become a manager. In most cases though you'll just get burned out and have nothing to show for it except a trumped-up title that no true manager will accept as valid.

share|improve this answer
1  
In retrospect, this is a more accurate answer to my situation (but not necessarily all situations). I've since left that job, and am now working with other programmers who are a lot smarter than me. Definitely the right move for my career. –  Bryan M. Oct 4 '11 at 13:36

I'm in a similar situation. Things are slow right now but we have a new line of business we're starting internally and another from a buy-out. Things change very quickly. Projects come and go. It does get lonely, and the SO family of sites has helped technically and personally.

All things being equal, I'd rather be part of a team, but my last company had a small group of developers. We always worked on different projects independently. We lost our manager who was temporarily replaced with the head of accounting. His idea was to let us manage ourselvels and deal with all the vendor relationships, project management, meetings etc. I left before they found a replacement; I just couldn't take it any more. Like I said, all things being equal.

I do get involved with people from other departments on projects. Now and then I get to work with a developer of another company we're trying to integrate into our applications.

When I worked from home, I had more flexibility to go to a local user group (it was about 45 min away). Since I commute by train into the city, it's been tougher attending. I wish there was something closer.

share|improve this answer
    
+1 for mentioning the importance of working with a team –  Bryan M. Oct 1 '10 at 19:41

My experience has been similar to ChrisB's. I was effectively the sole application developer for my department for three years until we (recently) brought in a second developer, and that has changed the situation a lot.

The great thing about being only technical guy is that you can learn something new and implement it without convincing or training anyone else. Once you have other technical people then you need to carry them with you, which slows things down a lot.

The big disadvantage is that there a limit to what you can or will learn on your own, so you need to work harder to stay disciplined and keep progressing, and will eventually reach a limit. I think that once you reach a certain point you can't easily progress further except by interacting with developers more expert that yourself - advocates of Software Craftsmanship ideas have a lot of interesting things to say about mentoring.

share|improve this answer

I've known people in that position. I'd say that the critical question is how much they respect you. There are very small businesses that will take the attitude that the programmer is a necessary evil (one very good example I know of was a family-owned business), and very small businesses who will consider the programmer the resident computer expert. It sounds like you're respected, particularly since you don't talk about having to do the odd tasks that people wind up doing in very small businesses.

share|improve this answer
    
I take care of all the odd computer related tasks. But I typically don't mind that stuff, as long as it isn't too time consuming. –  Bryan M. Sep 27 '10 at 19:54
1  
And I certainly don't feel disrespected. I think it has more to do with vision. I see ample opportunity for technology to let us be more efficient or serve our customers better, but that's because I spend all my time living in the tech world. But at the same time, I need to make sure our technical debt doesn't get out of control. It's a frustrating balancing act, and communicating it to people who've just never been there before is tough. –  Bryan M. Sep 27 '10 at 20:01

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.