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.

Basically a programmer that comes in during the testing phase of a project and once a tester finds a bug, tracks down the cause. I enjoy this investigative process and am generally able to track down the cause of obscure bugs even in code that I have never worked on. I've done something like this internally in companies I've worked for, but I wonder if this is something people do on an independent contractor basis?

share|improve this question
6  
Maintenance programmer maybe? The funny thing is that many people hate to do only maintenance, so people like you are hard to find, and therefore these positions will be given some weird, fancy-sounding titles in order to find people who like to do maintenance. –  Job Feb 11 '13 at 4:41
    
Try management, you'll get to do plenty of that. –  Wyatt Barnett Feb 11 '13 at 12:24
    
We call them the SWAT team where I work, because they're primarily responsible for "swatting" bugs. –  Karl Bielefeldt Feb 11 '13 at 13:42
    
I think I've heard of "Software Analyst" as one of those fancy-sounding titles. –  Philip Feb 11 '13 at 15:15
    
At a former job, I referred to myself non-officially as a "Software Necromancer". I would find out what was killing it, and then bring it back to life. Unfortunately, as others have said, it was a job looked down upon by most (except the customers, of course). –  thursdaysgeek Feb 11 '13 at 22:18
add comment

6 Answers

up vote 3 down vote accepted

Yes, this sort of job exists. It isn't a common one and it does take some specialized skills. It also has some certain requirements for it to exist.

At a former place of employment, there was a department that startled the escalation part of customer service and engineering. It was called "sustaining engineering" (this is not an uncommon term for it - I can find references to my former employment and other companies searching on this job title) and had the role of identifying, fixing (both one off patch releases and reincorporating the code back into the main engineering mainline) the software.

Sometimes this job involved travel (it was hard to remotely debug a core file through an air gap at a military site). It also involved building tools to make the identification of bugs faster for the front lines of support.

The key to this department's survival was who it was answerable to - it was part of customer service. Engineering was driven by sales and marketing. They wanted new features out in the software, and they wanted the features out quickly. Thus, the engineering department wasn't active in the software once the release went out. On the flip side, the customer service department had to deal with the problems that were out there - and this is where the department was. If there was a bug in the software out there now, they had to track it down - reading core files, stack traces and sources to figure out exactly why the problem occurred and how to stop it for this particular customer now.

Do note, that every person in the department had at least half a dozen years in the company - it wasn't one that consultants and contractors were brought into. It was mostly hired from within - from engineering (in this case, it paid better).

See also What is sustaining software engineering?

share|improve this answer
    
Sustaining Engineering seems to turn up search results more like what I had in mind. In particular, this post describes pretty-much exactly what I'd like to do (which he calls a Consulting Maintenance Programmer). Thank you for all the fantastic answers! –  Partially Human Feb 11 '13 at 23:18
add comment

I've most usually seen this role called Support Programmer, and as other answers make clear, it's not generally seen as a high-status role, despite that fact that it is often the most technically demanding work available in a given organisation. I believe this latter point is one made in good old Facts and Fallacies.

Being good at this work and enjoying it makes you a valuable rarity, but convincing people of that to a sufficient extent to do it as an independent contractor will not be easy; not least because in order to sell your services, you need people to acknowledge that they have error-prone and difficult-to-work-with software, and the people you need to sell to (or at least get approval from) will often be the people that wrote that software in the first place!

If you have a good network of former employers and contacts, you might be able to build a good reputation, but it's getting that first independent gig that will prove hardest. And even then, be prepared to be resented by the devs whose software you are called in to troubleshoot...

share|improve this answer
    
Enjoying it is the key because it is one of the more stressful and least rewarding programming jobs out there. A lot of contract jobs are troubleshooting failed projects or filling in for someone on extended leave or as a temporary replacement for someone who's left the company. –  jfrankcarr Feb 11 '13 at 21:54
add comment

Hot Fix Team

This is a role often associated with a team of developers responsible for sending out quick fixes of customer reported issues. Often refer to as the hot fix team. They can bypass testing, code reviews, etc. to get the fix to the customer as quickly as possible.

Their changes may or may not be rolled into the trunk by the development team.

The developer will be responsible for reproducing the bug, but it's not required to automate the testing of that bug. They will then investigate the issue, fix the code and then there will be a hot fix issued only to the customers impacted by the bug.

Hot fix teams aren't always populated with senior developers. They are mostly a team of developers who respond to the needs of management, and often come from a testing background. They should have a strong interest in learning how things work, and not afraid to get into source code they've never seen before.

share|improve this answer
add comment

I have at least 2 professors that do this on a regular basis for the Government (USA). And I know of, and have applied for QA positions, and I'm sure you know of this since you say you've done it internally.

It all depends on how you market yourself, since I'm sure you can do it as a consultant based on what I've seen from my professors and coworkers.

share|improve this answer
add comment

Yes, at many large software companies they are called "Software Development Engineer in Test" (SDET). If you are good at it, just go to Google, Amazon, Microsoft, etc... and apply Or you could just get your Stack Overflow profile in the top 30% and setup your Stack Overflow careers profile. There are 6 SDET postings on http://careers.stackoverflow.com at this moment.

I have a document from my company describing the SDET role, but I am afraid of inadvertently breaking my NDA. Email me if you would like more info.

My basic synopsis is: SDETs have the same technical requirements as SDEs but they spend much of their time a.) checking the quality of code (i.e. via review board), b.) writing tools to automate build processes, c.) writing development tools, d.) maintaining and yelling at developers who write bad unit tests etc...

At the company I work for, we have a really well designed set of development and deployment tools. SDETs also write many of these tools.

As for tracking down bugs, that is often also a Support Engineer at many places. However, that position is much less "Sofware Developer"ish.

share|improve this answer
1  
I think that while initially it looks like SDET, I believe I'm right in saying that SDET's generally don't (or even aren't allowed to) go looking at the actual application source - what makes them SDETs (rather than just, er, Ts) is that they write their own software to exercise the thing under test. –  AakashM Feb 11 '13 at 8:49
add comment

In short: i would call it by different name. The question description for work described sounds like a software troubleshooter or support programmer.

but I wonder if this is something people do on an independent contractor basis?

Yes, there are professional software developers that are specialized in troubleshooting, tuning and maintaining real-world applications for variety of issues or bugs (such as security, performance, scalability, reliability and etc.)

Wikipedia defines troubleshooting as a repair of failed products or processes as quoted below:

Troubleshooting is a form of problem solving, often applied to repair failed products or processes. It is a logical, systematic search for the source of a problem so that it can be solved, and so the product or process can be made operational again. Troubleshooting is needed to develop and maintain complex systems where the symptoms of a problem can have many possible causes.

share|improve this answer
add comment

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.