Innovation in Software

Vagueware

Archive for the ‘software’ tag

You are reading a blog - Innovation in Software - no longer under active maintenance. These pages are kept here for archive purposes. If you wish to find out more about Vagueware please read our current website which will include links to the new blogs when live.

Death of Software Engineering Prematurely Announced

with 4 comments

[Up-front Disclaimer: I didn't do Computer Science at University. I did "Software Engineering". It involved formal methods and quite a lot of Z notation. I have some pretty strong views on Software Engineering as a discipline as a result. Most of my CompSci colleagues generally do not share my beliefs.]

Johannes Ernst posted yesterday a pointer to an article from IEEE Software by Tom DeMarco, pronouncing Software Engineering as “an idea whose time has come and gone”. Tom’s argument can basically be summed up as:

[...] you need to distinguish between two drastically different kinds of projects:

  • Project A will eventually cost about a million dollars and produce value of around $1.1 million
  • Project B will eventually cost about a million dollars and produce value of more than $50 million

What’s immediately apparent is that control is really important for Project A but almost not at all important for Project B. This leads us to the odd conclusion that strict control is something that matters a lot on relatively useless projects and much less on useful projects. It suggests that the more you focus on control, the more likely you’re working on a project that’s striving to deliver something of relatively minor value.

To my mind, the question that’s much more important than how to control a software project is, why on earth are we doing so many projects that deliver such marginal value?

Can I really be saying that it’s OK to run projects without control or with relatively little control? Almost. I’m suggesting that first we need to select projects where precise control won’t matter so much. Then we need to reduce our expectations for exactly how much we’re going to be able to control them, no matter how assiduously we apply ourselves to control.”

Frankly, I can’t believe such a narrow and misguided argument has come from the pen of Tom DeMarco.

Imagine if you will the next time I go into tender on a project.

Customer: So how much will this project cost to deliver, and how long will it take?
Me: Well, how much value is it going to add to your business?
Customer: Pardon?
Me: Is it going to add a little bit of value to your business, or a lot?
Customer: A lot, I expect.
Me: In that case, I have no idea. Let’s just roll with it and see where it goes, eh?

I’m not convinced that’ll go down well.

There are a few logical mistakes in Tom’s argument (and I can’t believe I’m having to point them out), that basically means he’s talking a great big pile of crap:

  1. We can not assess the true value of software until it is shipped.

    We might be able to sense the potential value, but it’s a guess.

    I have one project on my books now with a mid-sized build budget, potential value in the hundreds of millions. Another project for a smaller build budget with a potential value of £200k-£300k. Another project with a tiny build budget that if it goes viral could be worth billions five years from now.

    Or maybe the project with the tiny build budget sinks, the medium project gets on NASDAQ in 5 years and the biggest project eeks out a living but never goes stellar.

    We simply don’t know. We can’t know. We’re guessing. There are too many variables outside of the software engineering process to be able to assess the potential value accurately.

    In essence, we have to treat all projects as being potentially of very high value, because they all are.

  2. Value is potentially nearly unlimited, budgets are not.

    It might be well and dandy to say that it doesn’t matter if the budget might slip because the value is so high, but budgets are fixed.

    Thousands of software builds are being worked on right now where a 5% budget slip is potentially going to kill the project because there just isn’t more money after the budget is gone, and without being feature-complete the software is going to have near-zero value.

    Yes, incremental development is the way to do things, yes we should be able to stop and ship after each day’s work. However to fulfil the project’s objectives (and maximise its potential returnable value), we must aim to get all the features in to the final build within budget.

  3. There are other factors beyond budget, schedule and value to control.

    John Glenn once quipped about being sat on the launchpad, “I felt about as good as anybody would, sitting in a capsule on top of a rocket that were both built by the lowest bidder.

    However, whilst budget was important, he shouldn’t have felt in danger: the political ramifications of a death would have meant that the people who built that rocket and capsule were going to make sure he survived.

    And some software systems are the same. What is the “value” of a nuclear power station control system? Or the control systems in a fly-by-wire aircraft? Do we care more about the financial value or the safety value? I would suggest that controlling the build – engineering the build – in these situations is critical because the safety value is very high.

    In fact, it betrays immediately the fallacy of Tom’s that only the marginal projects need tight controlling – if you’re not controlling the processes around a software build that keeps 400 souls alive at 35,000 feet, you really should be in another profession.

There is a lot of cruft in software engineering. Waterfall methodologies are now considered almost laughable. However, it’s a young discipline and we have barely begun to understand the correct way to engineer software.

Agile philosophies are taking over in development shops because it allows for less process, more communication and ultimately better software being produced at the other end.

Behaviour-Driven and Test-Driven Development methodologies are providing useful benefits to our clients in a way we could barely imagine just a couple of years ago. In certain situations, formal methods and algebraic proofs are confirming that software is “correct” and “complete” in such a way we can literally bet our lives on it.

Tom admits himself he’s not on the front-line of software development these days. Perhaps his metric-centric universe is correctly condemned, but most of us aren’t using those methods anyway. We’re looking at perhaps a few numbers instead: test coverage, remaining days in budget/schedule, remaining features to be implemented. We’ve moved on. Perhaps he just doesn’t get what we’re doing in dev shops these days.

And we’re still learning new techniques, new ways of doing less process, more quality software. Software Engineering is definitely not something that has “come and gone”: it has barely got its foot in the door.

Towards the end though, Tom does make one point I can’t agree with more:

Consistency and predictibility are still desirable, but they haven’t ever been the most important things. For the past 40 years, for example, we’ve tortured ourselves over our inability to finish a software project on time and on budget. But as I hinted earlier, this never should have been the supreme goal. The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business.

This reminded me of a talk given by Ted Nelson at OpenTech 2005 where at one point he almost screamed:

I didn’t get into computers to automate trivial crap! I got into it to change the World!

Didn’t we all? But I think we can do it without having to just free-ride our way along with our fingers crossed, hoping we don’t run out of money.

Written by Paul Robinson

July 20th, 2009 at 2:13 pm

Economics of Open Software

with one comment

In the last few weeks, as I’ve been firming up ideas for cashflow around Vagueware, I’ve come to the conclusion that it’s not entirely right to suggest this is about “Open Source Software” (OSS for short) and how it is delivered. Specifically, I need to drop that middle word.

Open Software is more than just source code. It’s about the design, documentation, support, and improvement of the product. It’s about saying “we own this” instead of saying “I own this, but you can use it”. I’m trying to work out ways of being able to make that mean something real, and for there to still be a cash-flow at the end of it all.

The services model is definitely one way forward, but I’ve also been thinking about an idea mentioned a few months ago where I allow sponsorship of features, documentation or other parts of projects at a small level.

It may be that the feature set I come up with for a project is all well and good for 99% of people, but if there was something missing for the other 1%, that group (or individual, even) could put some money in the pot to encourage its development. It might only be $10, but it’s $10 in the pot. Six months later somebody else comes along and decides they really need that feature too, and they add $50. We now have $60 in the pot, and if the feature is something that can be bitten off in less than an hour, it makes economic sense to just get it done. Of course other features might need thousands to make them economic, but allowing for lots of small donation, it’s more likely those features will get funded.

The idea of a code bounty is not new or original, but I’m wondering how best to structure it from day one and whether the bounties should be claimable by Vagueware alone, or whether to open it up to other developers and if by doing so I would be changing what my company is fundamentally about.

I really get a gut feeling that where I’m heading with this is new territory in some way, but that I’ve seen all the components elsewhere. Whenever I think about whether this is going to work – if I’m going to be able to make a living from this – I start getting a sick feeling in my stomach, and that’s how I know it’s worth trying.

Written by Paul Robinson

March 9th, 2007 at 9:45 am

Plans Evolve…

without comments

My eye was caught by a post on the excellent indexed blog which if nothing else, inspires a new slant on data visualisation. It also makes me smile.

The cartoon in question is this:

There must be a catch

Apologies to anybody using a screen reader, but it comes down to this: certain objectives in life can be classified as being desirable and accessible. The less desirable, and the less accessible, the more likely it is you don’t want it. The less accessible, the more desirable it needs to be to shoot for it.

One of my bugbears with open source right now is when it comes to this simple understanding, the community is mostly out of balance. We’re sat unevenly on lumpy soil. We produce things that are desirable to niche audiences (ourselves, usually) and nobody else. We produce tools that are hard to understand because it’s easy for us to do that, and hard to make it so that people don’t need to think about what is going on.

In the last couple of weeks I’ve been rolling around ideas for Vagueware in my head, and if I were to plot where the code I produce from here on should be on that graph, it would be somewhere between “hard to get” and “daydreams”. I want to make it easy for anybody to drop an idea in, and within a few weeks to see their idea (if it’s a good one) take form. But I’m not interested in producing a clone of existing software, even though I know I’m going to have to at some level.

Going through my box of ideas, I note some of them are evolutionary steps on what already exists, some of them are a little ‘out there’. I need to plan carefully which ones I’m going to put up first: too ‘traditional’ and ‘samey’ and I send out the wrong message and alienate the interesting ideas. Too pie-in-the-sky, I get people fluffing it off as a fantasy World.

Thinking this through, I see that there are several categories of code I’m going to want to produce:

  • Core Components – it is likely that in any idea I bring forward, there are going to be certain tools needed over and over again, most of which don’t have any high-quality Rails open source components in the wild: a Drupal-like CMS, social networking tools, e-commerce plugins, etc.
  • Evolutionary – Then, it’s time to push things out a little. What happens when I combine an RSS aggregator with a Bayesian classifier so you see posts clustered around topics as opposed by feed? What happens if I take an auction-site model, but update the entire system so different auction models can be tried, and sales can be easily embedded into blogs and other pages? What happens when you take a real-estate platform, but plug it in to a social networking tool so you can see who your new neighbours are going to be? What happens when you take a web-based spreadsheet and make it aware of APIs out there, a la Seth Godin’s “websheets” idea?
  • Revolutionary – The ‘out there’ ideas that try to shake up things in truly bizarre ways. A news sites anybody can contribute to (not just post links to blog articles on), experiments in micropayments, etc.

That means there is room for movement in terms of what is accepted – if we say up front “these ideas have been done before, we’re just re-executing them in open source” or “these are mad as hell”, people won’t walk away with the wrong idea. Give things a label, people believe it.

I’ve also had a bit of a re-think about monetisation. I need to clear this with my accountant, but there’s potential here for something a little bit more interesting.

Let’s suppose an idea gets posted, and it’s sane at some level and doable. It may be I’m too busy to do it, but various people like it so much that they’d pay to see it completed sooner rather than later. They can become ‘sponsors’ of the idea, and anybody could bid to take the sponsorship pool in return for providing working code. I might grab it, somebody else might grab it whatever. If two or more parties are involved, they have to agree between them how it’s going to be shared, with the sponsor’s agreement. It could turn into a way of being able to fund open source development of that kind of code where scratching your own itch isn’t enough.

Just some thoughts. For what it’s worth, it’s likely that the new version of the site won’t be ready for a couple of weeks yet. I’m still trying to decide what to do with this blog when it happens, and need to firm up some of the above ideas before real progress can be made. Watch this space, etc.

Oh, and I’m also spending way too much time thinking about changing the logo. Any suggestions appreciated, although it shouldn’t become too much of a bikeshed.

Written by Paul Robinson

February 8th, 2007 at 3:21 pm

The Labs

with 2 comments

In my last post to the blog, I talked about open sourcing code and building a business off it. I’m now getting more convinced that’s the way to go, and aim to pull down this site and replace it with something more suited to that purpose in the next week. The content here will be retained, but in another form and will not sit on the front page.

For those of you reading via RSS, this is a heads-up that this feed might break in the next week, but I’ll do my best to make sure everything gets directed appropriately and that all existing content on the site gets carried over to the new site – I get too much traffic from old articles to throw it away.

Anyway, onto the details of “the plan”.

One thing to note is that Vaueware’s language of choice will be Ruby, and therefore 100% (or as close to it as possible) of the code produced and put out into the wild will be Ruby. One of the goals is to lower the barrier of participation, and I believe Ruby to be one of the simplest programming languages in the World to understand, whilst also being one of the most powerful. Over the course of this year, I’ll be putting considerable effort into producing Ruby and Rails tutorials to help in getting more people involved in producing actual code: I’m big on participation.

Another thing to note is that I hope to break a paradigm here in one regard: open source is very good at copying what has been done before but very bad at genuine innovation in any one field. There are examples where this is not true, but virtually every successful open source project in existence is a clone of a commercial piece of software in some regard. If not in function, at least in genre and paradigm, we follow where others lead. I really don’t want to see Vagueware go down that route: the World has enough clones of Drupal, and in the Rails world Mephisto does nicely, thanks.

A central part of the idea for the next stage of Vagueware is an area I call “The Labs”. The idea is that anybody can sketch out ideas for new ways of doing things, for new types of application, even if they have no experience of developing software, and then interesting ideas get developed by Vagueware. This isn’t another “let’s have a competition where the best idea gets money” site, this is about encouraging that tiny corner of inspiration in all of us into a collaborative effort to produce better tools. We then build all those ideas, or as many as possible, together. And give it all away for free. Then, build revenue models around services on those tools.

So how will this work? Well, here’s a scenario:

Johnny has an idea about how to use a web application to do something interesting. He realises that he doesn’t have the skill and/or time to develop it himself, and he is more interested in seeing the idea in action than he is in making money off it.

Johnny vists the Vagueware labs site, and submits a short proposal. This gets moderated along the following criteria:

  1. Can it be developed as an open source project without landing us in trouble?
  2. Can it be developed by the current skill base of Vagueware and the wider community?
  3. Is it an interesting and good idea?

The last one is important, but not as important as the first two. However, originality is key as the focus is on open source research and development, as opposed to open source software. I want to try weird and wonderful things nobody else has done before. It’s the only way this will be fun.

Did I mention this had to be fun? If it’s not challenging, there’s no point. Profit follows meaning, so if we create meaning out of fun and interesting projects, somehow I’ll end up being able to pay my rent. Yes, I really do believe that.

So, then Johhny’s idea is accepted, and it gets a whole area of the labs to itself, and anybody visting the labs can see it. A bunch of wiki pages are there for people to bulk the idea out, add business plans and possible uses, catches and possible risks, etc. All of this activity is open to anybody, regardless of who they are, what their background is, etc. Attached will be some basic forums for community discussion (I hate Wikipedia’s discussion pages, the lack of structure makes communication harder rather than easier), and the idea ferments.

So far, this will sound familiar to those who were around for v1.0 of Vagueware back in 2003/04. At this point though, things get a little more focused than they did back then.

At this point I code something basic – the absolute minimum to get the idea to v0.1 and place it in an SVN repository. I invite patches, I develop it further myself. If I can, I’ll pay people to work on it and add to it. As it gets closer to v1.0 hosted/packaged versions are made available for non-techs to be able to use, but anybody can download it and do what they want with it. Vagueware’s revenue will be based on offering support, maintenance and other services around that core concept. Licensing will be MIT/BSD in virtually all cases.

What about Johnny doesn’t he make something? Well, his software is now written, and he can download it and run it for free. He can bask in the glow his idea came to fruitition and he made the World a better place. He can install it on a server and market it himself. It won’t have cost him a penny to ‘develop’ the idea so that represents some decent ROI right there.

I expect in the early stages, there will be a lot of ideas around open sourcing existing platforms like YouTube, MySpace, etc. and providing a platform for people to develop those ‘traditional’ Web 2.0 ideas (if that isn’t a contradiction), but eventually it would be nice to think revenue can come in from the more revolutionary ideas that require real R&D. I’m particularly interested in Vagueware Labs focusing on software as a mode of design as opposed to churning out code.

Will it work? I have absolutely no idea. If it doesn’t, the worst case scenario is I have to go and get a real job. Best case scenario? Everybody gets involved in some interesting ideas. What if nobody submits ideas? I have a stack of about 400 of my own I’ll make public over time. The Web is full of interesting ideas. What if people take the idea and make millions off it and I end up broke? C’est la vie, personally I don’t think it’ll happen though: the key to this is in the execution and strategy, not in the idea. If I’m too lazy to execute delivery properly, I deserve to go broke.

Like I said in my last e-mail, all of this takes a reasonable amount of courage because I don’t know of anybody else doing this, and nobody is telling me this business model will work. I think it’ll pay in the long term though. If it doesn’t, back to the drawing board.

Written by Paul Robinson

January 27th, 2007 at 4:12 pm

Software Development, Pleasure & the Knowledge Economy

with one comment

When I first started to write software, it was a hobby to me. I am privileged in many respects that today I can call it my job. In the past, very few people got to do for a living something that they had previously done purely for the pleasure it gave them. Musicians, writers, artists and the like were lucky enough to say they loved their jobs, that it was more of a vocation than a profession. They were lucky – most people felt work was a chore.

I was prompted into thinking about this by a TV programme called ‘What makes Britain Rich?’. It was about the economy in the UK, its structure, the different components of UK PLC, etc. A key point made was that in the past the manufacturing sector of the economy was dominant but in modern Britain it is the knowledge and service sectors, combined with the finance industry that make up the bulk of the economy.

I think they missed something though. It’s not just the money that has moved around, it’s our perception of work itself.

In the past, people were expected to turn up to a job they didn’t enjoy as work was a scarce commodity. As a result evenings, weekends and holidays were cherished and the Ultimate Goal of retirement was something to which a lifetime of dreams would be hung: work hard enough doing something you don’t like, and when you’re 65 you get the rest of your life off. This was, I should point out, at a time when life expectancy was around 67 years.

As we shift into a service and knowledge economy all of this is in massive flux. It no longer applies that we have to do work we don’t enjoy.

Whereas my parents thought of work as a chore that needed to be done, I see it as just another leisure pursuit. If I were doing menial labour in a factory because software development didn’t pay, in the evenings I would come home and boot up a code editor in much the same way my parents might turn on the TV and open a bottle of wine. I know this is true, because when I was at school ‘working’, all I wanted to do was get in front of a keyboard in the evening. During my fourth year (now known as ‘year 10’) the entire Thursday afternoon was dedicated to GCSE Computing, and to me spending the afternoon writing BASIC on an Archimedes was more like a long lunch than an afternoon of work.

One analogy that might help explain this better is the sandpit at nursery. When I was 5 years old, I went to a school that had a very simple rule: you got to play in the sandpit and in the playground as long as you did your writing, reading and other work first. No work meant no play. You got the work done, you got the gold stars, you got the reward of play. What I do for a living now is a bit like spending the entire day in the sandpit but getting the gold stars anyway as if I had been working at my desk all day long.

If I try and explain this to somebody who doesn’t enjoy their job, they still seem to have a hard time grasping it. When I question them about their jobs, their complaints normally fall along similar lines: they don’t enjoy the work, because it doesn’t challenge them; it doesn’t pay enough; the people they work for are not people they would choose to spend time with if they had a choice; the rules within the workplace are inflexible, and to the individual’s mind, pointless.

I then try and explain that because I grabbed the knowledge economy by both hands, by deciding to take the skills and knowledge that I enjoy using and capitalising on them, I got to change the rules for my work: I do work I find challenging and enjoyable, and avoid work I don’t; whilst pay is below what I want right now, my maximum salary is in my own hands and if I want it to be larger, I just need to work smarter; I work with people I like working with, and nobody else; I set my own rules, my own hours, and everything is aligned towards the objective of me enjoying it.

It is also important to realise that variety is the spice of life. Whilst I enjoy working long hours, I also enjoy theatre, reading, going to classical music recitals, art galleries and museums, cinema, crashing in front of the TV or even just hanging out with friends. That’s all part of life as well, and should not be excluded just for the domination of one pursuit, no matter how much I enjoy it.

I’ve had to remind myself of all of this in recent weeks, because the end of 2006 turned into a horrible trudge. I was over-committed to a few jobs I didn’t really enjoy. I think my work suffered as a result – how could I produce quality work when I had forgotten that my work was meant to be fun, challenging and interesting. My professional New Year’s resolution is to try and re-engage with that.

There is an interesting side-effect of this ‘work as leisure’ concept, too. If I enjoy my work as much as I do, why would I ever want to stop doing it? Why would I want to stop it all at the age of 65 if I am still loving it? It would be like me saying that at 65 I won’t go to the theatre or art galleries any more. It may be that within a few years I stop enjoying writing code, but the beauty of the knowledge economy is that I can adjust merely by finding a way to make a living from another set of skills I have. There is, in theory, no reason why I should feel that I have to work at something I hate.

If I get to 45 years of age, and suddenly I enjoy reading books more than I enjoy writing software, all I have to do is find a way of making reading books pay. Off the top of my head, I can think of four or five ways to do that. The knowledge economy is an enabler, and the Internet has made the cost of a context switch close to zero. It’s going to get better in the future. In effect, the scarce commodity is no longer paid work but knowledge. It is therefore the skilled/informed individual who is in control, as opposed to the factory owner.

If the knowledge economy grows as much as I expect it will over the next 20 years, this mode of thinking is going to become more prevalent, and it will do something interesting to the pensions industry. I know my grandmother (88 years old) would love to be active, but she worked in a services industry that required lots of running around (nursing), ditto for my Mother. I’m not in the same boat, and I think that is going to make it easier to explain why I’m not pouring 40% of my income into a pension fund right now.

Another interesting factor is the ‘useless’ degrees people are taking – over the last 20 years, if somebody went to study something that they enjoyed but had no clear vocational path, they were mocked. What good is a degree in Art History you might ask? Well, as we move into this new economy, quite a lot of good if you’re prepared to work at making it pay and you still enjoy it. In fact, the deluge of people taking Media Studies and related subjects at A-level and Degree level is probably the reason why the UK is the largest exporter of cultural goods (in dollar terms) Worldwide. As more people decide they want to work in the media, the media economy grows. We’re breaking all sorts of rules along the way.

In terms of the software industry, I think this means there is plenty of opportunity for people who really love coding to build a thriving industry around themselves. By taking hold of what we love and finding a way to financially capitalise on it, we can make a living. Thanks to the knowledge economy, those of us who enjoy gaining knowledge are going to have the ability to create a secure future whilst also having a lot of fun.

I think what I’m trying to say here is that this is a truly amazing industry and it sits within a sector of the economy that has to be the most comfortable to work in. Lower stress levels, potentially bigger rewards, life-long income combined with enjoyment. Just something to think about, that’s all.

Written by Paul Robinson

January 5th, 2007 at 6:00 pm

When Software Developers Don’t Get Marketing

without comments

Last night, a story on MacRumors.com grabbed my interest. It was grabbed for two reasons:

  1. I could land a booty of 10 apps from MacHeist for the iBook that would normally cost me $400, but for just $49
  2. This, apparently, is highly controversial

Now, most of the apps are OK, but not the type you would run out and buy as if your life depended on it. I already have and use Textmate, so that didn’t add value. I’d been meaning to grab copies of DEVONthink and RapidWeaver for a few months now and $49 for those two alone is a saving. The fact I was able to get Delicious Library, FotoMagico, ShapeShifter, Disco, iClip, a Pangea game (I chose Enigmo 2, which is already sucking me in), and NewsFire as bonuses and for no extra money, just made it a bit more interesting for me.

Now, here’s the thing. The blogosphere is on fire about this, not because of the remarkable value, but because the developers providing the software are apparently being ‘ripped off’ by MacHeist and despite going into this with both eyes wide open, are obviously being conned. Here’s some examples:

for MacHeist to call it “The Week of the Independent Mac Developer” and to practically give away the software… well, that’s just a fucking insult to me and all the other hard working developers out there.
Gus Mueller

My understanding is that the developers taking part in the bundle are getting a flat rate for participating. That means that the more bundles MacHeist sells, the more money MacHeist makes, while the developers will get no additional money. Each new user adds support costs, so the more bundles they sell, the worse off each developer may be.
Paul @ Rogue Amoeba

The argument is not that MacHeist are being underhand. Rather it is that the developers are only making a fixed fee and MH are making a bundle on the back of them.

So are the developers idiots? Have they been conned? If you read Gus Mueller’s fiscal breakdown, you see that MacHeist are canny businessmen if nothing else. Here’s some of the comments from the developers who got involved:

Gus has strong opinions and I love him for that, but none of us who are bundled with MacHeist were forced to do so; we knew ahead of time what the price would be and how much we’d get, and we decided it was worth it for us.

I think events like this get a lot of publicity, so they bring in new customers that I wouldn’t reach on my own. So I’m not really sabotaging my sales; I’m supplementing them. Seriously, if you came to me and said, “I’m going to resell Delicious Library to customers on the moon, who you’ve never met and can’t reach, for $1 a copy,” I’d say, “Go for it!” I don’t care if I only get a penny if it’s a penny more than I would have gotten on my own.
Wil Shipley of Delicious Library

Let

Written by Paul Robinson

December 16th, 2006 at 10:53 am

The Problem with Google and her ilk

with one comment

Do you remember when, as a geek, you thought Eric Schmidt was cool? Maybe it was about the time that he was working at Xerox PARC. Maybe it was when he was working for Bell or Zilog. Maybe it was when he led the development of Java – man, actually, he deserves a slap for that one – or when he moved to Novell. In recent months, his straddling of Google and Apple has been analysed in some depth around the blogosphere.

The problem is, as a businessman, his strategy is all wrong. If you’re a Google shareholder, you should be asking quite serious questions about whether he really understands the economics of software development in a consumer market correctly.

The “road to Damascus moment” for me was when I read that he thinks mobile phones should be paid for by advertisers and that Google will be lining up to deliver the advertising platform needed. This is an idiotic business model. Thinking about it, I now realise that their entire business model is flawed and can be defeated by somebody offering equivalent execution of a product/service but with a low-cost subscription in lieu of advertising. Just because something is free, it doesn’t mean people will want it if it comes with adverts: if you don’t believe me, ask ITV.

The problem with advertising as an economic model behind any business, is that it requires you, the advertiser or publisher, to distract your customer/target/victim. If I build a web-mail system and say “hey, this will let you get your mail done in no time at all!” don’t you think I would be clearly in a position of hypocrisy if my business model required me to distract you constantly with “partner offers” down the side of your inbox?

If I offer you a ‘free’ spreadsheet or word processing tool, don’t you think I might be harming your productivity just a tad by hoping you won’t mind me looking at what you’re working on and making some useful suggestions for websites you should go and visit that want to sell you stuff? You thought clippy the paperclip was annoying? Wait until Google start running ads inside Writely.

The issue for me, is that advertising in the UI is anathema to good software design. We should be aiming to produce high-quality, bug-free software that lets users do the right thing as quickly as possible, and make it difficult for them to do the wrong thing at all. If we accept that the way this development will be paid for is through advertising, we are telling the user “actually, we don’t care about your productivity as much as we should”.

Advertising on mobile phones would be even worse. I look at my mobile phone maybe a dozen times a day. When I use it to browse something on the web, I make sure it’s as quick and painless and ad-free as possible. It is a tool, a device I carry around because I need to. It’s not my best friend that I feel the need to consult whenever I don’t know what to do with my evening.

If people are going to give me a £250 phone for free just so I can watch their ads, they’re going to quickly get burnt and end up having to cut costs and reduce their quality of service to me. They’ll do this as they realise I’m not going to be interrupted by them all day, and their maths of how excited I would be to hear about their special offer collapse under the weight of my considerable apathy.

What I’d prefer is what I have – a contract for 12 months where I give O2 my £25/month, and they give me a free/subsidised phone every year and a few free minutes of calls chucked in as well. I pay this for them to provide me a high quality of service, and to not send me adverts. To be there when I need them to be, and to stay out of my way when I’m, you know, living my life.

I think a lot of customers are going to start buying into this as well – they realise the problems with advertising supported businesses because it hurts their productivity, and when somebody produces a webmail tool as well designed as Google’s, but costing a small subscription year with no ads, Google will see market share slide. People will start to realise that whilst money is expensive and scarce, compared to time it’s cheap and freely available. If you ask somebody “do you want free, but takes longer, or a small amount of money and it’s less time with fewer distractions?” when they want to get something done, they’ll reach for their wallet every time.

The result will be the only people using Google and other ad-supported software being those who can’t pay a subscription, or use the tools so infrequently a subscription is of little value to them: exactly the wrong demographic advertisers want to talk to. As software developers, it is in our economic interest to notice this before Google and others do.

There is another scenario as well. Thinking about this, I came to the conclusion I don’t use Gmail because it is ad supported and I want my mail client to be a productivity tool as much as anything else – I don’t want to be distracted. But I do use Google search. Why don’t I get distracted there? And the answer hit me: my brain filters out the ads. I now just don’t see the links in the blue box at the top, or the boxes down the side of the page: I have adapted to focus on what I need. This is an interesting observation from the perspective of how the human brain adapts, but the scary question for Google is: what does this mean for an advertising-funded business model when everybody adapts?

Written by Paul Robinson

November 14th, 2006 at 9:08 am

Wiki-fying Brainstorming

without comments

A very small number of readers will know that Vagueware.com was once a wiki. Its purpose was to hold a bunch of brainstorming pages for concepts of software that one day, one of us would get around to building. I still have some of that site archived – the quality of ideas was variable, but interesting.

It’s nice to see the people behind Firefox letting anybody get involved in the feature brainstorming for Firefox 3.0 due out 2007Q1. The approach is refreshing, and a quick scan shows some really great ideas. The problem of course will be how hard it is to get many of them actually in the browser.

Top ideas I’ve seen by users so far are:

Tree-shaped history: If you are at a site (site A), and push back a bunch of times to get to (site B), are then follow a different site to get to another site (site C) it is no longer possible to use the forward button to get to site A again. This should be fixed by storing a tree of the forward and backward locations, and use an interface that allow you to branch when going forward.

You have no idea how useful that would be to somebody like me who is constantly hitting back/forward buttons around API/rdoc sites.

Allow an external editor (emacs, textpad, etc) to edit text in form text boxes

Those of us who blog would find this invaluable, although it might be overkill for day-to-day browsing.

Display multiple tabs in tiled panes (both vertical and horizontal panes, preferably mixed.

I’d love to be able to have two windows open in front of me next to each other as tabs in the same browser – one for say docs, another for some example code. Like framesets but as tabs, and cross-site.

Allow to put a tag on whatever place of a web page, like a gg map interface. The tag is remembered on the right side bar of the window, can be bookmarked. when the bokkmark is clicked, the window is open and focus down to the bookmark

Now that’s interesting. I don’t use bookmarks at the moment, because they’re useless. All they do is show me a page – a whole article. Normally what I’m interested in is a particular paragraph.

When a numeric portion of the URL in the address bar is highlighted, allow it to be incremented/decremented using the mouse wheel, PgUp/PgDn, scroll arrows, or some other method. E.g., http://www.example.com/photo1.jpg; highlight ‘1’ and scroll to view photo2.jpg, etc.

And for those of us who are testing pagination systems it would be even more useful than those who might use it for more interesting ‘recreational’ purposes.

That’s all just for starters. Hundreds of ideas here, and in a way validates that the idea I had of putting the future design of a piece of software in the hands of hundreds (or thousands) of users. It appears that it is far more productive than letting a few developers make decisions by themselves. Really interesting stuff.

Written by Paul Robinson

October 17th, 2006 at 9:00 am