Is Eeyore Designing Your Software?

If you want to see a well managed gigantic open source project (including usability, localization, internationalization, and even marketing) you should see KDE.

I think you’ll find Planet KDE (http://planetkde.org/) interesting even if you’re not a contributor (I’m not, yet).

Asses?

I still don’t get the Eeyore thing… what’s the donkey about?

“Que Eeyore”

Qu? Significa “cue”, no?

(I too am super-confused by the presence of that donkey.)

One thing that seems to be happening to me is that smaller, nimbler Microsoft teams do all the code writing, maybe generating some decent docs using inline comments, and avoid all that process. They publish their work as “technology previews” or some such. When it’s time to roll the stuff back into the main product, or publish it “for realz,” then—and only then—does the overhead have to be processed. A sort of delayed execution, if you will ;).

Is this at all accurate?

A lot of the formal (boring) processes you’re describing are required to create “polish”.

I can certainly appreciate the incredible innovation of the open-source community. However, much of that is “skin deep”. The deeper I get into the project, the more I want good documentation, easy installs, modern IDE’s, good integration, etc, etc.

I would love to be one of the “cool kids” and use open-source. However, I find I am often FAR more productive using M$. :frowning:

Working at a big company, I certainly see the drawbacks to the process, up close and personal. And yes, lots of bad decisions get made. Open source development leads to a more JIT process for solving the issues that the process tries to solve, but because of this it isn’t very highly adopted in the money making markets (consumers, enterprise, etc.). Consumers try it, find it doesn’t work for them (usually because of some small thing), and then go back to what does work. Enterprises quickly recognize that they need to hire a bunch of experts and programmers to make the OS products work the way they need it to. Sometimes its just easier to pay a big software company a ton of money to do that for you.
In both markets you have people willing to pay for a better experience, and they can get it. Open source works great in markets that expect low cost and are willing and able to deal with the inevitable issues that arise.

There’s a stereotype about open source developers and software that it is hacked out by a bunch of loser geeks who can’t hold real jobs. That the software is sloppy and has never been tested.

Open source covers a wide range of software. In larger projects, many of the developers are paid to work on the project. For example, IBM has a whole group that does nothing but work on Linux. Google encourages many of their employees to contribute to open source projects on company time, and several people in Google actually lead major open source projects. And, this doesn’t even touch on Google’s Summer of Code.

Even Apple is into the act. Many of their employees work on BSD and of course, WebKit. Which brings us to the Mozilla Foundation and FireFox. FireFox is open source and is heavily supported monetarily by Google.

You can look at CollabNet which sponsors SourceForge (both the “open source” version and the Enterprise version) and Subversion. Both of these open source projects have paid development teams, but are also open source.

These are all open source projects, but because many major corporations depend upon it, they are happy to contribute time and money to see these projects through. Look at Google’s Summer of Code. (And Google actively encourages all of their employees to contribute heavily to various open source projects).

Many open source projects are headed by a small team who get paid by their company to head the project (just as you would any proprietary open source project). CollabNet is the sponsor of the Subversion project and has several full time employees overseeing the project and probably contributing a good majority of code.

Then there are projects like PHP.net and Joomla. These don’t necessarily have large corporate sponsors, but what they do have are dedicated development teams that heavily depend upon these projects. Maybe these developers don’t get “paid” to work on these projects, but they do get paid for their work that is based upon these projects.

So, many open source projects are fully tested and well documented – even better than most commercial software. The quality difference between proprietary and open source software is small. Yes, there are many hacked together open source projects with poor documentation, few software options, and barely work. But, that also describes about 80% of the commercial software too.

That is an depressed donkey from a child comic.

MS does all that?

With their quality of code I assumed Bill Gates does the “Works on my machine” test and puts it in a hotfix.

lol

Quoted from David w.

“There’s a stereotype about open source developers and software that it is hacked out by a bunch of loser geeks who can’t hold real jobs. That the software is sloppy and has never been tested.”

David, that certainly isn’t my impression. My impression is that open-source software is created by people who are [often] very talented and passionate about technology the problems they are solving.

All of this is really awesome and this is why innovative trends are often created in the open-source community.

However, writing documentation, management tools, a nice install program, an IDE, etc. is far less “sexy”.

When I use open-source I “feel” like I’m on the bleeding edge. It can be really exciting and it can also be infuriating. Trying to compile the latest greatest and fight my way through library dependency issues…

Maybe I’m getting too old (31) but I’m finding I just want stuff to work…

I think my point may have been missed.

My belief is that all of these TASKS (with the possible exception of the last one) are NECESSARY in order to ship software at the high level of quality that my paying customers rightfully expect.

Questions like:

  • How is the source code is managed?
  • How are the people who provide the effort to perform these tasks coordinated?
  • How are their efforts are rewarded?
  • How is this process implemented?

and so on are interesting questions, but irrelevant to my point. All these value-producing tasks require effort, and effort is not free. There is only a finite amount of effort available in the world, and effort spent on endeavours which produce little value are consuming effort that could be spent on high-value efforts.

