Software Eats Software Development as Andreessen Invests $10M in App Outsourcer
techcrunch.com
techcrunch.com
Most software development shops don't ever scale past a few dozen or a few hundred developers. As a result, they don't have much project overlap. If you were able to scale to handle tons of similar projects, and be picky about which projects you take on, you could re-use 90% of the code needed for each project without ever dropping prices, essentially charging over and over again for hours that were only actually worked once.
All marketplace codebases are pretty similar, all dating apps are pretty similar, all daily deals sites are pretty similar, etc.
I think all their talk of Artificial Intelligence is nonsense to throw people off their trail.
But there's little mention of the rights of their client. So maybe they are trying to get a bunch of reusable ip on the backs of consulting engagements, like every consulting shop ever. But maybe doing it in a more scalable way.
Is their solution that much different?
So you don't have to talk to developers and they know exactly what you want from your written description of your idea? What could possibly go wrong?
I am just mad I didn't come up with it first :-/
The developer doesn't need to manage invoice, other peoples schedules and any questions. That's taken care of by the service in question.
Specific ideas in. App Out.
This would be great for a developer who wants to get an outlet for creative (design) ideas as well.
A company that simply takes a spec sheet and implements it as written will end up with many very unhappy clients.
Then you slowly realize that it takes about as much time and effort to write a comprehensive, detailed specification of the software, as it does to actually write the software itself.
That is compound by the millions of youngsters who grew up with computers, have unlimited access to unlimited teaching materials and are entering the workforce each year..
The demand for software may be growing (although that should peak at some point too), but that doesn't necessarily mean that the demand for programmers will follow the same trend.
Quite the opposite it seems...
I'm fairly sure that programmers will be employable for the foreseeable future but in a way this is fair play, we - the programmers - did this to an immense number of people it would seem that we ourselves should not be immune to becoming superfluous as well at some point. After all programmer is not some kind of protected status, if it's ok for programmers to automate away whole segments of the job market why should programmers expect that their jobs could never be automated away? If anything we should be more aware of such risks having been in the drivers seat on this one for the last 50 years.
Having said that, I think automation of software development has a long way to go before it's particularly effective. Though it's certainly going to be an interesting space to watch. It's somehow weird to imagine a future in which we disrupt ourselves.
This is the webpage's introduction of one of those people:
"Since age 15 or so, Prof. Jürgen Schmidhuber's goal has been to build a self-improving Artificial Intelligence (AI) smarter than himself, then retire" ( http://people.idsia.ch/~juergen/ )
The world doesn't reward working less. More automation might lead to lower average work hours, but the reduction comes from people losing their jobs and not finding new ones.
So, yes, you get to work less, but you almost might go bankrupt, lose your house and car, and be reliant on government welfare, if you're "lucky" enough to live in country with a decent safety net.
I don't think Max Weber ever fathomed a world where human labor was unnecessary and inefficient.
Work is not rewarding if you can never have it.
Still waiting for the new treatise.
This should be a good thing, giving humans unprecedented leisure time and producing a huge cultural boom. The problem is that in the current economic system 0% employment means the world would be impoverished, except for the few that owned the robot/computer production systems.
We spent the last 50 years working to making the biggest barrier to entry for entrepreneurship (wrangling labor) irrelevant.
Time was, you needed a factory and a labor force. For the last 10 years, you needed a laptop and coding skills. Soon, you won't even need that.
That might be true, but I don't see how this article supports that hypothesis. There are still real programmers behind the apps that Gigster:
> The company finds top-notch freelance developers, designers, and project managers with pedigrees from MIT, CalTech, Google, and Stripe, and only accepts 5% of applicants.
Looks like they are mostly automating the estimating and scheduling process.
I think it's a leap to go from automated scheduled to automated programming, especially in the next decade.
The AI engine makes a price quote and comes up with the production schedule. Those are two things I'd gladly hand off to AI. Quality engineers will still be in demand.
That is my feeling with the current offshoring practices.
The way to stay in business in software development in any given country is to move into roles that cannot be easily offshored.
There will always be a country where development costs are cheaper, when the software devs in a country start to level up their earnings, companies will move to the next one.
For me, I only care about the technical part of it, meaning:
- Translating requirements into technical specifications
- Designing the application modules and their relationships
- Selecting the languages, libraries and frameworks allowed in the project
- Full stack technical documentation
- Designing and implementation of the continuous deployment infrastructure
- Having an overall picture how all modules come together
- Taking part in the development team as senior coder
Those were just a few examples. Of course, the roles one takes are very dependent on team size and type of customer.
However not all architects are made alike. Meaning while I consider critical that one has a foot in both worlds, architecture and coding, in many enterprise companies that isn't the case.
Moreover usually descriptions like "Solution Architect" and "Business Architect" tend to be alias to roles like "Product Owner" or "Project Manager".
As a reasonably experienced developer I am 100% convinced that I can manage an outsourced software project and get more value out of a freelancer than someone who isn't a developer.
Then there's github and software which is built out of 'dependencies' and the programmer only needs to write the glue code between the various components developed and maintained by others.
And then there are the advances in AI - like natural language comprehension, voice recognition, search, vision and so on.
Put the three together and you'll be able to explain what you want created in natural language, while using your fingers to "sculpt" the generated user interface if necessary.
Still not there yet, but it seem quite possible in the not so distant future.
This is a vast oversimplification, but the general idea in business is to _identify your core value and make that your core competency_.
Whether the rest of the business can be outsourced, or staffed by a low-paid expendable grunts, or downloaded onto your vendors, is a question of tactics.
If we buy that general idea, we buy that some businesses may have software, but its not their core value proposition, and therefore that it’s ok to outsource it.
(I once met two founders who wanted to do a daily deal type business with high-end fashion items. I know nothing about this business, but I recall they were adamant that their “secret sauce” was sourcing the product to sell, not selling it. Thus, they were talking to consultants about building their deals site for them.)
Gigster places itself in two areas which independent developers often fall down. Selling their services and managing the project. What often ends up happening is that neither the client nor the developer are able to manage their parts and the gap in the middle is the disaster.
In return for taking these spots, Gigster is removing the ability for the developers to build their own businesses. For many of the faceless contractors who compete with each other on Odesk and Elance, this might be a good thing.
Even if this model were to blow up, it still doesn't touch the top X percent of agencies / developers who can manage the entire process, deliver and demonstrably contribute to the bottom line.
If you are going to be an outsourcer, you need to keep your game moving. There are too many people out there who shouldn't even be landing gigs. Those of you who are solid, keep rolling.
keep reloading the url to get random startup landing pages.
Why would such individuals be willing to work as a contractor for this company in a great enough number and at a low enough rate to make this model scalable and profitable? Something doesn't add up here.
Gigster is anything but cheap.
I run a software company, and we've actually moved away from fixed price projects and only provide development on a day rate. Fixed price/scope/timescale projects are incredibly risky, require massive amounts of project management resource, and can be insanely unprofitable if the specifications for the work are not watertight and the client isn't managed well.
Knowing the industry very well, and having completed hundreds of bespoke projects for all sizes and types of clients I have so many questions about how the Gigster model works. Off the top of my head:
* What language are the apps built in? This is important to me if I want to hire my own people to continue to build out and support the app going forward. I presume the mobile apps are native, so this question is probably more specific to the web development.
* Do I own the intellectual property on the finished app? * What does the support and maintenance agreement look like and provide? And at what cost?
* What does the contract for development look like? The devil will be in the detail here. For example, I'd be interested to know what happens if my project overruns and deadlines are missed.
* What if I want something built that doesn't fit one of their various examples here https://gigster.com/pricing?
* Who writes the specification? Who creates the wireframes for the app?
* Who performs quality assurance testing? What happens if the work I receive is excessively buggy?
Bespoke development of software is hard and it's great to see somebody take this on. I wish Gigster luck but I fear for their sanity as they attempt to scale.
These two sentences don't seem to make sense. On the one hand, you say it's inevitable. On the other hand, as someone who has RUN a software company, you say you couldn't figure it out. Is that correct?
We don't automate software development, we still do it the old fashioned way. As such rather than attempt to tackle the problems associated with fixed price projects, we changed our business model to charge a day rate and reduce risk that way. We took this approach because we don't have millions of dollars of investors money in the bank to allow us to trial and error other solutions.
A few thoughts:
1) The talk of an AI to price things marketing fluff. There is no magic AI that can price, for example, the fact that a client changes his mind, or that legacy code has unexpected bugs.
2) The reusable component stuff is not fully deployed yet. I think where it has potential is as app templates. A lot of apps have similar starting points, and it makes sense to encapsulate those starting points in project templates. I am doubtful that this will evolve into a magic solution that makes software engineering easy.
3) The big innovation, from my perspective, is that they are harnessing the spare work capacity of software engineers. It is very easy for a full time employed engineer to hop onto the platform and make some extra cash. I think this separates them from traditional outsourcing shops, or oDesk.
4) Another innovation is that they capture the reputation gains from their work. Traditionally a freelancer would build relationships with their clients, the freelancers reputation improves as he does good work. With gigster, you as a freelancer do not have an external reputation. Gigster gets the benefit of your good (or bad) work.
Largely because of (4) I would be cautious as a freelancer on gigster. The pay is project based, not hourly, which means there is high variance/randomness to the hourly pay.
Seems very replicable
"Much of the essence of building a program is in fact the debugging of the specification." -- Fred Brooks
"If you don't understand precisely what you need to do, what makes you think you can tell a computer how to do it?" https://news.ycombinator.com/item?id=10173640
For a highly standardized product, maybe the "specifying what you want" isn't a big problem, but in other cases I think it is.
They build apps. So I'm sure sell you 90% of their code, but they can't re-code their brand name, repeat costumers and the staff that they seem to take some pride in.
When I was in school at Georgia Tech, one of my professors talked a lot about SmallTalk and Alice. Both were ways to make coding more accessible to a larger audience.
I can't help but think that the future is going to continue to make development more accessible to people. I definitely think Gigster has their work cut out for them; nevertheless, I'm one for the fact that it would be pretty awesome if I was never asked to 'build a webpage' again.
However this didn't result in less work for the programmers, on the contrary. Same thing may apply here. Just the pressure points will change.
I will say one thing though - fixed pricing on projects is tricky. I would be interested to see how they set and meet expectations, while also not charging for overages. It seems like the developer might have to be the one to eat the costs if it goes over.
Arguing about work not done was a major hassle.
However the upshot of this seems to me that now people can focus on ideas and idea generation instead of having to worry about maintaining programmers. Like what cloud did for hardware/computing.
What we need now is a simple program that takes normal human text and outputs a program. Input "write me a program that adds the numbers 1 to 100" and you would get a program that did that. Then what we need is to hook that up to an artificial neural network that takes human text and outputs new ideas for apps.
Hey andreesen I'll be taking my $10mm check now. Thanks.
The problem is normal human text is ambiguous and flawed. Case in point:
http://www.wolframalpha.com/input/?i=write+me+a+program+that...
Correct, but probably not quite what you intended.
It's a program that I think can be written in an autonomous fashion, but I just wanted to point out that as soon as you start coding non-trivial programs, testing and debugging you're non-specific language is going to be hell. So bad that I think you are going to have to write thousands of sentences, and eventually decide you want a more specific language than English when you can't determine which of the thousands of words or grammatical elements you and the computer disagree on.
But it is mighty difficult to do this kind of niche work because developers will then have to spend an inordinate amount of time acquiring relevant domain knowledge to implement these niche solutions. Hard earned knowledge that will be useless after the project is complete. And the effort of acquiring this domain knowledge will often be under-appreciated and underpaid, cause it is very very difficult to estimate this effort no matter how good an AI have you.
It doesn't seem very AI really. I guess for something that doesn't fit their sliders a human has a look?
Can someone walk me through how this is possible? As in, what does a company like Gigster focus on to reach sales so quickly?
Andreessen.
If the product they are selling is paid in, say, instalments in the future, or if there is any contingency on the payments, there is a way to inflate your sales numbers by playing with your payment projections and assumptions.
but in consulting/services you can't realize sales as "real" revenue until you actually delivered the services.
https://en.wikipedia.org/wiki/Computer-aided_software_engine...
Maybe it IS different this time around. I can see for very simple apps this might be possible. But one of the first questions that often gets asked on projects that I am on is "Is this even possible?"
Time can create a better context for an idea to develop. Or maybe the people attempting to implement it the nth time are not idiots or, or, or...
Great, I'll buy a license and tell my buddies here in New Mexico about it so we can compete with Gigster at probably 25% of whatever they're charging for apps, because New Mexico is cheap as all hell yet still remarkably beautiful. Don't tell too many of your friends, we're trying to keep it that way.
But seriously, this is nothing more than a development agency that happens to have a very cool piece of tech on hand that enables them to essentially productize development. That's cool. But eventually that same piece of tech will eventually be replicated and available to freelancers the world over, probably as a subscription-based service.
It doesn't even have to be that smart.
It doesn't work.
One of the skills of being a programmer is to change a business workflow, which are often very vague and even very inefficient and open to interpretation, into a logical workflow.
Business people just don't have that skill, so what happens is that you need a bunch of programmers to operate the RAD tools. But the RAD tools have a bunch of restrictions and quirks and don't quite do what is wanted so the programmer is asked if he can just tweak it a bit.
And soon those little 'tweaks' are taking longer than building the whole thing from scratch.
I'm planning to create some tools ease CRUD workflows.
I think my point was not properly conveyed. The goal is not to get the pointy haired boss programming your expense report app. But instead of paying someone with 4 years of experience , you just use a team of people you trained in 3 - 4 months to do most of the screens using such tools .
Is that unrealistic ?
PS : Yup any code generator needs to have a lot of extensible points so you can change it.
And having extensible points doesn't work.
The whole problem is that if they're complicated enough to actually encode a client's project, they're so complicated that they're really just a visual programming language.
But that means all the code conditions are hidden in drop-downs and checkboxes. But in reality that's the logic, those options are the code, but you can't easily read the code. If you can't read the code, you can't understand the code. So increasingly no-one has a clue what the system is really doing and you have to test it like crazy.
It also makes it very hard to know what has and hasn't changed and even if you can diff it somehow you often can't even understand what the change means.
Other problems include the 'extensible points' not being atomic enough, or too atomic, or badly documented, or badly coded, or just plain insanely coded. And if there's a bug you've got to wait for the code generator to be fixed.
And finally you are locked in to your vendor. Which becomes a big deal.
What happens is that you'll start writing your own code to fix these problems, or edit the auto-generated output somehow (if you're lucky enough to be allowed to) and it'll rapidly turn in to a complete mess that only 1 or 2 people really understand what's going on and it takes a month to do changes that should take a day or two.
ORMs are the closest we get to auto-code generation and there's a reason we stop there. We learnt from bitter experience. And even they can be dangerous in the wrong hands.
Still, I guess we've got to try again every now and then, one day someone might nail it.
Note sure about that. I mean PM's don't write bugs, right?
Tinder > Facebook ??