I thought this was great. Very clever. Every frontier seems like it will be a frontier forever, until suddenly it isn't. Perhaps software is going to settle down, start a family, and quit this cowboy nonsense. I don't think it'll happen by 2016, but I'd be hard pressed to say it won't happen ever.
On the other hand, I like to think that maybe what we call entrepreneurship - the hacker ethos, audodidacticism, uppityness, get-shit-done, rationality, self-improvement, a weird mix of skills cut in a wide swath of "whatever I needed to learn at the time" - is actually an overarching set of tools and attitudes for turning your ideas and ambitions into real things.
I can't imagine a world where it's not useful to do that anymore, even if the technology changes. It's true that the entrepreneur toolkit and the 9-5 megacorp toolkit aren't compatible, but every trend I can see points to people needing less and less to get more done. Economies of scale are technological: they shrink as the cost of production shrinks. Diseconomies of scale are sociological: as long as people are still the same, they'll stay the same. The advantages of being a large organisation might not always outweigh the disadvantages.
What if it's not us that get left behind, but them?
Software might never end. It will grow and grow and grow and grow until everything is software (or food).
Your chair? Software. Your medicine pill? Software. Your glasses? Software. Your boots? Software. Walls of your house? Software. Your car? Software. The road you drive on? Software.
I think we've not even yet tapped this. Not only we're not over "peak software" hump - it's not anywhere in sight, we're not even on the main exponential growth curve.
Software based pill: There's already a pill the uses a sensor to measure it's place inside you're gut and release it medication in a specific location. There's also an in-body device that release medicine on regular intervals.
Software based glasses: augmented reality glasses. They might be a growth area for apps.
Programmable shoes: There are shoes with a programmable pattern and shoes for people with Alzheimer that transmit you're location.
Programmable cars: cars are already programmable. they contain huge amounts of software.
Programmable chairs: some dental chairs are already programmable. You have programs for different seat positions.
My guess is, to create a new software employment boom, you need to create a new mass market programmable platform, that needs a lot of small volume applications and that developing for it is neither too complex(windows gui before VB) and neither too simple(excel).
When they finally arrive you'll see that no, they do not.
They are just blossoms here and there, not a mesh of grass.
Everything will not be simply programmable: it would be flexible, changing. Your wall would not be concrete with some software. It would be software with some concrete.
Interesting ideas. I'd love to read some good sciene fiction novels based on this.
It has the potential to be very relevant. 3D plastic printers are interesting, but too limited at the moment. 3D concrete printing has existed for a while though, that can definitely allow software to be/create the walls of your house.
For medicine it's just a case of getting the simulation down. It'll also be interesting if robots get better. There's a lot of boring lab work in the natural sciences, if this can be automated and controlled by software... Your testing can be done by software... Genetic algorithms could be used to find cures to things. (Although using robots to physically test would presumably be much much slower and more expensive than a computer simulation. :( )
I recommend reading The Diamond Age by Neal Stephenson.
It is classic cyber-punk about what happens socio-economically when damn near everything can be made by the 3D printer in the corner of your house, as long as you have the raw materials...and the software.
I think by "your walls are software" he meant that your walls are controlled by software. Think heat management, view screens, maybe re-arranging them with a remote. But they're probably constructed with software, too.
I think he meant more than simply "your walls are controlled by software". Think of Utility Fog: your walls could be made of hundreds of little robots linked together, and can be reconfigured to a different shape in seconds under the control of software. The robots are sort of like three-dimensional pixels; the shape they assume at any given moment is just the shape that the currently running software gives them.
Or perhaps dozens of little robots built the wall in the first place (by lashing together sticks and filling the space between with gravel, say) under software control, and can disassemble it and reassemble it in a different form under software control in an hour or two. In this case the sticks and stones are the pixels.
Moving into deeper fiction, we'll return to 'no software' again: inherent inefficiencies of digital hardware will force us to build analog systems, sort of pure hardware, that will be in fact software for the machine that runs this world.
I've actually had this thought lingering in the back of my head as I'm in the midst of making the transition from primarily MS desktop/embedded C++/C# guy to open source stack web app guy.
A few years back, in a review my supervisor put in a recommendation to go into management. I asked if I would be able to code anymore. Nope. I felt that was some subtle death trap - to lose my skills through non-use, and turned it down, 20% pay bump be damned.
So now this transition, and began to think of it in the same light. But it doesn't work. It's been 13 years since I graduated, and I'm probably better at most CS'esque interview questions than anytime since then. Why? Because of what I did that led me to making this transition, essentially becoming unhappy in my job and looking for anwers, which started with a book called "The Passionate Programmer", which led to maybe 20-30 other books, completing some classics (such as K&R C), some incomplete (SICP, only halfway thru chapter 2), but in general exploring my craft in a way that my job did not require me to. I'm a much better programmer because of it, language be damned.
So here's the question I have:
Who is more likely to be aware of things such as CLRS, SICP, Hacker News, Stack Overflow? Who is more likely to understand (or even be aware of) languages like Clojure, Haskell, Prolog, Python, Ruby, etc? Who is more likely to give you more lucid answers to problems with big data, having even touched a NoSQL database and pontificate on the advantages/drawbacks of that vs. relational? Your typical enterprise dev, or your typical open source web dev? After talking about all this stuff to a team of 30+ engineers over the past few years, I'd have to put my $$ on and double down firmly on the latter.
Of course, this is only an example of one engineer's experience. But I think there's a more meta issue at play here... it's more of the 501s vs. the non-501s, the latter being ones who well, just are more aware of what's actually going on in their respective industry. If the industry as a whole makes a tectonic shift toward algorithmically more difficult problems (ie. machine learning), I trust the open-source web devs will be on it and synthesize it faster than your typical enterprise guy will even be aware there is a need.
I work at a reasonably large (20+K) well respected consulting firm that has a significant number of software developers or ex software developers. Honestly, they do a lot of web development work and keep up with the latest things but really C# and SharePoint really are the best solutions for most of these projects.
Advertising supported websites care a lot about scale on the cheap because serving banner advertising to 10 thousand people a day does not pay the rent even if the servers where free. But, when your actually selling stuff or managing internal projects it's all about manpower costs and .Net projects take less time to build. When a small project costs 10,000$ a day in manpower and needs 2-20k worth of server and say 100k worth of software it's still almost meaningless next to manpower costs.
I doubt most of the web dev people are spending anywhere near 5 figures a day in manpower, and often their software costs are 0. Outside of corporations, nobody specs out 6 figure 3rd party software budgets.
If you're a MS shop with more money than brains (ie, more money to spend on hardware/software vs the skill of people you have on staff), sure, this might be true.
It definitely wouldn't be true if you were a Unix shop, where the tradition has come around to be "free" software for everything.
Current project 20-25k/day development budget (including 2 sysadmins and 4 testers) total users under 100. And oddly enough the customer is happy and wants to expand the project. I was once on a project that spent 3 million / year and we had less then 40 actual users of a standalone desktop application yet after 3 years we ended-up saving the client money.
If it pencils out, why not? But this is a case of like serving like, and having been in this industry for awhile now the inefficiencies are phenomenal. Somewhere at the very end of the chain these costs are ending up at the end customer (in my case, the health care industry, and I don't want to go into too much detail about my company, but we're of a similar size and the market leader).
The enterprise is like government. It's a slow moving beast. But things will not continue like this forever; it runs on the same principle that initially made Microsoft successful and now is leading to its downfall. True story: last week I was contacted regarding a position at a health care startup in Palo Alto. We're primarily a hardware company and they're all software, but the funny thing is we have some skunks-work type projects that have some overlap with what they're doing. Having looked at what they already have on the market, if we actually wanted to go after them I don't think we would stand a chance. Sure, we might be able to leverage network effects to some degree; but time-to-market, overhead, etc, are on different scales.
Startups rarely compete in the same markets. Take an Airline doing 10 billion in revenue that ends up as 250 million a year in profit. Suppose someone discovers an inefficiency say in how they adjust routing based on maintenance scheduling that could save them 1/10th of 1 percent of their operating expenses. Well 10,000 * 1/1000th = 10 million a year in savings based on some investment. Sure, you could try and outsource the whole thing to India, but when every month the system is not up and running they are out close to a million dollars speed becomes important.
Of course that's the upside, the there are a wold of risks and many companies burn millions chasing after penny's.
How about SpaceX? They've already accomplished what no government in the world has been able to do. How about startups emerging in the energy, scientific, and education spaces? It's not all photo sharing, geo-tagging, social engagement rah rah. The discontent is obvious on HN over real problems not being addressed and companies are now beginning to emerge. Not only is it socially pragmatic, but as you so clearly detailed, it's mind-numbingly lucrative.
If you perform a technical service encumbered with vast inefficiencies, your lunch will be eaten in time. It's not a matter of if but when. Just because there are all sorts of barriers to entry right now because of government contracts, regulations, etc, that allow you to offer a solution right now that is cost effective because it's less messed up than the system you address, does not guarantee those walls will not be chipped away, bit by bit, by more innovative, smarter, cost effective ways of doing things.
SpaceX is creating a new system from scratch. But, at the end of the day they are not a software company so in 10 or 20 years you can expect them to be hiring the same consulting company's for internal projects that Lockheed Martin uses.
In the consulting world product is irrelevant you serve large organizations and the problems they develop over time. While they are young Google, Facebook, and SpaceX don't have a lot of the internal cruft that consultants exist to deal with, but I can guarantee they are creating it right now.
Amazon EC2 and GMail are probably the best examples of direct completion with traditional consultants by start-ups. But again it's all about the organization and and not what the organization produces and non of them started by focusing on that stuff. All large companies need email and don't necessarily know how to make is safe, secure, and salable.
PS: By software company, I am talking about mindset. GM creates a lot of software, but it's not what upper management focuses on day to day.
Think multi-national industrial conglomerates whose sales-forces each only numbers in the dozens, but who do m(b)illions of dollars in sales each year. Reducing the time it takes to estimate a new job and submit a proposal from weeks to hours is a very lucrative niche.
1) I said: "I trust the open-source web devs will be on it and synthesize it faster than your typical enterprise guy will even be aware there is a need."
2) The article: "It says here you went to the University of Pennsylvania for undergrad. Were you an engineer there?”
We're not talking about quants here. If (quoting myself again): "the industry as a whole makes a tectonic shift toward algorithmically more difficult problems" we'll probably need to enlist the help of more than the top .1% of all software/cs folk.
If you are a quant, I humbly apologize for implying mere mortals could even begin to grasp the fundamentals of a concept as abstract as machine learning. Norvig/Thrun/Ng might have something to say about that though.
Well, I'm a math-y overtrained guy who just loves tech as a passionate hobby, and I found HN. I love the community here, and the new things I learn. I hope to never have to work where only people like me are employed. shudder.
"Every frontier seems like it will be a frontier forever, until suddenly it isn't. Perhaps software is going to settle down, start a family, and quit this cowboy nonsense."
Can I quote you on this? Did you come up with this metaphor yourself, or is there someone else I should cite?
Sure! (Joke's on me, you already quoted it in the comment.)
I can't lay any claim to the coder-as-cowboy metaphor in general - it's almost as old as actual cowboys - but I came up with it in the sense that I didn't rip off any one particular person's idea.
My read was that the boom times won't last forever. A comment below says this seems more like 2012 vs. 2007. Well, you could just as easily say 1998 vs. 2007 --- which was the last time than anyone with any degree of technical skill could have a cushy job for the asking. And there were booms and busts before that... and in slack times, it can be hard for anyone to get any kind of tech job, regardless of qualifications.
"The computer world is like an intellectual Wild West, in which you can shoot anyone you wish with your ideas, if you're willing to risk the consequences."
On the other hand, I like to think that maybe what we call entrepreneurship - the hacker ethos, audodidacticism, uppityness, get-shit-done, rationality, self-improvement, a weird mix of skills cut in a wide swath of "whatever I needed to learn at the time" - is actually an overarching set of tools and attitudes for turning your ideas and ambitions into real things.
I can't imagine a world where it's not useful to do that anymore, even if the technology changes. It's true that the entrepreneur toolkit and the 9-5 megacorp toolkit aren't compatible, but every trend I can see points to people needing less and less to get more done. Economies of scale are technological: they shrink as the cost of production shrinks. Diseconomies of scale are sociological: as long as people are still the same, they'll stay the same. The advantages of being a large organisation might not always outweigh the disadvantages.
What if it's not us that get left behind, but them?