The power of "no"
jacobian.org
jacobian.org
It seems to me that a lot of the developers have never seen real users use commercial software on a day to day basis and I don't even mean real power-users. The customer service manager at my work breezes through Excel, Outlook, and Dynamics Nav while on the phone with a customer to give them estimates on product lead-times and changes the sales orders on the fly. She uses tons of shortcuts and keyboard shortcuts in all the apps but in no way would be considered a geek or techie. She's a user who has been doing this for a long time and while she doesn't care about DB2, she is glad to have a toolbar that can refresh external data in an Excel sheet with a single click. It makes her life easy and enables her to take orders worth tens of thousands of dolalrs daily. Commercial software exist not to win design or elegance awards but to increase productivity. Also they tend to support integration with Active Directory/LDAP, Terminal Server, Office, Outlook, and tons of Microsoft apps that makes my life as an IT admin really easy and thus productive.
Honestly, I think us developers/designers have it wrong when it comes to UI. We think there is only one kind of right interface and it must be a clean-cut page with a big green call-to-action button that says "Sign Up". Anything other than this is a mess and confuses users. Maybe this is true for webpages visited by grandmas but I think in typical business environment, it's quite the contrary. Users are accustomed to words and icons and expect them to work in a similar way in every application. So if there is a Print icon in Firefox or Excel, it must do only one thing and that is print the current document. However, while we developers think that the 100 other icons in the same window confuse the user, I've noticed that users don't even notice the icons they don't immediately recognize. What does that mean? It means Office and such feature-rich apps aren't mess but rather have a lot more functional icons that users recognize and can immediately access. The extra icons i.e. the feature-bloat is invisible to the user.
Also his point about not having to be bullied by management makes no difference to anyone other than him. The users and junior developers are still at the whim and mercy of someone who says "no" based on their own personal opinion, no matter how technically correct it might be. I'm not saying commercial software is superior to OSS or vice versa. I'm just saying I find it hard to believe that OSS is getting better while closed-source software is getting worse based on these arguments.
1) Do one thing, do it REALLY REALLY well.
being open source, other projects can take parts of your project and build on top of it to create a different projects (say you create a widget, and widgets have utility functions which are useful for creating sprockets, so the sprocket project depends on the widget project, but still remains it's own thing.)
Often the mentioned above fact can go overlooked "I can do it better" vs "what can I take away from that project to make a better one for my needs"
2) We still need the overarching giant featureful project. So if you create a bunch of tools which when working together can make a web framework, why not put some effort to make a good web framework that borrows from multiple projects?
As a response to the article: Create the Django Complete project. In it you integrate Django, migration, DB2 support (say a new project that gets started), The Django bar, but in the end you don't actually get the feature creep going into Django EVER to incorporate everything period. Instead you have multiple specialized independent projects, all meeting together in one project to make it better for the community.
I, for one, am not pining for the days of Windows 95, Office 95 and IE 3.0.
Open source, on the other hand, gets more incompatible with time. To keep up with it, you need to constantly rewrite / re-architect your apps, or stick with an ancient but maintained setup, if you can find one, and probably pay for it too.
(I'm only covering the end-user experience, not the question of whether you have a problem with updating your own apps written against free software.)
However there is similar variation within closed source. For example the AS 400 remained binary compatible for 20 years across multiple CPUs and even a migration from 48-bit CPUs to 64-bit CPUs. (And your applications still run today on IBM hardware, but they've changed the name.) However if you developed an complex application in VB 5 a decade ago, have fun porting it to any language supported by Microsoft today!
So backwards compatibility is orthogonal to the question of open vs closed source software.
Furthermore the rationale for a lot of that VB 5 code was integration with MS Office software. But that software isn't compatible with current offerings. Therefore if you were integrating that VB into your office workflow, the fact that it still could run doesn't stop you from being under pressure to port.
Try running an app compiled for a 1.x Linux kernel on 2.x... Or even a different libc!
On the Linux example, didn't I just say that attention to backwards compatibility is orthogonal to the source being open? I didn't use Linux as my poster child for good reason! And even within Linux, you'll find wide variation between distributions. (Debian being an example that is pretty good, Red Hat being mediocre at best, and Gentoo being infamous for regularly breaking things.)
I think the analogy is most relevant in the case of well-matured and widespread software. Microsoft has an incentive to continually release new versions of Office (namely, there will always be many people who will buy new versions of Office), and because people don't like to pay for bugfixes, there has to be new features to print on the box. Furthermore, these features must seem relevant to your average user.
"Mature" software almost by definition includes the standard featureset its users demand. As we all know, there's always something useful you can do to your project, but once your project hits a certain point, those useful, in-demand features apply to a narrower and narrower audience.
The lack of general applicability on the reasonable "New Features" list for the next release probably upsets marketers and others determined to milk more revenue from a successful franchise, so they go back and demand re-engineering of something that already works or the addition of bloat that nobody really wants or uses but that sounds good on the back of the box.
Open-source software has none of these woes. There are no constraints imposed by the uninformed or the ignorant and the BFDL, whom in all cases I'm aware is a technical person, has the last word on a feature's inclusion.
The difference is that in the commercial world, non-technical considerations and individuals generally mandate changes and unless something is just not possible, technical is rarely given a veto. In the open-source world, technical considerations and individuals generally mandate changes, and unless the project just can't continue without it, non-technical rarely gets a veto. One of these methods obviously leads to better software. Can you pick which one?
When you say things as wrong as those said in the blog post, it makes people skeptical of other arguments in support of open source.
There are times UI suffers from this, this is why we need some non-developers involved in these projects, we need to reach out to them.
However this is not just about "open source r0x0rs, close source s0x0rs" argument.
Closed-source software gets worse with each release
(Microsoft, Adobe, …). Open-source software gets better
(OOo, Ubuntu, …). Discuss.So, to sum it up, developers are claiming developing software is better when developers are in charge ? I'm shocked.
His point was that the quality of open-source software tends to go up, while major closed-source projects' declines. Profit margin and quality don't always correlate, especially in software.
The ribbon was yet another dramatic change that was long overdue. Everybody loves it once they 'get it'.
Anyway, the parent post claims windows has got better and you say "no, it was bad now it's been improved" - that's not debatable that's you agreeing.
Django is about you making a web framework that makes your/other's life easier. Also doing good stuff, being in control, getting recognition, and what better resume than "I am the lead developer on the Django project"?
In the corporate world its more about making money, not getting fired, people thinking up better ways to make money with what you already have, using your talent to make money, in fact the only reason to create anything in the corporate world is either to better make money or to save money on something that currently costs more money than building + using would cost.
Granted there are exceptions, like 37signals, but they got maaaaaaaaajor recognition for ruby on rails, and that is in itself making them money, or getting them tallent (which helps them make money).