
Not the autoworkers of our generation - imsky
http://imsky.co/blog/not-autoworkers/
======
angersock
As much as I'd like to agree with the author, the case stated is pretty holey.

To pick on the "We'll never be automated example":

It's not that one day programs will write programs that write--oh wait, that's
already happened. It's not that tools will come around that making throwing up
a simple website with ecommerce functionality ea--shit, that happened too.

It's that the core functions of software, from a business perspective, are
pretty much nailed down now. It's that the average dudebro with an MBA and
half a brain can throw together an MVP and start getting market feedback. It's
that the homeless guy who lives down the street from me can publish an ebook
from his acer.

The thing that we all love so much, the removal of gatekeepers and
democratization of information capital? Yeah, so, that thing is what will put
us out of jobs. And that's fine.

The thing the author misses is not that there won't be a few gigs around for
people who need to optimize their database backends and red-black tree all the
things and skiplist their twitters--it's that the vast majority of things that
used to require people to find a coder to help them are now a few buttons
away.

Oh, and also that we've cultivated a user base so ignorant and attracted to
simple glossy black boxes that they can't appreciate what it is to have a real
engineer along for the ride anyways, nor how to usefully communicate with them
if they had one. That's going to sting too.

~~~
imsky
We do have programs that write programs. Who's using them?

I like your optimism, but the average guy with an MBA definitely can't throw a
MVP together, especially not in 2013 when the low hanging fruit have been
steadily picked off. The bar is continuously being raised, and it'll be
cheaper for the MBA to hire a developer to throw that MVP together, using
highly complex and abstract components.

If I'm getting the second half of your reply right, you're saying it's the
availability of high-quality low-complexity zero-cost solutions to mundane
problems that's going to put software developers out of a job. But that's
exactly what I address in my post - these things were going to be automated
anyway. And don't be disappointed by a user base attracted to glossy boxes -
some of them will get curious eventually.

~~~
timr
_" We do have programs that write programs. Who's using them?"_

If you count things like Weebly, the answer is: a "whole bunch of people",
heading rapidly toward "everyone". Not that long ago, every Weebly customer
would have meant a programming job for someone. That kind of work is gone.

Then take a close look at AWS, Heroku, Rackspace...those were all systems
engineering jobs. Startups don't have to hire people to do that now. What used
to be thousands of jobs is now maybe a tenth of that.

 _" the average guy with an MBA definitely can't throw a MVP together"_

You're wrong. It happens _all the time_. It happens so often that's a cliche.
You can't go to a meetup in the valley without being assaulted by ten brohans
looking for "feedback" on their "MVP".

The important thing to realize is that the need for software engineers doesn't
scale with the _maximum_ complexity of software projects; it scales as a
function of the _average_ complexity: think of a bell curve, where the X-axis
is "complexity", and "need for engineers" is the area under the curve to one
side of some vertical line. We keep moving that line further and further
toward greater complexity. So far, the distribution has shifted to keep up,
but there's no guarantee that will keep happening.

Are we going to need people to write complex, novel software in 2050?
Absolutely. Will we need _more_ people than we need to write complex, novel
software today? That's not a question with a predictable answer. It might well
turn out that the "average" programmer (say, the ones who know how to use
Rails and jQuery and are fond of complaining about interview questions
involving algorithms) is a doomed creature.

~~~
imsky
A website is not a program, let's be fair. It's at most a minimum amount of
logic wrapped around content. Automating it is easy, and it has long ago lost
its prestige.

Re MBA guys - maybe we have a different understanding of MVP here. I don't
mean PowerPoint-ware - I mean version 0.1 of a product solving real problems.
MBAs that are working on something more complex than yet another social
network will immediately look for an engineer.

I'm not missing the average/maximum-complexity point at all, but I have a
different view on it than you do. The average complexity won't stay constant,
it'll keep increasing, and the average programmer will have to adapt. Will
that mean a reduction in demand? I doubt it - we've yet to see the full extent
of how software can be used. On the flip side, I constantly see clients
looking for someone to fix or alter their "automated" installations - the
average programmer will surely be in enough demand from these cases alone.

~~~
imsky
@lightcatcher:

>Previously, most people would say that it requires programmers to make a
website.

