A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.
We're closed, folks!
Doug Nebeker ("Doug")
It seems that with all androids,tablets and such small software has declined (or is it just me).
What I'm saying is that 4-5 years ago there were all kind of small software that was actually selling, these days only big stuff is doing well (to my knowledge).
So my question is is there still space in this time and day for software that a single developer can produce?
This might really be to do with perception, in that trendy stuff gets lots of publicity, so there is an incorrect tendency to think nothing else is happening.
It reminds me of Eric Sink's excellent essay from back in the day: http://www.ericsink.com/bos/Whining_by_a_Barrel_of_Ro.html
There are always opportunities, but I have always found it useful to surround myself with business people, to understand their challenges first, then use my software background to solve their issues. I have found this a useful approach, while some of my peers have created "great" software, but then found it difficult to find an enthusiastic market for it.
You cannot expect to make a fortune out of shareware(Eric Sink Might disagree with this term) sales unless you get into stuff like antivirus,tune up etc
Such market is over and over saturated and there is no possibility for a new product. It was my dream to create an Antivirus when i was young ,not for the cash in it, but for the love of it .Now i know its impossible.
But yeah,even though i have a very small base of customers,they are happy with it and even though i dont make a fortune i like what i do.
It's getting tough, as people expect the same functionality on a 5" screen for $4.99 as they used to pay $39 for to use on a 23" monitor.
On the other hand, there are a LOT more people walking around with those pocket computers than there used to be nerdy types with home PCs.
Doesn't mean the market is dead, just means you need to change your approach.
Saturday, May 03, 2014
It is getting hard for mISVs to find new products. I agree with the other comments. My personal preference is a desktop app in a highly specialized niche where you can charge a high price to offset low volume and the low volume hopefully results in support demand that an mISV can handle. Even then, be happy if you can just make a living, be independent and forget about getting rich at it.
A guy that knows as much about software as just about anyone is Tim Bray, formerly of Google and Sun, and cocreator of XML. In February he said this about mobile apps: "You can’t make money. Seriously, Apple is always talking about the billions and billions they pay out of the app store, so why is it that I don’t know anyone who’s making serious money on mobile apps?"
The entire article is worth reading:
The Tim Bray piece is interesting and he is right about software development being at an inflection point, although maybe not in the way he seems to think.
A fascinating trend I've observed over recent years, and contributed to in a small way, is the democratisation of software development. Twenty years ago, I created a reporting system for a major utility company that allowed them to build their own reports, without having to ask anyone in IT to do it for them, then wait ages. They loved it and it was equally amazing to them and me that those middle-manager, business guys could just do that for themselves. We both thought it was "impossible", as that was the conventional wisdom back then.
Ten years ago, I did some consulting work for a billion-dollar global insurance company, where they expressed their continual frustration at the rising cost, but sinking responsiveness of their IT group. Building new applications took years, cost millions of dollars and never quite seemed to deliver what the business needed, mostly to to the multi-year lag between inception and delivery and the hostility built up between IT and the business, after so many years of painful and frustrating process. Even though both sides were "doing everything right", according to industry best practice at the time, the board expressed their frustration to me that it was all such a mess and their peers in other large companies had similar issues, so it wasn't even a local problem.
I had seen the same issues and numerous other clients, so I assured them that they were correct in thinking it was an industry-wide problem and not anything that they were doing wrong. I assumed that would be the end of my assignment and was preparing to write up my findings to deliver my final report, when one of the senior board members invited me to lunch.
After the usual pleasantries, he thanked me for my efforts and then issued an interesting challenge. "Isn't there any way we can cut all these IT guys out of the picture and just do this stuff ourselves?"
I replied along the normal party line, that no, that wasn't how things were done and he needed to stick to the normal way of doing things, but he was adamant and I agreed to spend a couple of weeks thinking about it.
That lunch meeting changed the course of my whole career. As promised, I did think about the difficulties that my client had experienced, and the wider issues that I had seen in numerous other clients, across several industries.
In the end, I created a "foundation" that allowed their business people to design, build and (most importantly) support any application they needed, on their own, with no support whatsoever from their IT Development group. Their IT guys were extremely hostile (not a shock) and claimed it was an "unauthorised" project that they should have total control of, so they could shut it down. Luckily, my friend on the board made it very clear to them that it was authorised at the highest level and got them to back off a bit. A few of them tried to sabotage it, but that just got them fired, which was pretty stupid.
Ultimately, the project was a success, beyond anything I could have imagined. They built several applications with it, including one that replaced all of their previous underwriting and claims management applications and now runs their billion-dollar business. No developers were involved in those projects. The business people knew what they needed and built it, tested it, rolled it out, then supported it. As time went on, they extended it and rolled out new versions, all on their own.
At the time, the most interesting aspect of this story was not just how quickly pretty much any competent business person could pick up how to build things using this project, but how quickly they could produce complex applications. I saw small teams of business people build stuff in a three months that would take whole teams of developers years to build in the "traditional" way, and they'd all need project managers, analysts, testers, etc. It was vastly more efficient, in terms of time, cost and stress.
The point of all this is that everything is changing so fast that it sometimes seems hard to see the future, so it can be difficult to pick a path.
For me, I see this democratisation process expanding quickly. It makes no sense for a business to wait years for a new application, pay millions of dollars, then have a good chance of it going over-budget, over-time and under-deliver on functionality, especially when there is another way that cuts out all of the overhead cost, most of the time and all of the frustration.
Of course, there will always be the "stuffed suits" who are desperate to protect their jobs and claim that such things will never work, but I know it will, as I saw it myself and that was ten years ago.
As this trend continues and the market for software expands exponentially, I can see huge opportunities ahead. You just have to forget the "truth" that you've been told and accept reality as it will be, not how people with vested interests want to keep it.
Progress, especially technological progress, is like a nuclear chain reaction. Once it starts there's nothing anyone can do to stop it. You can stand it it's way, like taxi drivers against Uber, and be annihilated, or you can hang on, ride the wave and see where it takes you.
Marc Andreessen famously predicted that "software will eat the world". Part of that is inevitably that software will eat software development.
We live in interesting times...
Scorpio, that mirrors one of my early experiences as well.
I wrote an application as a junior that made about 10 IT people redundant. Out of those 10 people, only 2 were ever fired because they were actually useless.
My biggest regret though... I named the application after one of the guys who got fired as a kind of a mock but I genuinely liked the guy. I felt SO terrible when he was actually fired.
The truth is that software will continue to eat the world. Eventually, it WILL get to the point where users can verbally say, to a computer, "make me a web application that collects user forms and email that to me on a daily basis".
Who will we be when that happens? We will be the ones providing the software that writes the software, as it always has been. Stop growing, you die.
@Bring back anon
<<Eventually, it WILL get to the point where users can verbally say, to a computer, "make me a web application that collects user forms and email that to me on a daily basis". >>
I am not convinced we will get to that point. I recall in the 1980s there were a bunch of code generators and predictions that coders would soon be out of work. Just about every project has enough uniqueness to make this impossible. Then there are the issues of performance, code quality from a maintenance perspective, the abiltiy of code generators to keep up with security issues and probably other issues as well.
Scorpio, you already posted this story. But I'm not sure how this can work across multiple domains.
I mean: I can create a development environment based on my domain. I can have some crud routines. A configurable report generator. And a repository where all this stuff is stored....
... which is the difference from visual basic? A domain-specific language?
I am really curious since I'm moving away from programming and want to get rid of small changes request for a program I maintain.
It could easily work across domains, just as the tools we use work across domains. That isn't really the issue, it is more about who uses the tools to create the applications and how quickly they can get stuff done.
It is true that I've mentioned some of the above previously, but it seemed relevant to the discussion. Apologies to anyone who found it tedious to read about again.
TL-DR is software eats software development.
I think it'll get there, probably sooner than we think. What 'Bring back anon' mentions is really IFTTT with a Siri-style interface. Easy to imagine how that'll become trivial in years to come.
I too remember "The Last One", 4GLs, etc from the 1980's, but I'm not really talking about a code generator, in that sense.
On the other hand, if you look under the hood, you can see that Visual Studio is really just a code generator, in that it takes "source code" as input and generates more source code, which is then fed to the compiler, which is also a code generator that emits executable code, well kind of.
Regarding your point about complexity, in thirty years of consulting for various clients across numerous industries, I've not come across a business application that couldn't easily have been created using a system such as the one I described, at vastly reduced cost and in much less time. Of course, this finite sample may not be representative of all business applications, but I suspect it could handle the vast majority.
@Scorpio: "It could easily work across domains, just as the tools we use work across domains."
For simple CRUD apps (data in - report on same data) I'd agree, but I have worked on too many contracts where there is absolutely no way the average user, even the clever ones, could use high-level point-and-click to get reliable results. Or simply where the maths is too complicated in certain domains to lend itself to such a simple interface.
You could even say with CRUD applications that the person writing the report will be happy when he/she sees the results they want. Six months down the line: "That doesn't look quite right. Holy crap I've missed something! Erm... maybe I should go back over the last 6 months..."
Monday, May 05, 2014
I think there may be more potential, and less competition, finding a niche marked in B2B than making a tablet app for individuals. Businesses still seem to expect to have to pay for software.
@Scorpio - are you saying the business people literally developed the software? Did they have to do any programming? I am fascinated (and concerned, LOL) by this.
I do worry about becoming obsolete but not too much because, my word, my clients seem bright enough in general but what seem to be the simplest things to me sometimes leave them just staring blankly at me and saying "What would it cost to have you do it for us?" Seriously, I'm talking mail merge level design. It's not that they couldn't do it if they applied themselves, just that they see more value in hiring someone to do some of this. I know things are getting easier but they're not that hard now and they are willing to pay someone for stuff they *could* be doing themselves.
Ewan McNab: "For simple CRUD apps..."
Of course, YMMV, but in my decades of experience, pretty much any of the business applications I've built could easily be created using the system I described, with vastly reduced effort, cost and stress.
This includes bond pricing and trading, telecoms carrier/retail billing, range planning for a global retailer, underwriting and claims management for a global insurance company, asset management for a large utility, production management and logistics for a global manufacturer, equipment control and data analysis for global chemical company, monitoring and data analysis for a nuclear submarine, education software, a social network for traders for a global news company, etc, etc.
If you consider all of these to be "simple CRUD apps", then I guess we will have to accept that we have different definitions of the term.
Emily Jones: "are you saying the business people literally developed the software? Did they have to do any programming? I am fascinated (and concerned, LOL) by this."
I created an empty "foundation" and the business people used it to design, build, test and support numerous applications. So, yes, you could say that they literally developed the software.
A lot has been written about the so-called "impedance mismatch" between IT people and business people. Most of the 'solutions' seem to be variations of getting the IT people up to speed with the business, creating new roles, like business analyst, etc, but that only goes so far and if we're honest has had little real impact, apart from driving the cost of projects up even further.
I thought about it from the other end. Instead of pretending that IT people can learn the business in a timely manner, why not get the people who know the business best to build the applications? After all, they know their industry well, but crucially, they know their own business intimately and are totally invested in the success of the project, as it'll make them more productive.
Of course, most people think it is "impossible" for business people to build their own applications, which is true if you sit them in front of Visual Studio, etc. The "secret sauce" is to present it in terms that they can relate to and in ways that work similarly to other software that they all know, e.g. Office, internet browsers, etc.
It took me literally half a day to explain how to use the system to a couple of business people and they went off and trained up everyone else. Pretty soon, people were begging to be trained and to work on applications for their departments, as they saw how easy it was and how quickly they could get things done.
I expected to be bombarded with support calls, but I got none. They worked together well and when I went back a few months later I was literally amazed at what they had achieved. They had done things that I hadn't even realised were possible and I had to ask them how they'd done it. For me, that was one of the most satisfying aspects of the whole experience. They'd totally embraced it as a "new normal" and had gone so far beyond what I thought was possible.
As a final thought, don't be concerned, as 'Bring back anon' pointed out, "Who will we be when that happens? We will be the ones providing the software that writes the software, as it always has been."
> "pretty much any of the business applications I've built could easily be created using the system I described, with vastly reduced effort, cost and stress.
> This includes bond pricing and trading, telecoms carrier/retail billing, range planning for a global retailer, underwriting and claims management for a global insurance company, asset management for a large utility, production management and logistics for a global manufacturer, equipment control and data analysis for global chemical company, monitoring and data analysis for a nuclear submarine, education software, a social network for traders for a global news company, etc, etc.
I am torn as to whether to believe you. You sure sound like you know what you're talking about, and I'm not getting the typical red flags that crackpots raise. But you can imagine why I am having trouble fully signing on to this account. If one person, you, could write this foundation and it could work so well for so many various types of no-small-potatoes-at-all activities (global manufacture? nuclear submarines?), then why isn't this type of thing common--the rule, rather than the single exception--particularly given that you said you wrote this foundation quite a few years ago?
Anyone who has tried to write more than just a trivial piece of software that stores data and interacts with users knows that it can be really surprising at how many weird corner cases there are, how users are going to potentially bork the system, how difficult it can be to expand something once you've entered down one path of how to structure it, etc. I mean, I get that one can make a foundational program environment where one can create one's own custom field forms, or write custom queries, and yes, this can be quite nice for the users in the business division, but it just sounds kind of overblown in your description.
I write all this because I'm interested, not to ignorantly repudiate you just because I can.
Wow, 15 years for both your time on this forum AND The Matrix (can't believe it's been that long already!). Is there a connection? :D
Racky: "I am torn as to whether to believe you..."
I didn't believe it was possible myself when I started this adventure, which is why I told that board guy not to mess about and continue with the "normal" way of doing things, however dysfunctional it was.
Ironically, the hardest obstacle at the beginning was to overcome my own scepticism. Once I got into it though, it was so obvious that I was annoyed I hadn't seen it all along.
I think the reason it isn't common is that we've all been told for decades that to create applications you need developers and everything that goes with that. Perhaps that was true in the beginning, but it certainly isn't now.
However, that is a lot of inertia to overcome, especially when you consider the hundreds of billions of dollars (trillions even) that have been invested in doing application development the "right" way.
I was intending to launch it as a startup, as I think it'll do quite well, but I've been distracted recently. The potential upside to offering this as a SaaS product is non-trivial, so at some point I'll probably do it. In the meantime, there are some other people working in this space, so I think it'll become much more common in the future.
Yes, 15 years for The Matrix and (almost 15) for me on this forum. Time flies. There is a connection between The Matrix and what I'm talking about here.
I'm trying to read between the lines to figure out how what Scorpio is saying could possibly be true.
By application, do you really mean a form builder? Like a simplified and streamlined version of what can be achieved with MS Access forms? (http://office.microsoft.com/en-ca/access-help/create-an-access-form-HA102749786.aspx)
I've been involved in many billion dollar businesses (business analyst, consultant, contractor etc), and I have seen MS Access used for exactly what you're describing in many of them.
Tuesday, May 06, 2014
ThistimeAnon: "Too bad you probably did it as 'a work for hire'."
Actually, I used my own consultancy contract when I did the work. They got to pay for early access and perpetual license, but they own nothing, beyond their own work that they put into it to build their own applications.
Kremental: "I'm trying to read between the lines to figure out how what Scorpio is saying could possibly be true."
"By application, do you really mean a form builder?..."
No, I mean a system that allows arbitrarily complex business applications to be built, including defining tables, foreign keys, forms, reports, business rules, security, monitoring, error handling, testing, version control, rollout, training, automagic migration between environments (dev => test => production), etc, etc.
Check the list I posted before for the type of applications I'm talking about. Hint: not trivial CRUD apps.
"... I have seen MS Access used for exactly what you're describing in many of them."
Yes, Access is an interesting case. I always suspected that it was released by Microsoft as a favour to developers, as a lot of people got into a lot of trouble with it, then a lot of people got paid to sort out the mess ;-)
Seriously though. Access is in no way sophisticated enough to compete with what I'm talking about. No doubt it is good for desktop databases, but I wouldn't use it for anything non-trivial, especially as I've had experience of trying to use it to do million-call telecoms billing on it. Queries ran overnight and took so long that the monthly billing cycle was going to take more than a month. Access was great when they only got a thousand calls a day, but that ramped up very quickly during the telecoms boom of the late 90's, eventually passing a million a day. I was doing "big data" before it was a buzzword. Anyway, that's another story.
I just couldn't resist to write:) influenced by reading 'The world is flat' right now:
1) I think that you Americans always wan't to make someone else redundant and to squeeze the expenses (by outsourcing for example) - at the end of the day you cry : "there is a big unemployment here" (don't get me wrong - in my country Bulgaria it's not better)
2) SAP is designed it in such a way that it creates employment for IT people (and makes them wealthy - you can check SAP consultants fees) - just the opposite of your system.
3) The four co-founders of SAP are billionaires - are you too?
(If the answer to 3) is NO - then go rush and create a trial version, documentation it and free your country from SAP installations - a source of income for billion dollars that flow to the German economy (not US)! - and you can treat me a bear at that point (when you will be a billionaire too)
Sunday, May 11, 2014
> 2) SAP is designed it in such a way that it creates employment for IT people (and makes them wealthy - you can check SAP consultants fees) - just the opposite of your system.
I think your perception of the US software market may be skewed by press coverage. Few people write or talk about the large boring companies that make a lot of money. Most of the top companies on the Software 500  have been consultancies. IBM, which has been #1 for a long time, has been selling off the hardware side of their business for several years to focus on consulting.
About 10 years ago I saw a presentation given by Iron Speed . They make a 4GL tool for generating ASP.NET websites. The tool was impressive back then, and it's probably even more impressive today. And yet, there are still plenty of jobs available for ASP.NET developers.
I have found that most IT people react in one of two ways:
1) They "know" it is impossible and scoff, or
2) They fear it and the impact it will have on them personally.
Of course, it is likely that 1) is just 2) in disguise, but I prefer secret option 3), where they embrace it and wonder how they can make it work for themselves. If I did release this system, there would be huge opportunities for third-party extensions and integrations, especially interfacing with existing systems. This would likely create many jobs, not destroy them, as you suggest.
As far as SAP is concerned, I have always thought it unfortunate, when you consider the bigger picture, that it is so expensive to use, as these costs are inevitably passed on to the consumer, one way or the other. While it is true that a few people got very rich off SAP, I'm not really a fan of creating a pseudo-monopoly, then charging $5000 a day to "help" customers work with their software.
It seems to me that if the software was any good, it'd be easy to use for anyone (that's more like what I'm talking about). Of course, there is a chance that much Enterprise software is deliberately over-complicated, entirely so that the vendors can charge these exorbitant fees.
As for being a billionaire, no I am not, nor will I ever be. Even if I was, I'd give it all away, as I don't believe that I could sleep well at night with a billion dollars in the bank, while there is so much human suffering in the world. This is obviously just a personal opinion, but I wanted to make clear that I'm motivated by empowering people, not getting rich.
Finally, I think it is worth expanding our view a little and considering the overall march of progress. History is full of examples of technologies that rise, making a lot of money for those involved, but which are eventually commoditised. I don't see why we should consider that the creation of business applications is somehow a "special case" and should be protected.
Lawyers, doctors and accountants have managed to do a good job of protecting their professions, mostly by building bigger and bigger moats, but even they will succumb to the inevitably march of progress and eventually be replaced by software (it is already starting, but this is just the beginning).
P.S. I am not American
P.P.S. I'd be happy to buy you a bear, but in my country a beer is considered more appropriate ;-)
@alexandar - All the people I know are still making money. All of my friends with software businesses are having their best year ever. I don't know anybody who is down this year. But yes all of the money has raised the bar and made it more difficult for 1 man projects. I wouldn't expect a 1 man project to go too far in 2014 unless it was super innovative and original.
@Atanas - I thought I was the only one on this forum living in Bulgaria.
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz