Is Eeyore Designing Your Software?

Open source development is clearly the winner.
The problem is that the project must be fairly popular to get a community behind it.

These two issues seem orthogonal to me. Yes, big companies have a lot of management to deal with lots of issues like localization and security, and yes, most open source software doesn’t. But the fact is, developers don’t want to do these things, and if there are people who want or need them, they’ll have to pay. The open-source-ness of the code is irrelevant - a company could easily exist around localizing and securing a product like MySQL or Asterisk and get paid for it, if they can convince enough customers that such an effort would be worthwhile.

Yes!! Best article I’ve ever read on here.

It’s important to emphasize (as you have) that these “peripheral” concerns in an open source project are typically handled by third parties - the core developers can get on with adding features or fixing bugs.

Brilliant article… You’ve made my dreary day more enjoyable :wink:

Cheers,

@Keff
I recently set up my computer-illiterate Chinese mother-in-law with Ubuntu, her first computer. (complete with explaining all the basics… you have to click in the text box you want to type in, the difference between left and right click and all that… gives you an appreciation for Apple’s one button mouse, particularly the new ones which actually have a “hidden” right button to satisfy everyone)

But anyway, it’s completely Chinese-translated, with the ability to switch between entering Chinese and English characters. Its native for her, has no maintenance, the computer stays out of her way. Almost as good as a Mac. (considering this was a hand-me down machine, so we weren’t going to buy new hardware)

The key is you don’t need to be a programmer and supplying translations. You just have to be part of a community that has at least one programmer, who is inspired to do it for himself and/or everyone else.

Which is why Ubuntu 8.04 will be available in 81 languages:
http://tinyurl.com/2fuqoe

Compared to MS’s 25?

Well the issue here is most large companies that use Windows, expect it to work as is. Most new versions of windows have bugs, but most companies don’t switch until atleast a year has gone by so they know its stable, after that they don’t want it to become unstable all of the sudden.
Same for oss Middlemen like RedHat or Unbuntu, they wait for the platform to stabilize before pushing it out to customers.
In these cases the Middlemen do all the boring work that the oss doesn’t do for its self.

Anyways on a personal level, I dislike the fact that .NET comes with big API changes and no documentation along with every update. Code is supposed to outlive binaries, but in .NET that is not the case.
I’d really appreciate MS to deprecate their code like Sun does for Java.

“who does all those things for non-commercial, open source software?”

Well of course the open source community does :slight_smile:

