Sometimes classifications hit home in an uncomfortable way. Most software developers, if asked about what kind of role they play, will generally identify as being "professionals" in the same way that a doctor or lawyer is a professional. Indeed, this is also the classification the Bureau of Labor Statistics uses for the profession. On the surface, this should be obvious - most programmers have at least a Bachelor's degree, many have credentials, they are involved with creative work, and they work in an office. Indeed, many tend to aspire to being a "scientist" and their perspective is, not surprisingly, academic.
Having said that, however, from an organizational standpoint, it can (and should be) argued that a software developer is a tradesperson, more akin to a plumber or carpenter than to a research geneticist or an attorney. While this flies in the face of orthodoxy, the reasons for this assertion are also pretty strong:
What's important here is experience. In school, software is largely platonic - you are taught data structures, writing compilers, two or three software languages, and algorithm development. This is all useful, but without messy, chaotic real world experience, most of this will simply not stick (quick, write an optimized red/black btree sort algorith in C++), and, being honest, much of it will not be used.
In any organization, that 50%/40%/10% split is pretty much ideal for software developers. The distinction at the edges tend to be blurry - a senior apprentice will often do much the same job as a journeyer, a senior journeyer will already by doing architectural roles - but the mix is important because it assumes a certain continuity of knowledge and expertise.
It is also an area where outsourcing and overuse of the H1B visa is wreaking havoc. This is not intended to be a screed against immigrant workers; my contention is that most such workers are even more victimized by this system than native workers are. The H1B visas were originally intended to fill a very specific hole - places where there was not enough native talent to be able to meet demand.
What has happened instead is that H1B visas have become a way for companies to bypass high local salaries (high in great part because of local economic conditions) in order to acquire skilled programmers at far lower rates. This is a form of labor arbitrage, and it can be highly destructive when abused (as it is now). I'll take the specific case of Indian developers in an American setting, because it is the prevalent, though not only, example.
There are actually two variations off of the same theme. The first is outsourcing, the second is H1B. In the case of outsourcing, companies in India are able to offer comparable services for lower rates than would American firms because the cost of living in Hyderabad is considerably lower than it is in San Francisco or Tyson's Corner Virginia. This has two immediate effects - it reduces wages in San Francisco for native developers (meaning that their net standard of living decreases) and increases wages in Hyderabad (meaning that theoreticall their net standard of living increases compared to local cost of living). This creates distortions on both sides as wages eventually equalize. However, the bulk of the savings on both sides are kept largely by management, and programmers in Hyderabad continue making about what they would have made in the local environment.
It also has a very insidious effect on the outsourcing companies. The money paid to outsourcers is not being invested in in-house development resources or training. Companies that develop software are losing their expertise in developing software because those teams are no longer with the company. This is made worse by the fact that most hiring managers tend not to recognize that a programmer with one year of training is not going to be as capable in the broader aspect of software writing than one with ten - and because such work is done half a world away, there is no way to verify that your skilled team is not a bunch of rank amateurs.
For India, this is bad in other ways. Conditions for a programmer working in Hyderabad are often brutal - pushed through schools that teach the barest rudiments, programmers work elbow to elbow in large rooms filled with rows of tables, usually with comparatively little in the way of mentoring or supervision and little time for actual thinking. Burnout is usually high, and most would rather work in the US where wages are much higher. Thus, an H1B visa becomes a highly coveted ticket.
Hyderabad has also become like San Francisco in other respects, most notably because if you aren't making even the watered down wages that programming offers, it's too expensive to live there. Worse, when the US goes through one of its cyclic downturns, it has a huge negative impact on the Indian economy as thousand of programmers are idled.
The H1B program however, has its own pernicious effects. Wage arbitrage is still a factor, but it also places a particular onus on the employee. If a person is without work for more than sixty days, they have to return to their host country. Job hopping is frowned upon, and moving from one company requires that the new company also can obtain an H1B visa slot. If you are on an H1B visa you can't start your own company. There are also dependency issues.
Companies in the US have been pushing to lower the requirements on H1B visas and increase the number of slots, but again, the same issues are present - in theory there is a prevailing wage requirement (people on H1B visas must be paid the prevailing wage for a given position, but those numbers tend to be deliberately kept low so as to push H1B wages to the lowest potential value).
From a US standpoint, it also means that a lot of native apprentice programmers going into journey positions are being blocked from progressing in companies because they are competing against artificially low wages (the H1B wages become the prevalent wages). This leads to a higher rate of drop-out, which means you have fewer native coders reach the upper-level strata of skills that are often demanded by employers - and they don't consequently learn those skills. In other words, the very presence of the H1B program inhibits the ability of the work force to gain the skills necessary to meet employer demand, which in turn accelerates the need or more H1B visas. It becomes a self-reinforcing cycle, with the consequence that many companies "turn Indian" as more and more mid-level positions are taken up with H1B visa-holders.
As Indian H1B holders are putting down roots, they are also not building out businesses in India (many indeed apply for US Citizenship instead). This is consequently hampering that need for upper level journeyers and masters in Hyderabad, so critical to starting up an internal software industry, and also leads to burn-out as junior level journeyers are pushed into senior level slots too early.
Now, despite all this, arbitrarily freezing the H1B program and pushing the bar immediately to $100K minimum salaries, as the Trump administration is proposing, is not an effective solution. This is a situation that has built up for decades, and it will need to be wound down over several years without it becoming highly destructive to companies and employees on both sides. A phased reduction and stepped system over four or five years allows for companies to intelligently plan for both a draw-down and reasonable accommodations. It doesn't literally strand H1B visa holders in airports, nor does it keep those people for whom a legitimate H1B visa requirement exists from seeking one.
This is a complex issue, one made even more complex by the very fluid and distributed nature of software development, where requirements tend to be difficult to quantify. Understanding the basic trades nature of development helps, but so does realizing, at the end of the day, that wage arbitrage itself needs to be very tightly regulated at the international level.
Kurt is the founder and CEO of Semantical, LLC, a consulting company focusing on enterprise data hubs, metadata management, semantics, and NoSQL systems. He has developed large scale information and data governance strategies for Fortune 500 companies in the health care/insurance sector, media and entertainment, publishing, financial services and logistics arenas, as well as for government agencies in the defense and insurance sector (including the Affordable Care Act). Kurt holds a Bachelor of Science in Physics from the University of Illinois at Urbana–Champaign.