CodeGarden 09 Open Space Minutes - Space 1: How to sell Umbraco
Monday, July 27, 2009 10:53:28 PM (GMT Daylight Time, UTC+01:00)
It's taken some time to get here and there's still more to add as I think this is a pretty big topic but I thought I'd get started. I wanted to keep the session more focused on the selling points of Umbraco and how people pitch Umbraco to the clients than selling techniques which on the whole we managed to do.
The first thing I stressed was that I wasn't going to teach you how to sell or selling techniques as I've never found that hard selling works -though I'm not saying it doesn't, I just prefer to educate the client into the most suitable solution (even if that isn't us).
There were a number of questions that were raised and I'll answer what I can here, if you were at the session and I've missed something, please let me know and I'll get it added:
- What are the key selling points of Umbraco
- How do you pitch Umbraco
- Do you tell clients it's open source (or use that as a sales point)?
- How do you price Umbraco
- Once you've won, what do you ask your client
- How do you support Umbraco
- How do you get around the question of "What happens if you get hit by a bus?"
What are the key selling points of Umbraco
A couple of the attendees came up with better 30second sales pitches so I'm sure they'll post those up shortly but here's a few I remember:
- It's easy to use -you don't need any previous computer experience
- You can edit any page's content yourself at any time
- It's highly flexible and lightweight
- It's search engine friendly
- It's open source (this really can be a selling point at the right time)
Do you tell clients it's open source (or use that as a sales point)?
We do and we don't. Again it really comes down to who you're pitching Umbraco to. Where the client has had issues with developers not releasing source etc then it's clearly a selling point.
Generally we do tend to explain to clients that we will base their website on an open source project that we then build on and customise further to suit their needs and that by using best practice methodologies, any developer can in theory pick up the system and continue to develop it (even if they have no experience of Umbraco).
How do you price Umbraco
This question was asked in a couple of different ways throughout the session and it's a topic in itself (see the article I wrote a while ago about pricing your work).
If you look at Umbraco in the right way you'll see that it's actually rather easy to price as there are a few components that you can sell either individually or together:
- Installation and configuration
- Customisation
- Hosting
- Support
All you need to do is work out a minimum cost for each component and then that will give you a core system cost.
Once you have your core Umbraco costs (don't forget to factor in your license costs) you can then alter the costs accordingly for your client -and this has to be on a case-by-case basis.
How do you pitch Umbraco
This is easy, there are so many selling points to Umbraco that regardless of what the client is looking for, as long as it's CMS based, Umbraco will have some benefit you can overview to the client.
When pitching Umbraco, we have found educating the user as to the benefits and what the client should be looking for in other systems. If you do this, then the majority of the time, the rest of the competition falls by the wayside.
If the client is a large corporate it's always worth mentioning that it offers much of the functionality that SharePoint does but with little of the cost (or setup pain!).
Once you've won the contract, what do you ask your client
The first thing to do is to get all the information you need to complete your contract (or at least tell your client what you'll need and when). You should know what you'll need already but we tend to ask for:
- Design inspiration (websites the client does and doesn't like -and why)
- Logos and other source imagery
- Text for the website (you'd be best to load the initial content during training but get the client to think about it while you're developing or you'll never get there!)
Next, you'll need to make sure your paperwork is in order. Once you have agreed the general premise of your contract, it's important that you confirm all deliverables (what you'll be doing for the client) in a work order with the client. This avoids an ambiguity on what you'll be delivering and when. This doesn't need to be pages of text (though sometimes it needs to be) but avoids disagreements later.
You should always request signed work order and deposit (we request a minimum of 20% regardless of project spend) at a minimum before starting any work.
Once you have the signed work order (you sign one for the client to keep and keep one yourself), you can start thinking about the project. If it'll take longer than a week to deliver, I recommend you provide the client with rough timescales, this will have the added benefit of helping you focus your mind.
How do you support Umbraco
This is something that Paul Sterling addressed through another session and if he doesn't write up his notes I'll make a few notes in another post.
How do you get around the question of "What happens if you get hit by a bus?"
Although this was asked a couple of times throughout the session, I avoided answering it a little due to a conflict of interest. For the past few months we've been working hard on a new system called Crisis Cover which has been designed to help you with this exact question.
Crisis Cover monitors you to ensure that you're still around and if you don't respond to a number of alerts, it will contact your clients informing there's something wrong.
I'll post more information about Crisis Cover, but if you're interested in getting involved with the beta, leave me your email and I'll get one sent out.
In Closing
There is a lot of information about selling and business in general in my previous post "Business start-up advice" which if you're starting out, I really recommend you reading as it should give you a really good start (and includes example Service Level Agreements, Contracts and other useful documents).
CodeGarden 09 Open Space Minutes -Space 2: Exception Handling in Umbraco
Thursday, July 09, 2009 1:23:38 AM (GMT Daylight Time, UTC+01:00)
Those of you lucky enough to go to CodeGarden '09 you'll know the format of the Open Space already but for those of you who didn't, Open Space is the time that the attendees are invited to talk about something they're interested in so I proposed two:
- Space 1: Selling Umbraco
- Space 2: Exception handing and error reporting in Umbraco (and other .net websites/applications)
I'll write up the Selling Umbraco talk shortly but I wanted to put a few resources together for it first so decided to write this one up first.
First of all we had a brief chat about how everyone handles errors in their applications and the various error handling options available. We discussed three options:
- Error Handler v2.0
- ELMAH
- Exceptioneer
I've only had a brief look at ELMAH and found at the time it was a little too much in the way of RSS feeds etc and I just want an email alert, that said, Lee Kelleher has written a good article about integrating ELMAH with Umbraco here and I've written another article about integrating Error Handler v2.0 into Umbraco here so I'll overview how to integrate Exceptioneer into Umbraco here instead.
Wiring up Exceptioneer with your site couldn't be easier, the best bit is that they do all the hard work for you with their "Integrate" section of the site but to give you a quick snapshot of how easy it is, first of all, download the dll and pop it into your bin folder. Then edit your web.config:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="Exceptioneer" type="Exceptioneer.WebClient.ClientModuleConfiguration, Exceptioneer.WebClient" requirePermission="true" />
</configSections>
<!-- This is where you get to specify your API Key and Application Name -->
<Exceptioneer ApiKey="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" ApplicationName="YOUR APPLICATION NAME" />
<!-- If you're using IIS 6.0 or Visual Studio's built in web server you'll need to add this bit -->
<system.web>
<httpModules>
<add name="Exceptioneer" type="Exceptioneer.WebClient.ClientModule, Exceptioneer.WebClient" />
</httpModules>
<!-- If you want to use the JavaScript handling then add the Http Handler as so -->
<httpHandlers>
<add path="ExceptioneerJavaScript.axd" verb="GET,POST" type="Exceptioneer.WebClient.JavaScriptHandler, Exceptioneer.WebClient" />
</httpHandlers>
</system.web>
<!-- If you're using IIS 7.0 you'll need to add this bit too -->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="Exceptioneer" preCondition="managedHandler" type="Exceptioneer.WebClient.ClientModule, Exceptioneer.WebClient" />
</modules>
<handlers>
<add name="ExceptioneerJavaScript" path="ExceptioneerJavaScript.axd" verb="GET,POST" type="Exceptioneer.WebClient.JavaScriptHandler, Exceptioneer.WebClient" />
</handlers>
</system.webServer>
</configuration>
Now, one of the coolest things about Exceptioneer is that you can now also debug JavaScript errors! To debug the javascript errors, just include this script in your templates:
<script src="/ExceptioneerJavaScript.axd?Reporter=true" type="text/javascript"></script>
That's it, you're done. Easy eh? If you want to know more about what it can do, Phil's put together this "lovely" video overview. Exceptioneer have done a great comparison of the main features of comparison Exceptioneer and ELMAH here, the downside though is Exceptioneer is still in beta.
Remember, regardless of how good you think your code is, you should always integrate some form of error handling in your website even if it is just an email to alert you to the fact.