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've worked in software development for 15 years and, while there have been signficant personal achievements and a lot of experience, I've always felt detached from the man/woman-on-the-street, the every day person, how it affects their lives, in a number of ways:

  • the technologies: embedded software, hidden away, stuff not seen by the everyday person. Or process technology supporting manufactured products
  • the size of the systems, meaning many jobs, divided up, work is abstract, not one person can see the whole picture
  • the organisations: large, with departments dealing with different areas, the software, the hardware, the marketing, the sales, the customer support
  • the locations and hours: out-of-town business parks away from the rest of society, fixed locations, inflexible: 9-5 everyday

This to me seems typical of the companies I worked for and see elsewhere. Granted, there are positives such as the technology itself and usually being among high calibre co-workers, but the above points frustrate me about the industry because they detach the work from its meaning.

How can one:

  • change these things in an existing job, or compensate for them?
  • find other work that avoids these and connects with the final end user?

Job designs tend to focus on the job content and technical requirements rather than how the job aims to fulfil end user needs, is meaningful.

share|improve this question
Sounds like you want User Experience, an area all too many companies ignore. –  Ben Brocka Sep 19 '11 at 16:17

5 Answers 5

Search for it, especially the ones that say "some travel required" - ie travel to customer sites for support, installation, requirements capture and general discussion on how the software is to work for them.

Company size doesn't really matter as even the small ones have people dedicated to the role of customer liaison, (ie to keep the nerdy devs away so they don't say stupid things to the customer), and most developer teams prefer to have nothing to do with other people (even other devs in the team if they could sometimes).

You will find a more "support engineer" role to be the kind of thing you want, but that's not advertised with those words sometimes, you still have to read between the lines.

You can add the desire to work directly with customers on your CV, and tell the agent, as it will very often assist in your job hunting. Companies love people who can communicate with the rest of the business and isn't a propeller-head geek that is best kept locked away in a dark room. This might mean you have to develop more of the 'design' skills like requirement analysis and writing specifications, or post-development skills like troubleshooting on-site crashes and support.

You will not find a pure development role that does this. Don't think you'll be stuck in the dark cupboard coding away and every so often, when you feel like it, get allowed out to see the customer.

I can tell you it is very satisfying though, once you've been on-site a few times, been in meetings with real customers, you find the software you develop takes on a whole different meaning from simply tinkering with technology. End-results start to matter a lot more, and you will develop a knack of seeing potential problems (eg performance or usability) that your other devs don't.

You will probably still be stuck away in an out-of-town business park, that never changes. Your colleagues will be of even higher calibre than you're used to, but you'll start to see the technology as relatively irrelevant.

share|improve this answer

Learn about user interface design; start by reading Don't Make Me Think. Your goal isn't to become a UX designer, but rather to become a developer who thinks about the end-user when crafting software.

As you build up knowledge in user interface design and let other people know it (depending on how your company is structured, this can be as simple as your manager noticing which assignments you're most enthusiastic about) you will be gradually shuffled towards projects that are closer to the front-end.

Again depending on your organization, you may need to actually switch jobs to get out of where you've been pigeon-holed, but the best place to start is seeing how much you can shift the focus of your current job.

share|improve this answer
+1 @jhocking good book "Don't make me think" –  therobyouknow Sep 19 '11 at 14:18

I really like gbjbaanb's answer. Some additional possibilities:

  • Maintenance and support roles. Most developers don't like these, but you will interface with the end-users in this role. As gbjbaanb said, you'll become a contact for them and it can be satisfying to see them getting problems resolved. Development in this space however, can vary a lot. Some teams use regular developers that are doing programming work to also assume support duties, and this can lead to the production support vs development issue. Or you'll be dedicated to the support role and not doing a lot of development at all.
  • Sales engineer. This role goes to client sites with the sales team and works to promote the company's products. They answer technical questions from prospective clients and may work in cobbling together prototypes or configuring a demo. You don't get to develop a long term relationship with the end users here, and if careless, could become more of a problem creator than a problem solver, but it is client contact.
  • Implementation roles. In this role you are part of the team that installs applications for a client. This is hard to pin down because different companies handle this differently. In some cases, a developer doing this might be a sales engineer. In others it might be a senior developer on the project team. In still others where a company has a large amount of activity in implementations, there might be dedicated teams doing this. Contact with the customer in this role is there, but limited to the implementation phase.

I think that the nature of development makes it hard for the kind of role you are seeking to exist. Since development requires focus and some stability, it is at odds a bit with client-facing roles. As gbjbaanb said:

You will not find a pure development role that does this. Don't think you'll be stuck in the dark cupboard coding away and every so often, when you feel like it, get allowed out to see the customer.

However, if you are willing to trade out of development but still want to be involved in technology, there are lots of other roles like business analysis and project management that interface regularly with the users.

share|improve this answer
+1 @Bernard Dy for a look at various roles –  therobyouknow Sep 19 '11 at 14:19

Working in a smaller business is one way to do it. You usually get more flexibility to make changes that make somebody's day easier, and you get to see the smiles when you succeed.

share|improve this answer
+1 @Terence Johnson true, I imagine. –  therobyouknow Sep 19 '11 at 19:02
up vote 0 down vote accepted

+1 to everyone who contributed. But I think there is no wrong or right answer here. It's a personal choice and perception of what the final end user is. And there are several ways to do it, from being in sales or support to creating one's own android or iphone app or open source project. Another place for those interested to look for answers is: careers.stackexchange.com

share|improve this answer

Your Answer


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.