Open Source Beer and more

It seems this summer the whole world is moving towards Open Source: from the Our Beer gang to Microsoft providing a tool to easily embed CC licenses in Word, Excel and PowerPoint documents, opening Codeplex and giving in to OpenDocument, to the whole Web 2.0 use our API’s movement. What’s going on here? More importantly, what opportunities might there be for micro-ISVs?

If you missed that first reference, a group of students at IT-University in Copenhagen have created Our Beer, the world’s first beer brand with a Creative Commons recipe. Geeks being a thirsty lot, this Open Source beer has generated a nice buzz above and beyond the alcohol. And a lot of intriguing ideas: will open source shake up the tangible world as it has the intangible world of software and micro-ISVs? Is Open Source the antidote to brain-dead call centers, crappy products that fall apart in a couple years and advertising on every flat surface your eyeballs happen to rest on? Maybe.

Go Overboard on Features

I realize I'm treading on dangerous waters with the title of this weeks post, but I'm tired of hearing about "Architecture Astronauts" and "Creeping Featurism" in response to questions I ask developers about specific features. First and foremost, program architecture is something that you should think about before you start coding! The reality is that, even if you don't formalize this step, the act of coding is based on your current mental framework of the problem at hand and your previous experience with software.

Vacations, Adaptation, and Software Project Success

If we managed software projects the way we manage vacation trips, the success rate would skyrocket.

When my wife and I planned our last vacation to Seattle, a city I had never visited, we had bunch of unknowns.

Where was the best area to stay? What did we want to see? Was it the best time of year to go? Can we get a good deal? How long should we stay? What are the best places to eat?

Just like on a new software project, there was no way to know any of these things for sure, even though we read a few guide books, and talked to a few friends who had been there a few years ago.

Building Clean URLs Into a Site

I wrote about building a site with clean URLs, but that's useless to you. No, you've got a creaking hulking monster of a site that coughs up URLs like "render.php?action=list_mailbox&id=42189", was built "to meet an accelerated schedule", and eats summer interns whole.

This article tells you how to put clean and human-usable URLs on top of the site without even editing your underlying scripts. All these examples mention PHP but it doesn't matter what you coded the site in, you just have to be running Apache and have a little familiarity with regular expressions.

So we have two goals. First, requests for the new URL are internally rewritten to call the existing scripts without users ever knowing they exist. Second, requests for the old URLs get a 301 redirect to the new URLs so that search engines and good bookmarks immediately switch to the new URLs.

Let's work through an example .htaccess file. We take apart the new URLs and map them internally to the old URLs:

Project Glidepath

Project Glidepath is a new initiative from Microsoft aimed at helping Micro ISVs develop software for .NET 3.0 and Windows Vista. All the information is delivered via RSS as workflow guidance directly into your Visual Studio project. As well as technical advice, there are Glidepath modules to help you with the practical business side of your Micro ISV. The content tries to help you choose software protection or eCommerce providers, and guide your blogging and podcasting strategies.

The Power of Portlets

I've been an advocate, user and sometimes promoter of the Plone CMS (an extensible content management system built on the Zope application server, using the Python scripting language) for quite some time. For me, Plone's most important feature is the ability to create Plone "products", which plug into the CMS. This allows the creation of a web portal that provides standard HTML CMS functions out-of-the-box, but can be extended to include almost any imaginable application. There's also a great versioning system built into Plone products that allows a CMS administrator to update a product right from the user interface. It also doesn't hurt that I chose Python as my main scripting language (sorry Ruby users/lovers/zealots, but Ruby was my dogs name ... I didn't want to get the two confused. Just kidding! I like Python's consistent and minimalistic syntax. Unlike PERL, there's generally only one right way to do it).

With many sites already running on Plone, I still haven't been able to justify using it for any major web application development projects. For these, we need industrial strength scalability, a more structured language and the support of a mature application server. Combined with the availability of a large pool of expert developers, Java and J2EE has always made the most sense. The problem with selecting Java for these projects was the lack of a framework that allowed the easy, modular development of the application. The adoption of JSR-168 Portlets by the Java community and its implementation by several major application server vendors has finally created an environment that promotes modular components on a Java driven web application.

Crowdsourcing for Micro-ISVs

One of the things a micro-ISV has to be on the lookout for are emerging trends they can get on top of and ride like the Devil. Crowdsourcing is one of those trends. There’s a great article, The Rise of Crowdsourcing, in the June Wired Magazine that any micro-ISV casting about for a product/service idea should read.

Regarding Schwag

These are exciting times for technology enthusiasts of all types. It appears like a lot of people are in the business of working on something really fun, trying to convince others of the merits of a particular project or is otherwise. Just very recently, Om Malik announced he wants to move on and start his own business. Also, Robert Scoble is leaving Microsoft.

This is of course already old news and there are many other examples. These days, it seems that startups are hot. Everyone is talking about web 2.0, and, the occasional controversy aside, tech firm, especially web 2.0 tech firms are sort of the in thing to do. I am not kidding, there appears to be a certain appeal to the very idea of these firms that I have not witnessed before.

I Spec, You Spec, We RSpec!

I love testing, I could hardly wait for this meeting of the Chicago Ruby Group. I was not disappointed. Unit tests are cool, but specs are awesome. Whats the difference you say? I think its a more natural way to write your tests, it makes you think of the behaviour of your object and not "oh gosh, I have to write 3 tests for each of my methods."

Finding a Thirsty Crowd for Your Software

Why do so many independent software developers develop a great product, with great features, and watch it quietly fade into oblivion due to total lack of interest?

The cliche is to say "Well, I just don't understand marketing."

I've got a simple formula for anyone who doesn't understand marketing:

1. Create an amazing offer for your product or service
2. Offer it to a thirsty crowd, desperate for it
3. Follow up with that crowd for repeat business

That's it. Now, let's tackle each of those points in a little more detail.