Live data from Hacker News

How to Differentiate Software Engineering?

news.ycombinator.com

1–9 of 9 posts

How to Differentiate Software Engineering?

#1
I run a software engineering department in a large R&D/thinktank company. Recently we've been getting pushback about why they should keep our relatively expensive department rather than just hiring contractors. I think our breadth of experience and large network helps bring something special to the table, but I'd love any ideas you have~ How do I convince upper management that we're not fungible?

Re: How to Differentiate Software Engineering?

#3
post #2

How do you expect people to answer without knowing anything about your company and your team?

True. We mostly create prototypes which are then matured by other companies. We're coders - lots of people a few years out of school, with some experienced guys. Basically, if you want to sling code, you come to me. If you want to do other parts of software engineering (architecture, systems engineering, etc) you go to another dept.

Re: How to Differentiate Software Engineering?

#4
Is the push-back to replace the entire department with contractors or bring on contractors in ancillary roles? If the former, then the simplest one-liner that I can give you is that "you can't outsource your way to prosperity." Never going to happen. I would suggest asking why they wish to relinquish control of their business to a third-party(s) that have no intrinsic motivation in the success of the business? Given that you are in R&D, knowledge/experience is the company's bread and butter and handing that over to contractors is an unnecessary risk.

Re: How to Differentiate Software Engineering?

#5
post #3
post #2

How do you expect people to answer without knowing anything about your company and your team?

True. We mostly create prototypes which are then matured by other companies. We're coders - lots of people a few years out of school, with some experienced guys. Basically, if you want to sling code, you come to me. If you want to do other parts of software engineering (architecture, systems engineering, etc) you go to another dept.

Honestly, slinging prototype code probably could be outsourced. The hard problems of finishing, polishing, scaling, running, and iterating are where you need deep tech and business expertise.

I suspect if you expand more on details, you may be able to help us understand what makes you different, but "we code" isn't making that argument.

Re: How to Differentiate Software Engineering?

#6
Your programmers have a shared experience base with the other departments. They aren't considering all the time and energy that would be required to bring new people up to speed on a given subject without that history.

Remind management of those potential costs, and the value of all that shared experience.

Also, talk to the staff (not management) of the other departments, and get them thinking about the implications that would happen in their lives if your staff were outsourced. They could probably give you estimates of your value to help make your case to management.

Re: How to Differentiate Software Engineering?

#8
Contractors are often much more expensive. Also they're mercenaries. They don't have the company's interests at heart.

Loyalty has a value. You can train people for things specific to the company. You can build cultures and processes around the company's needs. A contractor can be the spearhead, but you still need a spear shaft.

Re: How to Differentiate Software Engineering?

#9
If you don’t know what they would lose if they were to get rid of you, how can you expect us to know?

If my team left my company they would lose knowledge that would take a decade to recover due to technology complexity + specific domain knowledge that no contractor would be able to pick up in a timely manner. Because of said knowledge the day to day operations would halt and no one would be able to run it, leaving all the people that use our work to make all the sales for the company unable to work.

You have to figure out what your value is, if any.

Edit: if I may add something for all tech folks out there: you don’t program. You use programming as a tool to generate value for the company and its customers. You have to know and understand by heart how said value is generated. Tech is the means to an end and is useless without knowing how it’s used.