-
Get a monthly update on best practices for delivering successful software.
Academic research is incredibly inefficient when it comes to producing products and services. Grad students, post-docs and professors work on "problems" that some collection of graybeards has deemed "interesting." Their "solutions" -- sometimes successful, sometimes not -- are published as research and then, occasionally, if the stars align, is turned into a product or service through the application of venture capital via a startup.
The only thing less efficient in producing innovative products and service is the corporate R&D department. In most places you have a phase-gate process (waterfall under a different name) of conceptualization, feasibility testing, definition/specification, development and launch. They are typically bloated, bureaucratic monstrosities with huge documentation requirements and endless committee meetings that do more to stifle innovation than promote it.
There is a way, however, of applying Agile principles to the concept phase, and it relies on two of the basic tennets of Agile: failing fast and self organizing teams.
Topics: agile, Innovation
In my last post about innovation I referred to Clayton Christensen and his concepts of sustaining versus disruptive innovation. It reminded me a little bit of the concept of punctuated equilibrium in evolution.
The idea is simple: suppose you have a bunch of monkeys working in an office. You have the executive monkeys who eat healthy meals and exercise at lunch time. Then you have the office drone monkeys who go outside into the rain and cold for smoke breaks and eat gyros and fries for breakfast. The executive monkeys have nice glossy coats, get the best mates and have nice condos in desirable parts of town. The drone monkeys...not so much.
Topics: Evolution, Innovation
In some past posts I've looked at some of the cultural, organizational and process issues on why large companies find it hard to innovate with new, quality software. Today I want to take that process a step further and look at why established players have such a hard time innovating in general.
First two anecdotes, where I will combine the topics of Susan Boyle, chess and the Kindle. First, chess and the Kindle.
So I now am the proud owner of two Kindles, the small format Kindle 2 and the large format DX. It's great for reading novels, less so for reading reference books where you jump around a lot (even setting and using bookmarks in a small 30 page PDF is a pain). There are two areas where the Kindle falls short: there are very few chess books for it and there are even fever German language books. Hopefully that will change with the advent of the international Kindles and soon amazon.de will start selling ebooks.
Topics: Amazon, Barnes & Noble, Borders, chess, Innovation, Susan Boyle
Well-well look. I already told you: I deal with the god damn customers so the engineers don't have to. I have people skills; I am good at dealing with people. Can't you understand that? What the hell is wrong with you people?
-- Tom Smykowski
I get a lot of grief when I talk about agile practices and how it ends some inefficiencies, i.e. less personal activity during work hours by developers. One commenter on my last article on the benefits of pair programming put it thusly:
It is amazing how insulting people can get when waxing on about the benefits of Pair programming. It is one thing to make the business case to an organization that Pair programming can be beneficial to an organization, but it becomes downright mean when developers get classified as being lazy because they are not paired up. As someone who has spent many a night working (alone) for as long as it takes to complete a project on time without anyone noticing, I seriously disagree with the notion that by not pair programming, developers are lazy.
He's right, but not for the reason he states. Pair programming is still better than solo programming in almost all cases. Treating developers like children, however, is a sin that is pervasive in many businesses. In my advocacy for pair programming, I was subconsciously pitching my message to product and development managers in large organizations.
Continue reading »
Songbird, the open-source, Mozilla-based media player, received its 0.3 "developer pre-release" on Oct. 30. The UI hasn't changed much since the 0.2.5 "developer preview," but things continue to evolve under the hood. Better yet, the documentation and demos keep getting better. Check out the developer center for information about using XUL to build add-ons or using the JavaScript API to integrate your webapp with Songbird's media player.
If you've yet to experience Songbird, a little background is in order. The project is run by Pioneers of the Inevitable, a Bay Area company founded by veterans of Winamp and the Yahoo! Music Engine. Building on Mozilla's XULRunner platform and the VLC media player, Songbird aims to unite a web browser, a media jukebox and an online media player into a skinnable, extensible, open-source application. At this stage, the app is a long way from challenging the likes of Windows Media Player, let alone iTunes. But as it grows, it promises to cultivate the same kind of fervent user and developer communities as Firefox, Thunderbird and other Mozilla projects.
I first became aware of Songbird via a Boing Boing post. I'm surprised it hasn't generated more noise in the various Ajax feeds and news sources. With all the excitement about specialized browsers and desktop webapps, from Mozilla Prism to Google Gears and Adobe AIR, it seems like Songbird would be earning a lot of buzz. Maybe I'm just not hanging out at the right water coolers.
As an Ajax developer and huge music nerd, I'm looking forward to playing with the JavaScript API. It promises seamless integration between webapps running in the Songbird browser and the media player itself. Imagine iTunes, but instead of a built-in browser that only supports the iTunes store, you've got a Firefox clone that plays well with music vendors, P2P networks, MP3 blogs and any other internet music resource. Visit a music mag, for instance, and see all of its featured downloads automatically show up as a playlist in the media player (as in the Hype Machine example above). Visit an online music store and experience an iTunes-esque purchase experience. Indie-music brands such as eMusic and the aforementioned Hype Machine have already gotten on board. To see Songbird's API in action, compare these sites in Firefox and Songbird.
Songbird's add-on ecosystem is cool, too, especially for long-time Firefox developers. They can adapt existing add-ons with just a few tweaks. (GreaseMonkey, for instance, has already been ported.) But Songbird's API allows for more radical innovation than Firefox's add-ons. Instead of simply adding context menus and pop-up dialogues, you can rewire the entire UI of the media player. One example on the developer site shows how to replace the single play/pause button with individual play, pause and stop buttons. That's a trivial example, but a telling one.
I'm already salivating about the cool stuff I'll be able to do with add-ons:
Imagine Doug's AppleScripts for iTunes ported to XUL. Like a lot of people, I'm obsessive about my meta tags, and I can't wait to use JavaScript regexes to bend them to my will en masse. I'm also hoping that Songbird will record all of its meta data in the music files themselves instead of socking some of it away in the music library. With iTunes, if you decide to rebuild your library in another player - or even in a different iTunes installation - you lose things like star ratings and play counts. It's a real bummer.
The flat XML database in iTunes scales horribly. Get above about 100 gigs of music and performance slows to a crawl. This problem has only gotten worse with the bloat of Cover Flow, Quicktime integration and all the other features I don't need. I have 450 gigs, most of it ripped from my huge CD collection, and I've had to separate it into four separate libraries (using Libra) just to get decent performance. That sort of defeats the whole "any song at any time" promise of the MP3 era. Enter SQL Lite, which is how Songbird stores its own media library. I've got high hopes that a relational-database back end coupled with open-source how-to will make Songbird the media player of choice for folks with enormous libraries.
iTunes and its Smart Playlists are all about endless, automated mixes. But I'm an old-school mix-tape guy. At the end of each year, all of my friends usually get a four-CD retrospective of the year's best tracks as compiled by me. But with iTunes, it's excruciating to build a "source" list of possible tracks for these multi-disc epics, then slot the tracks into individual discs and experiment with sequence. You can only view one playlist at a time, so every time you decide to move a track from one playlist to another, it's a multi-step operation. Imagine an interface where I could see my "source" list and all of my target lists at once, and where drag-and-drop defaulted to a "move" operation rather than a "copy" operation. With XUL and JavaScript, I'll be able to build any specialized interface I want and swap it in for Songbird's default UI.
Sure, most of my needs are pretty specialized, but I hardly think they're unique. And that's the point of an extensible, open-source player. You're free to build the features YOU want to see and share them with others like you. That's a lot more productive than griping over at the iLounge forums about iTunes's shortcomings.
I know Songbird isn't the only open-source, component-based music player out there, but it is the only one that's drawing on the power of the Mozilla Foundation. Firefox has shown how disruptive the Mozilla community can be in the browser market, which, like the music-player market, is dominated by a single product. Songbird may not topple iTunes any sooner than Firefox topples IE, but it should provide a powerful alternative and perhaps put some competitive pressure on the folks in Cupertino. It was extremely shrewd of Pioneers of the Inevitable to hitch their wagon to Mozilla's. I'm definitely going along for the ride.
Topics: Firefox, Firefox Extensions, Innovation, Javascript, Music, Open Source, Songbird
Right now AJAX is in its Wild West phase. Every day brings a new framework, every week a new technique. This intellectual ferment is great for innovation, but it makes commercial product managers nervous. It is risky, adopting new and changing technologies, and the penalties for adopting the wrong one can be severe.
At some point, however, the innovation slows down and standards emerge. It becomes safe for the Fortune 500 to venture into the water -- you just don't want to have standards take over too soon and stifle innovation. But with the invention/adoption cycle getting so much tighter, some product managers will adopt AJAX in the face of uncertainty. Either they go the perceived safe route and go with MS Atlas, or they look to an equivalent security blanket on the non-Microsoft side.
Enter the Open AJAX Initiative. From the release (emphasis added):
The initial supporting members of the new initiative -- dubbed Open
Ajax -- include BEA, Borland, the Dojo Foundation, Eclipse Foundation,
Google, IBM, Laszlo Systems, Mozilla Corporation, Novell, Openwave
Systems, Oracle, Red Hat, Yahoo, Zend and Zimbra. They intend to
promote Ajax's promise of universal compatibility with any computer
device, application, desktop or operating system, and easy
incorporation into new and existing software programs.
Whenever an industry group gets together, it makes me nervous. As often as these bodies set standards, they also subdue competition and, consequently, innovation. Certainly standards for AJAX need to happen, but not too soon, before the technology has had an opportunity to ripen. We can't have 150 or 200 frameworks for the long term, but for the short term I think they are healthy. Seeing that this group seems dominated by the client-side component framework crowd (Laszlo, Google, etc.), I'm a little nervous that the server-side component guys like ZK and Echo2 will get short shrift.
It's too early to say which way this initiative will go, whether it will be just an empty marketing effort, a useful open standards effort, or an evil, anti-competitive mud wrestling spectacle. Do keep an eye out, though. In the words of Don Deutsch of Oracle, "The creation of software standards can seem academic. In reality, it’s big business."
Topics: Ajax Frameworks, Frameworks, Innovation, Open Source, Standards