You ask the question “does open source need to take on this process?” No, of course it does not. Have any process you want. You’ll either (a) learn to live with low-value software, or (b) come up with some system whereby someone’s effort is turned into value. What that system is, again, is a good question, but entirely orthogonal to my point.

You then make a straw man argument, implying that Microsoft developers are mired in process. I am not mired in process. I design and implement code all day. Some process-loving wonk owns the process, and if they are unable to make that process invisible to me, I complain to them until it disappears. Microsoft spends huge amounts of money ensuring that developers like me are able to be productive doing what we do best. It would be stupid to make talented people do what they are bad at.

And finally, delighting customers does NOT mean trying to please everyone who comes along trying to get me to do work for them. It means doing careful research into how customers actually use the product, how their productivity could benefit from changes to the product, and then carefully making only those changes that do the most good.

It may well be the case that Microsoft is bad at saying yes to features that delight customers. We are not perfect; imperfection is the price you pay for working with imperfect people. And, if that happens to be true, it may well be that the reason for our failure to delight is our imperfect process.

But it is surely a non sequitur to attribute the potential failure of our process to produce value to the simple fact that producing value requires effort by a great many talented people all working in concert.

That’s all I was saying: that producing value takes effort, and writing the code is a tiny amount of the effort. You either live with low value, or you find some way to obtain the effort.

I am committed to providing high value to my customers, value which massively exceeds the dollar cost that they pay for my software. My part of that is in the design and implementation; but as an organization, we know that the design and implementation are only a small part of the total value prop. My collegues are committed to providing that total value proposition to my customers, and I would not have it any other way. I like working in an organization where I know that these balls will not be dropped.

So far, this machine has had zero maintenance issues.

I’m hardly a “true MS user”–I was a solid Mac user for 2 years recently. I’ve played with Linux many times over the last 10 years. I program on Windows at work, but I’ve done programming on lots of platforms. Maintenance is not just anti-virus. It also means finding your files, dealing with crashes, looking for help files, and so much else that’s part of the daily routine. Unless the Ubuntu box has one button that does something really, really simple and is disconnected from the outside world, your claim of “zero maintenance” is simply not credible.

That was a great post!!! I’m showing it to my PHB.

He will be happy that I am able to make code changes to our website in a mere couple of hours, rather than weeks(?).

He often complains to me that simple changes take so much time.

So can we assume that Jeff’s start-up is primarily using open source?

And so it begins…

I second the point that successful Open Source projects are “agile” development, and have been since before the term existed. Big organizations often use outdated tools and practices, and compensate by throwing more bodies at the problem.

There is also a viscous circle effect with proprietary software - the longer it takes to roll out new versions to customers (because your update technology sucks, or your licensing forces repurchases, or whatever), the more checks and procedures get added, and the more effort has to be diverted into maintenance of outdated versions, and the whole process become even more sluggish. Apple seem to be the only big proprietary software vendor that can upgrade a significant proportion of the deployed copies of their product anywhere as quickly as an OSS project.

You forgot one item:

  • One Microsoftie with a complete lack of style to oversee the design, UI and overall implementation.

@BoredGuyAtWork

“Anyways on a personal level, I dislike the fact that .NET comes with big API changes and no documentation along with every update.”

You mean this?
http://msdn2.microsoft.com/en-us/library/bb332048.aspx

“I’d really appreciate MS to deprecate their code like Sun does for Java.”

Lots of Microsoft code is deprecated. Can you elaborate on this?

“Foolishly, I once thought that OS software authors actually cared whether anyone else was able to use their “product”. yet, when an issue is reported in an OS project, the answer so often is what you said “well, you can just get the source and fix it”.”

“I think the advantage of open source vs closed source isn’t the lack of process, it’s the addition of passion. People working on open source are scratching their own itch.”

The problem is, the developers have no reason to scratch an itch that isn’t bothering them. A great example: https://bugzilla.mozilla.org/show_bug.cgi?id=339293. I encountered this bug a year ago while working on a commercial web application. I pointed out to my boss that the problem wasn’t in MY code, but was, in fact, a known FireFox bug. His response? “Well, find a way to make it work - we don’t want our users to have to deal with this.” So a MOZILLA bug became MY problem.

I was able to build a workaround. But I notice that this particular bug remains listed as UNCONFIRMED by the Mozilla community. This is one of three rather serious problems that I found in FireFox that no developer in that particular OS community cared to address.

I think we would all agree that TOO MUCH process is bad for development. But too LITTLE process seems to result in a chaotic system where problems such as this are ignored because nobody takes an interest in resolving them.

It all coems down to money… at both ends…

  1. If I have to pay for it, I want it to work, have been tested and be documented
  2. Testing software, and translating it etc etc, costs money, so you have to chrage for the software.

If its free, I don’t expect much, because I want it now, not in ten years time. And I understand that.