It hasn't required a programmer to build a website in many years now - HTML
and CSS were declarative to begin with. It's only with the advent of CMS's -
which are definitely NOT all automated (i.e. Joomla or WordPress) - that
programmers entered the picture.

> Re Re MBA guys - I don't know how many MBAs are working on something more
> complex than another social network, because many successful businesses
> recently have been quite easy to build a MVP for with not a lot of
> programming skills.

Good point, but are they doing it? Facebook, Twitter, Instagram, and Airbnb
all had technical founders. The true complexity of these startups lies in
their server software - how to optimize at scale and so on. An MBA aware of
this complexity deserves all the success he or she can get.

~~~
timr
_" It hasn't required a programmer to build a website in many years now - HTML
and CSS were declarative to begin with. It's only with the advent of CMS's -
which are definitely NOT all automated (i.e. Joomla or WordPress) - that
programmers entered the picture."_

Well, first off, you're just shifting the goalposts and redefining what it
means to "program" to suit your needs: it's inconvenient for your argument
that there's now software that does what programmers used to do, so you just
call those things something else.

But it doesn't matter, because you can't run from the core of the argument: it
isn't limited to static HTML & CSS. Want web forms, but don't know how to
write software or use databases? There's Wufoo, and dozens of others. Want to
send email? Mailgun. Mailchimp. Want to accept payments? Paypal, Stripe. Want
to show an interactive map with stuff on it? Google maps has you covered. Want
to implement search on your website, but don't know anything about search?
Swiftype will do that. So will Google site search. Need a sophisticated
customer analytics system. OK. That'll be one line of javascript, please.

