tags:

views:

304

answers:

12

If this is out of line, please close it.

I wonder if any of you have a "programming" job where you get to code but that is not all you do. For example, do any of you have a job where you get to code, but someone might call you for desktop support? Do you have the kind of job where you may get to code for days but often are a jack of all trades, having to fix network, desktop, printers, email, etc.?

I ask because so many of you are great coders and it appears that that is all you do; thus, you get really good at it. There are advantages to the jack of all trades such as learning about various technologies and how you can fit it together with code. Plus if you're really off that day, sick, etc., you can fix a PC instead of racking your brain, not producing much (i.e. you get a break and you can think about code without being at the project.) On the other hand, you never really get good, really good, at programming, like so many of you.

Just curious. Thank you.

A: 

Yep.

I work in a small office and I'm the new guy, so whenever a computer needs to be setup, software installed, hardware problems that need to fixed, etc. I get assigned to do it.

I really don't mind, I've been tech support before, and to be honest I actually enjoy the variety of it. I just don't want to do it for a living, but here and there is a nice change of pace which is why I try not to let it interfere with any actual programming responsibilities. So I think as long as you can find a balance, you can still be a really good programmer (not that I am, yet) and do general IT things.

Brandon
A: 

I had to do, any many people I know had to do other things than programming when working for small to medium sized companies.

Such companies often don't have the resources to hire a dedicated developer and dedicated system administrator, or a technician etc. So they use what is available.

Nikola Stjelja
A: 

I think one of the things that can make you a better developer is to have an understanding of the platorm you create applications for. You can develop applications that can take advantage of the platorm to allow better performance and scalability.

Along with coding, I am also responsible for having a deep understanding of IIS, ACL permissions, database design/administrator and some networking.

Michael Kniskern
+5  A: 

I don't know anyone who only writes code. At some point everyone has to deal with their hardware as well as network and server admin issues. Refill printer paper. Fill out expense reports. The list goes on.

Many programmers manage teams and spend a lot of time on project management, mentoring, and the occasional HR issue.

Independent contractors and consultants are responsible for get their marketing, accounting, and other business functions done, even if they outsource some things.

Walt Gordon Jones
But it sounds like all you do it programming oriented. When you say refill printer paper, do you mean for everyone or just your group? Project management here, sounds, again, like programming, and mentoring too. Not discounting you at all, just that it sounds like you are very much programming oriented and that that is your sole job.
johnny
Point taken. I think the key issue here is managing priorities. If you understand why you have to be responsible for these other things, you can approach it in a positive frame and try to minimize distractions. if you feel like it's someone else's fault (e.g. 'My manager sucks for making me do tech support.'), it's harder to prioritize effectively because you shifted responsibility for your situation onto someone else. Mine all sounds programming-oriented because I made it that way.
Walt Gordon Jones
+5  A: 

I wear many hats. In addition to being a programmer, I am:

  • system admin
  • data security officer
  • desktop support
  • dba

with all the fun that comes along with each one. I personally think that the more general you are the better your core concentration becomes. I'm still learning a LOT on how to write better code, but my IT background give me a lot of backend knowledge many programmers don't have which makes the overall solutions more solid in many cases.

squillman
Thanks. I forgot to put DBA.
johnny
That sounds like my job description. I have found that the best developers have a detailed understanding of EVERYTHING to do with the platform and the software development lifecycle. The best developers have an understanding of all the jobs they associate with, so that when the Ops guys call for help it is only the really good programmers that can tell them exactly what ports to open and the minimum set of ACLs required as well as understand the problems that they are facing.
David McEwing
A: 

As are many among us, I'm running a small business.

Kriem
A: 

In addition to coding, I am the sole sysadmin on one enterprise system, handle much of the DBA responsibilities on a few different SQL Servers, perform a few operational tasks and do my very best to take care of my own desktop support (as well as that of others around me).

Rich.Carpenter
A: 

I started a new job last year as a ".NET Developer". I found out after the first couple of weeks that I would be called upon to wear the pager on a rotation with everyone else (small company, but there where seven of us at the time). Now we are down to just four on the rotation. Other then this monitoring support, I'm not involved in anything other then development.

DaVinciCoder
A: 

I used to work for a small company so in addition to programming, I was the sysadmin and a project manager, and I also was involved in tech support (24/7), testing, documentation, and training. After three years, I left that job.

Now I just do programming for a bigger company and I'm much happier.

Graeme Perrow
+1  A: 

I think my job title of "Web Developer" can be labelled as programming but there are a few other things that I may do:

1) Server set-up -> From configuring IIS for web sites, setting up virtual directories, installing additional software needed to run the software we develop, this is also part of my job.

2) Application support -> If someone is experiencing problems with a web application or web site, I may get that support ticket and have to try to resolve it. This can be as simple as restarting a server or forwarding the request on to the person who can handle things like setting up accounts.

Of course either of these things can have a bit of a time dependency as someone may want that server up ASAP or that support ticket fixed immediately using time travel if possible.

In previous positions I'd also worn a couple of other hats:

1) Web and network management -> Tracking which machine had which IP and where various domain names pointed. SSL certificates are another part in this. Firewall configuration is also part of this.

2) Database management -> Create everything that MS-SQL server will use for a website including accounts, tables, stored procedures, views, and triggers.

JB King
A: 

The variety of work is what I like about small shops.

David Thornley
+1  A: 

I've always worked at small companies and had to wear (and juggle!) several hats.
If you're asking for advice on what duties you think you should be willing to accept, I would strongly recommend steering clear of any external support - that's the job that will eat away at your other deadlines because every call or email you get is always high priority and always only on your plate.
Things like fiddling with IT resources, doing documentation or even testing can be time consuming but if you're a developer you can always pass them off or ignore them when it comes to crunch time.

Stefan Mohr