Leveraging synergy in this championship year
Michael Davies
Local
News
Software
Utility
Powered by PyBlosxom
Copyright © 2003, 2004, 2005, 2006, 2007, 2008 Michael Davies, |
Worlds apart.Joel writes on the Five Worlds of software development - how you need a different mindset as a developer depending on which category you are developing for. The categories he defines are: Shrinkwrap, Internal, Embedded, Games, and Throwaway. Shrinkwrap is easy. It's what I do for a living and its what the open-source world produces everyday. There's two main variants, the one that Joel recognises when he says, "we have higher bars for ease of use and lower bars for bugs", which is the Windows-world. The other side is the open-source way which is the less emphasis on ease of use and more emphasis on being bug free. These two extremes don't seem to get bridged very often in our industry. Most open-source projects aren't very focused on the user experience - and ad hoc evidence from my Windows-focused work colleagues tells me that this is a common complaint with open-source software. What do we do about that? As Joel also writes, "things that are not considered "fun" often don't get done in an all-volunteer team", which is why the contributions that Sun and other corporations make to GNOME are very important - they do the boring stuff that the enterprise expect. Perhaps this is the model for successful open-source software development in the large - let the enthusiastic volunteer coders trail blaze, and let the paid developers do the polishing. Testing, documentation, cross-platformness, i18n are all things that paid developers do better that volunteers. Internal software is all about stuff you develop or contribute to, so that you can concentrate on producing the real software that you want to sell. This is the Larry Augustin story about building a Linux box so he could complete his Masters thesis (but instead founded VA Research). This is a great space for open-source projects by the way - twiki, samba, bugzilla, apache, php etc etc etc which are all in common use where I work. The line here blurs, is this really just internal software? What's definately internal software are the cgi-based meeting room bookers, meeting minutes registry, software metrics database systems etc. They all share the following attributes: One purpose, custom built, often shoddy user interface. Internal software is quite often write-only software. The projects I mentioned don't fall into that category but are very much behind the scenes players. Do they form another category of software - shared internal - which is higher-quality, single-purpose, internal software that is so good that it gets shared? Internal software is a good candidate for open-sourcing. It's non-core business for your employer, and gaining external developers and testers can improve the quality of the code, not to mention finding uses for it that you hadn't thought of. Afterall, that's how things like patch started out. Embedded. No comments on this right now :-) Games. Interesting mindset that I hadn't really thought about. Games are just like movies from the financing perspective. Either they fly or they flop. There is no inbetween. Create too many flops in a row and you're dead. Create a couple of high flyers and that gives you the ability to create flops for a while. Interesting. Joel then comments that, "id software is not about to hire Ed Yourdon to talk about structured analysis". This just shows that each of these catagories of software need to be approached differently. Throwaway. What struck me immediately on reading this was Tridge's junkcode. Of course junkcode isn't totally throwaway, but stuff you write once that might be useful again. All code might find another use, hence why I listened to Tridge (even though it's very meager right now). Joel's main point in his article was that: Whenever you read one of those books about programming methodologies written by a full time software development guru/consultant, you can rest assured that they are talking about internal, corporate software development. Not shrinkwrapped software, not embedded software, and certainly not games. A very good observation.
Poor office environmentsToday has been phone conference day. Up early, arrived at work just after 0630 to talk to a customer in the USA. Then a short break, and more phone conferences with other developers in several different timezones. My ear hurts, my shoulders ache, my co-workers dislike me (today) because I've been talking louder than usual to be heard over the conference bridge. There must be a better way. I've mentioned this before, but Fog Creek appear to have a very nice work environment. If you look at the design of their offices you can see how it's a better way to work. It just could be Programming Paradise. Joel on Software also has an online discussion area. Here is where office design is discussed, including some other nice references. These articles remind me that I need to read chapters 7 through 13 of Peopleware again - last time I did that I changed jobs :-P It's nice to dream... P.S. I'd even appreciate the ability to plug my Linux laptop into the network here at work. *grumble*
GNOME 2.8 almost herejdub announces the GNOME 2.8 Release Party. So if you are in Sydney, this is what you should be doing on Sept 15.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
This web page is optimised
for standards. |
||||||||||||||||||||||||||||||||||||||||||||||||||