And what's more: it's only a matter of time before someone rolls all of these
tools together into a pointy clicky interface that eliminates the token
integration work (assuming they haven't already). There's no part of your
argument that is safe from the trends that have been driving our industry.

 _" The true complexity of these startups lies in their server software - how
to optimize at scale and so on."_

True, but like I said before: almost nobody needs that. There's always going
to be the need for complex software...it's just not clear how many people will
be asking for it.

~~~
randomdata
Even if you limit it to static HTML and CSS, there are still many people who
do that as a job. The only thing that has really been automated away is when
someone is willing to use bog standard templates.

And in that respect, that kind of optimization has been happening since the
dawn of the personal computer. Lotus 1-2-3 was the defining application of the
PC, allowing average users to do programming-like operations that were once
only in reach of programmers.

------
jimbokun
I feel like neither the article, nor any of the comments here so far, mention
a very obvious point.

The automation of tasks that formerly required writing software, are
_automated by someone writing new software_.

This should be the normal, everyday experience of the software developer. Take
the software you wrote yesterday, and write higher level software on top of it
today to accomplish things you couldn't before.

So automating the software jobs of yesterday out of existence will require the
software jobs of tomorrow.

As for the computers writing their own software, that strikes me as indicating
the Singularity has arrived, in which case all human jobs will be obsolete.

~~~
dmourati
>The automation of tasks that formerly required writing software, are
automated by someone writing new software.

This.

User timr writes:

"Then take a close look at AWS, Heroku, Rackspace...those were all systems
engineering jobs. Startups don't have to hire people to do that now. What used
to be thousands of jobs is now maybe a tenth of that."

Let's take this point and unravel it a bit. AWS is hugely disruptive. It takes
work previously done by operations folks (like me) and puts useful tools
directly in the hands of users (programmers).

This is a _huge_ change that increases a programmer's efficiency. (I prefer
the term developer, but I'll keep it to stay consistent). In effect, it has
removed one of the major barriers to entry, that is, getting your code online
and accessible from the internet.

So automation is the thrust of the argument; robots on the assembly line
replacing auto-workers jobs. Someone had to build those robots.

In the programmers case, that someone is a programmer.

So, what can we learn from all this?

Change is good. We need these disruptions to setup the next growth phase.
Software is different. The barriers to entry are being removed. Productivity
increases as a result.

Be on the positive side of the change. Predict, plan, strategize, and stay
relevant.

Happy Labor Day.

~~~
imsky
Great point. The nature of the work changes as old complexity is automated
away, and new growth possibilities arise as a result.

------
clarky07
Interesting that one of his examples, Wordpress, has contributed to lots of
software jobs as well. Writing themes, plugins, etc can be fairly lucrative
and probably more interesting than making a blog from scratch over and over.

The whole point of writing software is to make it so you don't have to keep
doing the same thing over and over. That doesn't mean there aren't new things
to do. Software really is eating the world. If we run out of software jobs,
it's probably because we've automated literally everything else already.

~~~
imsky
That's a good point - there can be serious career opportunities in managing,
supporting, and modifying ostensibly "automated" solutions. The core may be
automated, but the ecosystem doesn't have to be.

------
kamaal
It will be too arrogant on our part to think we can't be automated.

If you have used eclipse over the years you will see the kind of gradual
automation happening there. Its not the kind of automation that produces code
automagically all alone by itself. But software like eclipse pulls the barrier
to entry too low to a point even people who understand nothing much about Java
or in general about software can comfortable contribute to make a living out
of it. And eclipse is only getting better with time. These days you can pretty
much code complex Java application without even reading a book. I guess very
soon, software like eclipse will fill-in-code-blocks as we express a
intention. And then our job will be to stitch those blocks.

This is what is dangerous. And this kind of thing has the potential to drive
the supply up very quickly. Thereby the wages decline.

There is no 1-1 mapping, between a automaker and programmer. But the theme is
very common.

I am even damn sure we will soon make software a commodity to a point when
people can think in terms of abstract software blocks. Just like how a common
man can today think of a car in terms of engine, clutch, gear etc.

~~~
rimantas
> If you have used eclipse over the years you will see the > kind of gradual
> automation happening there

The programmers job is not to do the things that eclipse can do. It's doing
the things that he could do on paper, or just in his mind.

Automating programming is like automating composers, writers and actors.
Possible, but hardly desireable.

------
wildgift
Aren't programmers more like the engineers who made the cars? Their work
product is not just the design but the assembly line and the process, and
those things help produce parts and cars. The autoworkers are more analogous
to the people who work within software-controlled workplaces. That would be
the people who pack boxes at Amazon.com, or do data entry, or customer
support.

------
Spooky23
Software people are so arrogant. Auto workers arent and weren't unskilled
manual labor.

------
mseebach
Both articles misses the mark. There are still autoworkers out there, just not
in Detroit (OK, there are less of them, but they're still there). Autoworking
didn't fail, Detroit (ie "big auto") failed. And they failed because they
spend all their energy building moats (trade policy, emissions policy, unions
etc) rather than improving and innovating (like the asian auto companies
excelled at and the european ones partly kept up with), so when the house of
cards came down, it came down hard.

As long as we (software engineers) don't sequester ourselves wholesale in a
homogenous monolith but continuously keep up with innovation, we should be
well equipped to respond to changes in the market in time. The first article
touches on this in the last paragraph, but I'm not convinced it's for the
"right reasons".

~~~
ams6110
The rote, unskilled work in auto assembly was easily automated (apply a spot
weld here, insert a part there) but a lot of the skilled work was as well. The
precision parts in automobiles used to be made by hand by machinists. This was
highly skilled work, and it's now almost entirely been replaced by CNC.
Machinists today, to the extent they still exist, are much more like
programmers. They are still used for small and one-off jobs, but mass
production of machined parts is programmed directly from the designs now, so
you don't need a machinist in the picture at all for that. No amount of
keeping up with innovation would have helped there.

~~~
mseebach
If those people were let go (or retrained) continuously as they became
redundant, instead of being employed in a unsustainable behemoth which then
collapses all at once, they are much better positioned to re-qualify and re-
join the workforce (maybe in the same, maybe in a different company) in a
higher-skilled position. This could happen multiple times over a career.

------
tedsanders
I'd like to talk about the claim that high-skill work is less likely to be
automated than low-skill work. The author says:

>On almost all points, Baugues misses the mark. First, there is a qualitative
difference between an auto worker (unskilled manual work) and a software
developer (skilled knowledge work) that made automating the former inevitable.

As a rebuttal, I would point to some passages from Martin Ford's book on
automation, The Lights in the Tunnel:

>A common misconception about automation is the idea that it will primarily
impact low paying jobs that require few skills or training. To illustrate that
this is not necessarily the case, consider two very different occupations: a
radiologist and a housekeeper....

>In fact, we can reasonably say that software jobs (or knowledge worker jobs)
are typically high paying jobs. This creates a very strong incentive for
businesses to offshore and, when possible, automate these jobs....

>As a result, we can expect that, in the future, automation will fall heavily
on knowledge workers and in particular on highly paid workers....

In general, I think knowledge jobs are at greater risk of automation than
manual labor jobs. Robots are expensive. And they also don't scale as well as
software. It's no coincidence that the largest software companies dwarf the
largest robot companies. Ultimately, because software can scale, it becomes
ridiculously cheap when you deploy it to millions or billions of people.

I agree with your overall point that creativity and design are hard to
automate. However, software jobs are being and will be automated. What matters
in the end is whether automation increases or decreases the overall demand for
development. I.e., whether software automation is a complement to labor or a
supplement to labor. So far, it's been a complement and software productivity
has skyrocketed over the last couple of decades. This trend seems likely to
continue, but who knows what the future holds 100 years from now.

P.S. Another industry that evolved similarly is agriculture. At first, tools
and animals made farmers more productive, and farmer employment rose. But
eventually, productivity rose so high that farmers started to saturate demand.
Today, only 2% of Americans are farmers, despite farmers being the most
productive of all time. So what's the moral here? What can software learn from
farming? I think the moral is that quantity supplied is a function of both
SUPPLY of labor and DEMAND for labor, and you can't ignore one when you
predict the future.

P.P.S. You probably realize that the weakness of the agriculture comparison is
that the hunger for food is far more easily sated than the hunger for
software. The first has a biological limit, whereas the second is ostensibly
unlimited. Therefore, you might reason, higher productivity in software is
less likely to saturate demand and reduce employment. However, I would caution
that some software demands might be easily saturated. Consider a company that
wants its own website and app. If websites and apps become 100x cheaper (as a
result of automation/higher productivity), would businesses demand 100x as
many? Probably not.

P.P.P.S. Not all manual labor is created equal. Repetitive, indoor labor is
much easier to automate than non-repetitive or outdoor labor.

~~~
imsky
Ford's point is a good one, but it's a bit dishonest. A radiologist's job is
processing information - it's easy to move overseas or stick into an
algorithm. A housekeeper's job is managing a house and the people living in it
- a hotelier is similarly difficult to automate.

Regarding your PPS - it's not so much that demand for software is unlimited,
it's that software can be used for far more purposes than food or natural
resources. A single algorithm can be used in multiple industries, and given
that the world doesn't develop evenly as a whole, there will be software
opportunities in the real world (machinery), in processing the real world
(commerce), in the virtual world (media), and in processing the virtual world
(analytics), and these opportunities will increasingly require more and more
knowledge and creativity.

~~~
WalterSear
There might not be ways to automate everything, but there will certainly be
changes to how we do things that facilitate the replacement and downsizing of
some otherwise 'creative' jobs. A housekeeper can be replaced by modifying the
nature of the house - a fridge that keeps itself stocked and roombas that
actually do a proper job, for example.

My point is that the qualitative difference between a creative and non-
creative job is mitigated to some extent by all the 'non-creative' stuff we
have to do every day. So even knowledge workers are not immune to 'dumb'
automation. An example of this would be remote work and off-shoring, which has
opened up software development projects to global competition.

However, the argument still stands - knowledge workers aren't unionized manual
labour and if robots are going to replace everything, someone has to program
the robots. And, there's easily going to be more 'robots' tomorrow than today
for some time to come. So what could end the 'world automation' gravy train we
are on right now?

IMHO, the average knowledge worker has a much clearer and more present danger
that the chance they might be making themselves redundant - and one that would
affect pretty much everyone, not just knowledge workers. They should more
concerned about that other thing that destroys demand: financial destruction.
The redundancy threat that knowledge workers should be concerned about are the
sins of our owners coming home to roost; another depression.

~~~
imsky
Knowledge workers are definitely not immune to automation, I've acknowledged
that in the post. They do set the bar quite high for software and intelligent
agents, however.

Regarding your last point, I think a knowledge worker smart enough to automate
themselves out of a job will be smart enough to capitalize on that discovery.
Moreover, there will always be tasks people will prefer done manually,
knowledge-based or otherwise.

~~~
wildgift
What if the problems to solve are becoming easier to solve, because we're more
plugged-in into an infrastructure of information? That eliminates work.

Standards are a good example. We love them, but, in a way, they eliminate the
creation of middleware jobs that transform the data from one format to
another.

~~~
imsky
Good point, but it touches on a refrain I've seen in the comments: that it
might be better to keep the world in an inefficient state. Standards rise up
after the complexity of interoperability becomes too much to handle.

As to your point about information, the volume of data these days requires
increasingly sophisticated analysis. There seems to be a shift in sentiment
around Big Data, that algorithms are still too unsophisticated to provide
useful output, and that's a good sign that not only is there a lot of work to
be done in this area, but a large volume of information doesn't automatically
guarantee quality insight.

------
nrivadeneira
Regardless of which article is correct (this one or the one it is referencing)
in predicting the future of software employment, I think we'd all do well to
keep an eye out for the future and be agile and ready enough if a Detroit-like
situation does arrive. It should never be taken as a given that we'll always
be highly sought after and well paid. With that in mind, I find Baugue's
article much more useful considering I've never thought of an article that can
be reduced to "Things are great, I don't think anything will change." to be of
much help.

~~~
imsky
That's a gross oversimplification of what I wrote. If you take only Baugues's
conclusion ("don't be reckless, save and network, things may not always be so
great") and ignore his premises, you're reducing the article to a platitude.
My intent was to show how fears of automation are nothing new and should not
stop developers from pursuing their careers.

------
wildgift
Autowork in the 1930s and beyond may have been semi-skilled, but before
widespread automation, it was a craft, and cars were expensive. This de-
skilling has always been happening in software. Back in the 80s, word
processors were written in assembly. Today, they can be written in JavaScript.

------
melbourne_mat
It's a pretty complacent article. How long until software development has good
quality automation - of a kind that drastically reduces the number of jobs? I
suggest it's not as far away as the author thinks.

~~~
dreamfactory
Software generation is automated but when people are talking about software
development they mean (technical) design. Design isn't a commodity or product
but a one-off process and therefore by definition cannot be automated. The
underlying topic isn't about automation of software development - it's about
buy vs build, and as ever that depends on specific requirements and
circumstances.

------
michaelochurch
There is something that can slaughter the job security of software engineers,
but it's not technological advancement.

Before I get to that, my personal forecast is: income expectancy for
intelligent and hardworking people will continue to increase but so will
variance. Eventually, the variance will become intolerable enough (sans
regularization) that basic income will appear to be the only solution; even
the smartest people will see a personal need for something like it. There will
be a lot of struggling and fighting over implementation (e.g. do college
graduates get more? how about families? should society incentivize or penalize
reproduction?) but everyone will agree that it's necessary. That's probably
about 30-50 years from now.

Okay, so what's the #1 threat to software developers' job security? Not
robots. We have robots that write code (compilers) and our jobs are still
challenging. Instead, it's upper-level complacency in society. An elite that
would rather hold position and keep relative rank than grow society and gain
absolute prosperity (but at a lesser rate than others, losing rank).
Historically, this is the norm for elites. Many people, especially in
positions of power (because power selects such people) would rather reign in
hell than serve in heaven. If they can conspire toward self-protection and
social mediocrity, they will. The good news is that, in a large and
heterogeneous society, it's actually very hard to hold any conspiracy together
for very long. This is why conspiracy theories overstate the power of such
organizations; conspiracies (lower-case 'c') exist all over the place (e.g.
Davos assholes) but none have the power to run the world unilaterally. It's
too chaotic and large. Societies and nations have set themselves back
centuries when their elites conspired toward mediocrity, but I don't think the
world elite is capable of doing so-- especially not now.

If the global business elite figures out a way to conspire toward mediocrity,
the people like us are fucked, because excellence will cease to matter and
being good at what one does will just get one the reputation of a
troublemaker. However, the likelihood that anyone could pull this together in
a world with unprecedented distribution of technical literacy is incredibly
low.

As long as there are people looking to do things in this world, and the world
continues to advance technologically, there will be a high level of demand for
people who are technically competent. We might be applying our skills
differently and changing industries, but there will be work for us, and
society would have to reach an advanced (that is, certainly plausible but
unlikely) state of degradation for us not to do that work on at least half-
decent (e.g. middle-class) terms.

~~~
seivan
So good, thanks!.

