tecosystems

How Open Source is Like Visual Basic

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

Based on the above, I’m sure that some of you are eagerly plotting my premature demise (and heaven help me if this gets Dugg ;), but bear with me for just a second. Before you conclude that I’m damning even so generic and broad a term as ‘open source’ with that comparison, let me explain.

The argument should not be taken literally – not least because open source and VB are hardly inimical. It’s very possible to have open source Visual Basic. What I’m focusing on, rather, is the high level similarities between the success of both in general terms.

To stave off some potentially redundant responses, here’s what I’m not arguing:

  • That open source, like VB, can’t scale
  • That open source is as inelegant as VB was often argued to be
  • That open source is purely a departmental solution
  • That it’s necessary to ‘graduate’ from open source, as it was perceived to be in the shops I worked at that used VB

Et cetera. Open source, technically speaking, shares little with Microsoft’s flagship entry level development environment and language.

But I do believe they share an important, even crucial, attribute: the ability to dramatically expand the size of their potential audience and userbase. How they accomplish that end differs dramatically; in the case of VB, it was largely a focus on simplification, ease of use and an improved toolset, while open source has relied more on transparency, low (or no) cost, inherent distribution advantages and collaborative development. The net result, in either case, is a dramatically expanded potential audience.

If you agree with that basic statement, the really interesting question is what might that portend for firms betting on or against open source? What can the history of VB tell us about the future of open source?

To be honest, I haven’t looked at the question long enough – it just came up in a project proposal I was writing yesterday – to have any kind of a definitive or defensible answer. But I strongly suspect that there are lessons to be learned there; particularly in terms of the economics of the volume opportunity. For example, Microsoft was able to hook millions of developers early in their career by giving them a tool that they could use and be productive in while still honing their skills – even if it’s something they looked down on later in their careers. By eschewing higher end functions common to a variety of competing toolsets, Microsoft was able to attract – and keep – a volume audience developing on and for their platform. Not solely, of course, but partially. The lead that Microsoft built up over non-Microsoft development approaches has in many cases never been relinquished; Microsoft still boasts one of the biggest development communities, and some of the easiest to use tools.

Open source has likewise captured the attention of a generation of young software engineers by eliminating to an even greater degree barriers to entry, and so the question becomes: who profits from this attention and volume as Microsoft did with VB? To my way of thinking, it’s those – such as MySQL and Postgres – that can get their infrastructure in developers hands with the least amount of friction. Many of the commercial vendors we speak with are concerned about how development communities simply aren’t using their commercial products to the degree that they once were. As Microsoft has proven in the past, the surest way to future profit is through volume, not margin (though margin’s not something to sneer at ;), and volume is something that open source seems to have fairly significant and inherent advantages in building.

Anyway, I haven’t fully fleshed out this concept, but thought I’d share it with you in flight in the event that someone can succinctly and easily disprove it.