I think its very difficult to compare the development process of Microsoft with the process of an open source community. They differ pretty much in their demands, be it law standards or compatibility issues. This seems to be not least down to the fact that Microsoft has a much larger customer base (See http://www.joelonsoftware.com/items/2008/03/17.html, where Joel Spolsky explains many-to-many-markets). Also Microsoft is watched closely by government and competitors for things like unfair practices etc.

I disagreee with this article. I’m a programmer but now I work in management and it’s my job to get things done. Not hunt around source for undocumented bugs, not spend an afternoon looking for documentation that doesn’t exist and not upgrading to a new distribution every 0.000x release because nobody could be bothered to test. Programming is fun, bugfixing, documentation and localization aren’t so these will always be weak points in open source projects.

@Ethan

maintenance free

You’re joking right? There’s no such thing. When something goes wrong (and it will) who’s going to fix it? You, or her? One of the reasons Microsoft has that huge process in place is so the end user actually has a shot of working out a problem themselves.

Process, here is the thing that absolutely kills me about process. I am currently working in the largest company of my career, over 3500 employees worldwide. I have worked as the second employee of a startup.

We have process, big process. Ours is mostly home grown. No outside tools can enter, because obviously we are smarter than anyone else and can do a better CVS than CVS. (That was sarcasm, for anyone who was wondering).

In previous startups I worked on what had to ship. The productivity ration of startup vs. big company is practically infinite.

On my own, I started working with the Personal Software Process. (http://www.sei.cmu.edu/tsp/psp.html) No one else in the company that I know about (I have asked) uses it. The quality and bug free productivity gains have been enormous. I was doing so well they make me a project lead, so now I manage, not code. No more productive work for me. Sigh.

Here is my question, and point: QUALITY BEGINS AND ENDS WITH THE INDIVIDUAL DEVELOPER. Adding layer upon layer of process and checks on top will not improve bad code. You are putting lipstick on a pig. This may explain the claimed open source advantage so many other posters mention.

A better strategy is to invest in training, keep measurements on quality and productivity, then get out of the way!

But note that each step of adding the process ChangeLightbulb to your system: planning, specifying, coding, testing, documenting, etc., is done by a different group of people.

And all elements in the process are autonomous, independent, and incommensurate-- e.g., how many documenters does it take to ‘cover’ one coder? No one’s on top, no one’s in charge. There’s no ‘Steve’ to set standards and priorities.

It’s easy (and fashionable) to complain about MS software and claim how great Apple is. However…

  1. Apple is also a huge mulitnational corporation with billions in profits and is no kinder or nicer in it’s business practices than MS.

  2. It’s alot easier to make software for only a very few hardware platforms and with a very limited range of peripheral support.

  3. Apple make great looking hardware - just look at the Mac Air or IPhone. However, features/$ they are way overpriced! Which is why I am sticking with Vista and a HTC phone for now.

And as for Linux; I recently reinstalled an old laptop with linux (was an xp-machine) hoping for a performance boost. It was actually SLOWER!

“who does all those things for non-commercial, open source software?”

Well of course the open source community does :slight_smile:

Eventually. And by the time it’s done, does it have the same number of man-hours put into it as the commercial software? The difference being that the day a customer actually shells out money for a product, they expect that work to already have been done, not that someone will take enough interest in the bug/feature/documentation to get around to doing it someday.

In any event, the ASP.NET team has released and is releasing a number of technologies that have been created by very small teams and developed in much more agile ways than what’s described here: Web Application Projects, Web Deployment Projects, ASP.NET AJAX, ASP.NET Dynamic Data, IronPython and IronRuby, and (currently in progress) ASP.NET MVC. There’s a great opportunity here for people to step up to the plate and provide (e.g.) the vast quantity of API docs whose lack Frans Bouma is noting. (And localize it.)

Do proponents of OSS use only and exclusively OSS for everything on their computer? If not, what’s the basis for sometimes paying for software? Surely there are times when paying money is the more convenient way to go. If so, why is that?

Are large commercial software companies crippled by their own process?

Yes–and not just software companies, thanks to SOX. The current path of the US government is going to kill American IT, and with it, American enterprise.

@Rhywun Spoken as a true MS user! Of course MS makes it “easy” for the user to do their own maintenance… except there shouldn’t be any maintenance!

So far, this machine has had zero maintenance issues. Of course, she’s not pushing it too hard either. :wink: But that’s the point isn’t it? If you’re not mucking around, the machine shouldn’t break.

Once you no longer have to worry about spyware and viruses, don’t run as administrator so users can’t accidentally break things, and have a good package manager to handle updates for you (and avoid conflicts and configuration issues to boot), you’d be surprised how little there is to do on the machine itself.

If the world’s number #1 developer of Operating Systems, application suites, and developer tools is a donkey…

What does that make everyone else?

Almost all open source software worth its salt comes with tests.

There might be less formal process involved, but having multiple people writing moderately sized software without tests is near to impossible.

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.

There are optimum sizes for both products and companies.

Microsoft is way over that size for the project it produces. Open source has no set size. It’s on an “as needs” basis.

Large hierarchy or small cell-like groups. These are just organization strategies, appropriate for some situations, but not all.

I don’t see any one-size-fits-all answer here. Just the usual approximations found in any ecological context, either social or natural.

ThatGuyInTheBack

Wait Microsoft has user guides?

A quick check of the couple of products, Vista, Office, VS2008 and a few others had nothing but at the most a tiny booklet on installing. I have more informative read me files from the most recent USB flash drive I purchased.

As for online, excluding marketing material, most of that is text and most of the really good stuff is in the blogs and other places that are not translated. If you want to check find a text area translate it to another language to get the general text, switch to the google site for that language and enter some of the key words and see what you get.

Many OSS projects in effect conscript their users into the development process – the users effectively are the testing department, the usability consultants, the project manager setting priorities, etc.

There’s still a process, it’s just very ad-hoc and undependable in many cases. Although, there’s always a risk that the process can be more of a hindrance than a help, if your livelihood depends on customers purchasing your product, you generally want to have a little more control of your development process.

I’ve been fascinated recently by the concept of a “shadow IT organization.” This is an informal group of power users inside of your organization, functioning in IT-related roles, but not inside the “real IT” organization.

The correlation here is that in the scenario above, the real IT organization failed to meet all the needs of its customers, and so its customers formed shadow IT organizations. You’ve seen Access databases and Excel spreadsheets and even little VBScript scripts and (sometimes) PHP-based websites running off of desktops.

What I’ve often found with “shadow IT” is that they often do a terrible job of building solutions. I’ve seen unsecured sensitive (or valuable) data, “disaster-prone” solutions with no backups, and worse: ACCESS DATABASE “APPLICATIONS”! Inefficient (and unnecessary) manual processes. Auditing nightmares. Constant maintenance nightmares. A high “bus factor”–i.e. if the shadow IT employee quits, all these things will cease to function!

What’s been fascinating me most is this: given the AWFUL QUALITY of “shadow IT” solutions, why do the departments bother at all? Why not go back to IT?

And Jeff, you’ve (reprinted) the answer: we’re drowning in process.

Even if the extra processes add quality and result in a better product, our users continue to build awful solutions themselves. So how can we make it easy and cheap enough that our clients actually start working with IT again?