While there are many issues that can crop up for us in the tech industry, one of the ones that concerns me the most is often overlooked. I'm in the midst of getting my CIS degree, and I am about to attend DevBootCamp. I am accumulating skills and knowledge at a rate that I hadn't thought possible, but they are all computer related skills. Once I've completed my training there will be one more skill that I will need to acquire, unless I can outsource it.
Negotiating terms of employment, or even short-term contract work, isn't discussed that often. Us "boots" will have the skills to become junior developers, and in our excitement to do so many of us will jump at the first offer that is presented. Some will know that they can negotiate terms with their future employers, but many of them will not even try. This is typically because they don't want to scare off this opportunity that is in front of them. As the old saying goes, "A bird in the hand is worth two in the bush.
As a result many developers undersell themselves, and many employers are able to bill for significantly more than they are paying their employees. In one example that I came across a software consulting company was charging $250 per hour, and paying the programmer $100 per hour. While I would certainly be thrilled to earn $100/hr, I can't help but think that I'd be even happier making something closer to $250/hr. While I thought that this might just be "how it works" I found through some research that this epidemic isn't unique to the tech industry.
When Hollywood boomed with the onset of the film industry, many studios treated the actors in a similar fashion. They would be held to multi-picture contracts and paid flat amounts, regardless of the film's performance. If they wanted to work on a project outside of the studio they were contracted with they would be unable to. It wasn't until the actors started hiring managers and agents that they were able to wrestle back some of the control from the studios. The music industry has also gone through a similar transition.
In the tech industry, we are now becoming recognized as artists for the work that we produce. While some people just bang out code without care for its style, many programmers produce elegant and highly functional code. Some of the best programmers produce code that is highly intelligible to both the computer and future coders as well. This makes them very valuable and truly marks them as artists of the craft.
This is where the agents come in. They are specialists in business and contract negotiation that take the pressure off of us, and allow us to focus on what we do best. Companies such as 10x and HackMatch put programmers together with companies on a freelance basis. Today, typically, companies pay headhunters a finders fee to locate x number of programmers for a project. In this new paradigm, agents match programmers with companies based on the company's needs and the programmer's skills. Then they negotiate the programmers terms (pay, etc), and in the end are paid by the programmers. This gives the agents an incentive to pair the programmers well and consistently. If they don't find us work they don't make any money. Also, if they develop a reputation for representing talented programmers, then companies are more likely to come to them in the future.
Of course, there's backlash to this whole concept. The CEOs of major companies would argue that agents are an unnecessary part of the equation, and that they are parasitic opportunists. Typically those tech giants (Facebook, Twitter, Google, etc.) have their own recruiting department that takes care of finding new talent. They also argue that talented programmers will always be in high demand.
The only problem with this is that I still won't have the business acumen to negotiate what I am worth. In the end, if I'm left to do my own negotiating I'm going to feel grateful that someone is offering me a job, and I'm more likely to take the first opportunity that is presented to me. If I had someone doing the negotiating for me, even if it isn't an agent, they will be that one step removed from the situation to see it clearly. Maybe agents aren't the answer. Maybe we need to develop dev teams and hire ourselves out as a collective. Maybe we just need to negotiate terms for one another. These are all things I plan on looking into in the coming months.