8 comments

  1. VB is fast, dirty, and hard to maintain without the strictest of discipline. Open Source communities are fast, dirty, and hard to maintain without an act of God.

    I’d argue that future profit doesn’t depend on either margin or volume, but rather growth. That’s where Open Source has it’s true greatest potential, low to no barrier to entry, lots of communities that are friendly to newcomers (though there are definitley some that aren’t), and a propogating mindset.

    OSS is more like a religion than a business model.

  2. At first glance, I did not agree with the open source is like VB concept; however, as I was writing my response, I noticed more and more similarities finally coming up with one primary theme. Open source and VB were able to expand their audience and user base only when they shifted the balance of power into the hands of the end user rather than keeping all of the power with the developer.

    The beauty of VB was that it was so easy to use that anyone could program in it. From my experience, the people using VB did not typically come from a traditional programming background; they were ordinary users or new programmers who now had the ability to easily and quickly write programs. Previously, this could only be accomplished with years of education and programming experience. With VB, the power was now in the hands of the users and not the hard core programmers.

    Open source, on the other hand, began with developers scratching an itch (as Eric Raymond would say), but open source programs were often difficult or impossible for an ordinary person to install and use. It was not until open source software began embracing the end user as a primary customer that they were able to expand quickly. Firefox is a perfect example; users can easily get Firefox, install it, and find extensions and themes that allow them to customize their environment. Firefox, like VB, puts the power into the hands of the users rather than keeping it in the hands of the developers.

    In summary, with VB and open source, putting the power into the hands of the end users seems to have a dramatic impact on how quickly the audience expands.

    Other thoughts?

  3. A few points:

    99.x% of the population is not interested in programming.

    The last thing these people need is well intentioned departmental enthusiasts inflicting less than professional software on them that cannot be supported or maintained.

    The last thing organisations need is well intentioned enthusiasts perpetuating the mishmash of unsupportable and unmaintainable applications that already represent a headache for IT and risk to the business.

    That’s the downside of both VB and uncontrolled open source adoption/development within organisations, especially if their core business is not IT.

    This whole “put development capability into the hands of non-IT professionals” mindset is very 1990’s and we need to move on.

    The answer to the problem you have put into the centre of this discussion, i.e. empowerment of the masses, is not VB or “open source” (which I have to agree is a bit vague term in this context), it is a well controlled environment in which end users and enthusiasts can safely assemble pre built components and/or aggregate pre-existing services without the need for traditional coding/building. It is irrelevant whether this is open source based or otherwise. It is also independent in principle of who controls it, e.g. corporate IT department versus service provider like Google – but it does need to be controlled. The latest generation of portal solutions and services is the most immediate place to look for answers.

    The problem with the 1990’s view is that coding in any form is bad news if the person doing it does not understand and have the ability to apply software engineering principles – no matter what the toolset happens to be. I know it is a fuzzy line between building and assembly, and the best analogy I can think of is flat packed furniture.

    Give me a flat pack with all the right bits in it, holes pre-drilled in the right places, etc and a screwdriver, and I’ll probably be able to make you a reasonably functional chest of drawers in a relatively short space of time.

    Give me a few sheets and planks of raw pine as a starting point and I’ll end up a) wasting a lot of time and b) with something that doesn’t look very pretty, work very well and is likely to fall apart when subjected to any stress. And this will be true regardless of the completelness and sophistication of any carpentry toolset you might give me.

    I think it is important how you define the problem with these kinds of conversations. I also think that open source is a red herring here, unless you want to present it as an additional exposure for businesses just trying to get on with, well, doing business.

    Have I missed the point?

  4. Dale– what you call the “last things people need” seems to be a description of how IT actuallyy gets done. unless we go back to mainframes as architects become powerful dictators, we’re going to see user created value.

    Excel and Access – where stuff gets done.

    Does this create challenges for IT? Sure it does.

    IBM – the most “architecture” oriented company in the industry – now has people working on DIY and mashups…

    look at blog splicing – delicious, flickr, etc. we’re effectively building our own stikis.

    but i appreciate the equivalence stephen calls out is at quite an abstract level.

  5. I agree at a high level, but will weigh in on a couple points. First, I’m not convinced it’s just about volume and access (which I do agree are important) – but also making it simpler for developers to jump in and get up to speed. One of the side effects of PHP starting out as procedural was that the application was linear and relatively easy to learn about a simple web application. With PHP5/6 we’ll see much more OOP based PHP and the “VB-like” references will probably begin to fade. However, it’s uncanny how easy it is to jump into any PHP app (4/5) that’s well written and begin customizing or extending.

    The open source development process also has forced a rigor into open source code that requires clear, easy to access interfaces whereas in the past a departmental VB beginner would have just hard coded something in without creating flexibility. Look at WordPress and all the plugins available – or Firefox. Programmers can jump in and extend the core or customize it without having to rewrite anything in the core. Building in that flexibility is the mantra of many open source projects. Have you ever seen a VB app with APIs and useable interfaces? Getting to stable interaces across releases is something I see a few projects wrangling with now – but over time, I have no doubt they will figure it out.

  6. Sure Excel and Access are how things get done now, but that doesn’t make it the most optimum approach – far from it. Are you arguing that uncontrolled DIY development by non-professionals is a) what users want/need, b) what organisations want/need?

    If you re-read my post, I am not advocating a return to rigid centralised computing at all. What I am saying, though, is that replacing one form of development anarchy with another just perpetuates what today is a very serious problem in terms of fragmentation, supportability, maintainability, compliance, etc. I think the emerging technology and service provider delivery models provide opportunities to solve both the user empowerment problem and the business risk problem simultaneously.

    I would be interested in which bit of my post you actually disagree with and why. Saying IBM thinks something is good is not an argument as it has a huge commercial vested interest in disrupting the status quo – we should not always assume that what IBM is driving is for the good of mankind šŸ™‚

    Anyway, this is an interesting debate and I am eager to learn, but having run development teams in a formal IT environment at one end and spent 3 years as a compliance officer in the pharms industry at the other (inc auditing scientist’s dodgy home grown applications), I can’t help but look at things from an efficiency and business risk perspective.

    What (some) users ask for and what’s actually good for them does not always match up.

  7. Further thought, just to make sure we are not talking at cross purposes, maybe we need to define some classes of people:

    a) Professional developer – someone who’s primary function is to design, develop and/or maintain applications. Trained to one degree or another in software engineering.

    b) Power user – someone whose primary role is not IT, but who is computer literate and tends to support their local department/team on an unofficial basis. Often the person who knocks up quick and dirty apps in Access and Excel. Typically self taught VB programmer.

    c) Information worker – someone who makes heavy use of IT as part of their job and is forced to dip into the odd piece of development activity to work around the shortcomings of tools and the disjoints between systems. These are the guys that will record Excel Macros then hack the resulting code to make it do what they want – primarily because they have to.

    d) Other users – clerical staff, blue collar workers, most senior management, etc – basically the the rest. They have no interest in IT other than as a tool to get them through their day. This is the power user’s main local customer if the IT department is not responsive enough.

    This is not exhaustive and it is probably a continuum in practice, but of the lot, d) is by far the most common and should never be given the opportunity to develop DIY – they don’t need it and it would just encourage time wasting if they developed a taste for it.

    Of the others, I would argue that

    a) Clearly needs tools to build – full apps and components.

    b) Primarily needs the capability to assemble components in novel ways, but should not be encouraged to built them other than in a well defined framework managed by the IT department or a service provider. I like the approach IBM is taking with Websphere Portal 6.0 to enable this and the moves Salesforce.com has made to provide a more generic environment for “safely” constructing novel apps. These are just examples, though. The basic idea is that these guys should be able to accomplish what they need by dragging and dropping – not coding.

    c) Needs better end user functionality and more “out of the box” integration between systems. This is where the work Microsoft is doing with Vista, O/2007 and the other bits of the backend stack is important.

    Thoughts?

  8. Plazes, dodgeball, and Enterprise Microformats

    Track my geolocation! Please! While at the BEA summit, I had some lovely scotch-talk with two BEA folks along the lines of, “why can’t I just track everywhere I go?” Now, not everyone has this sentiment. There is one…

Leave a Reply

Your email address will not be published. Required fields are marked *