Make it Simple, Stable and Sexy.
These are the tenets that I apply to any piece of code, product or deliverable that I am working on. The above do not always come in that order and sometimes you might focus on one more then the other, but in every project, you have to think about all three of them.
Sexy
We live in an age of Ipads and Xboxes where sleek, sophisticated UIs are becoming (and in most cases already are) the norm. You can’t judge a book by its cover, but sometimes giving it a little push will get your user to open up the first page and skim the summary, then they’ll read the author bio, then they’ll buy it. Think about the last product demo you were on, what did they start with? The back-end configuration? The data synchronization? The log files? No you started with the sexiness of your application, the client, the monitoring controls, whatever piece of software that has the UI gravy that makes people go – Wow – that's what I want. Years ago when I was attending DBA conferences I was always impressed by the guys at Quest Software who would have these massive plasma screens showcasing data being transferred between SQL Servers and log files being shipped around your enterprise. A pretty boring operation in of itself, but their UI drew me in, it looked gorgeous and showed everything we wanted to see in one great dashboard. We came back that year wanting to mount plasmas in our environment so everyone could see what the health of our databases were, how easy it was going to be to monitor them.
Sexy is the WOW factor – okay, you’ve interested me – now show me what it can do.
Stable
You don’t need to look far to know that stability and SLAs are the key driving forces behind initiatives like Azure, EC2 and Google’s App Centre. The battle for on-premise and hosted is on and some of the biggest questions (ignoring security for this discussion) revolve around stability. What happens when it goes down? How do I recover? How does it heal itself? These are all the questions being asked now for these initiatives and they are the same that are going to be asked about your software. Once you get past the sexiness, this is the meat of what people want to know. You do not want to be that gorgeous Ipad application that everyone is raving about only to have it bail on startup because some variable did not get initialized properly. When your applications start to support more users, stability takes the hot seat 9/10 times and the last thing someone wants to hear is "It bailed because we forgot to handle a scenario".
So now you’ve hardened your app, its Rock Solid and it’s still got that cuteness factor to it that people are loving. Now how do I get it working?
Simple
When you’re watching a Sales guy do a product demo, you can usually pinpoint where the development teams got crunched for time and where they had to push items out. It’s the part of the demo that is going over the feature you really wanted to see but they just skimmed over it. And when you bring them back to discuss it, it takes about 10 minutes for them to figure out how. This is bad. Simplicity – whether it be in roll-out, configuration, maintenance or monitoring, is the guiding tenet of your application. If I am going to make it sexy, I make sure it is intuitive to use. I’ve been through a ton of UI reviews with people who thought it was really easy to use an application, then when we showed it to them, they couldn’t figure it out (but it was sexy) or worse the amount of effort to ensure that the system would remain stable was so significant that it would have been just as easy to reboot. These are failures in your application – I can’t say it any other way – if a customer cannot figure out your application on their own (or in some cases from your documents) then you have missed the mark and you will probably not see the potential reach of your app come to fruition.
Simplicity is the container for which Stability and Sexy reside in and if your app isn't stable, people will lose sight of the sexiness quickly.
Time for a facelift
A few weeks ago BlogEngine released the 2.0 version of their blogging software (which I use). Its got some nifty new themes and a lot of improvements.
So this weekend I'm pulling down Race Condition (at some point) to do the upgrade and will then be pushing Race Condition 2.0 back up, running under a new engine with a new look and feel... and hopefully very little bugs.
Nailing your next Project Status Meeting
The Project Status Meeting – it’s the weekly meeting where it’s your chance to shine, all eyes are on you and you need to nail it so you don’t have a hundred wrenches thrown into what precious little time you need to stay on schedule. Everyone in the room is there because they have a vested interest in the project and they are all going in expecting to get different things out of it. In the Status Meeting you have two goals – update everyone on your project and get everyone to understand your issues and what you need for the coming week. How do you do this?
Set the Tone
This is key; NEVER, EVER have a Status Meeting where you are not in control. It is your project, own it, cradle it, love it. Before the meeting send out an Agenda, this is the tone for the meeting, if people want to add stuff to the list, sure go for it, but you are managing the show and their requests are secondary to you moving forward. When the meeting starts, you don’t deviate, if people want to have a drawn out conversation on topic X, tell them to take it offline (i.e., not during my meeting). Sending out the Agenda has the side benefit of getting people to think about what you want to talk about; they will instinctively bring information related to your agenda because they know what the high-runners for the project are.
Now, let’s say you’ve done a great job setting the Tone, you took control of the meeting from beginning to end and no one deviated into conversations about their dog’s latest trick. You still need to ensure that everyone in that room leaves knowing where the status of your project. You don't want to hold your meeting only to have Bob at your desk 2 days later ask for an update.
Know Thy Audience
In any status meeting you’re going to run into the following characters; the Jumper, the Sleeper, the Whiner (yeah, I came up these names on my own). You need to know how to address all these characters in your meeting because anyone could be an important stakeholder or someone you actually need something from.
First off, the Jumper, this is someone who’s pretty close to your project, they are really interested, but whether it is sheer excitement at attending a meeting or thinking they know more then you about the project, you need to keep them in check because they WILL derail your meeting and you don’t need that. The Jumper wants to get to the next topic before you finish the current one, and when they get there they want to go back. To keep the Jumper in check, hold them to the agenda, assure them you’ll get there, ask them to hold onto the thought, and when you get there, even if you have covered it, confirm with them if this met their needs, they will appreciate this. The Jumper isn’t all bad; they are listening and enthusiastic to your content, unlike…
The Sleeper, if you have one of these at your status meetings you know what I am talking about. The Sleeper is the one who barely listens, plays on their Blackberry, doesn’t really know what you are going on about and drifts in and out of thought, providing little value to the meeting. The worst part about the Sleeper is when they wake up, they will be the first person at your desk 2 days later wanting to schedule a meeting to go over the meeting because now they need your information. You can’t have this. The best way to counteract the Sleeper is to pull them in at every opportunity, get their input and/or even better assign them Action Items during the meeting, give them something to do, this will bring them back to life because either A) they will back out and need to know how and why or B) accept to the action and need to understand what it is.
Lastly, the Whiner, this guy has had a bad day and really does not care about your project any more. All they want to know is for everyone to know how bad things are, how this project will be late, how it will fail one implemented and on and on and on. The only way to take on the Whiner and win is with baby steps – in each item you go over, show them the value of your project, show them you’re making progress to addressing their concerns and turn them from a Whiner into your biggest fan.
Take Action
Not only are you trying to push the message of how your project is going, but you are also trying to push the message that you might need help. You can’t do it all, and you know this going into the meeting, but your audience doesn’t. To get your message across the best way is to present what you know, pause, look around the room and wait. Inevitably someone is going to clue in and ask a question and that’s when you segue into your need. People will follow the breadcrumbs if you lay them out and as they get closer they will want to know more. Sadly, even with all the information you’ve presented this doesn’t always work and you need to resort to big, bold, red letters to get your point across. And if that is what you need to do then do it, but either way you need to ensure that at the end of your meeting there is an Action Plan to get you what you need and it is not all on you. If you leave your meeting with all Action Items on you, next week’s meeting is going to be a meeting about how you didn’t get anything done last week because you had a ton of Actions from the last status meeting.
I’ve been in some Status Meetings where they start off with the best of intentions but get derailed so badly that the only action item is to schedule a follow-up meeting the next day for which you need to spend more time preparing for. This is a big FAIL, you don’t want this, you don’t need this, you don’t have the time for this. Set the Tone, Know Thy Audience and Take Action… this will ensure you finish your status update early and everyone leaves confident knowing the project is in good hands… your hands.
Tracking the success of your blog.
Its been a few months since I started Race Condition and since then I have been working to make it better a) by trying to post at least twice a month and b) tracking traffic to the site. If you stopped by Wednesday night (EST) you might have noticed some oddities in the layout as I tried out some new ideas.
The first thing I did was clean-up my share buttons, the big guys weren't working for me so I made them all smaller and I updated the main page to have my Twitter feed and a follow me button (it looks cute). There still seems to be a bug in either BlogEngine or the javascript of these buttons where if they repeat a number of times on the same page, they all show the same content. Definitely something to investigate.
The big change on the right is my Blog Grader badge. If you haven't been to this site and are writing a blog I urge you to go and check it out. BlogGrader is brought to you by the guys at HubSpot and they have put together a quick, informative tool that breaks down your blog and what you need/should be doing to make it better - things like have an RSS feed, Twitter, Email, Facebook, how much are you blogging, what does that translate into tweets. All the social sharing aside it does a quick job of scanning your titles and frequency of writing. All these elements add up to a stronger score for your blog with the goal of making it better. One of my big red Xs is that I am not writing enough which I hope to change in the next upcoming weeks. One easy suggestion from BlogGrader was to add some images into my posts which leads to my next implementation...

Next up - I signed up for Google Analytics and added said code script into my blog. Prior to this I was using my hosts webstats engine (which was pretty good) but Google Analytics takes it to a whole other level - breaking it down by region, loyal vs new users, source of traffic (direct, search engine, etc). The data it gathers is really impressive, I wish I had known of this back in July when I first started blogging so I could see the traffic breakdown. I'm still learning but definitely this is a tool that I will be checking into to see what I can do to optimize traffic to my site. Right now things look a little sparse but what this clearly means is the only direction to go is up.
Keeping up...
I spent some time tonight fixing a couple things on my blog that I didn't really like, mainly graphics and updating my "Share" connectors to not be so 2009. When I first put the blog up in July I was happy to get it up and rolling but now wanted to spend some to round it out.
I now have the pretty much standard (depending on who you talk to) share buttons underneath each blog post that point to Google Buzz, Facebook, Twitter, StumbleUpon, Digg and LinkedIn. I'm a big user of LinkedIn so thought this was a great button to add (my profile now links to my LinkedIn Profile as well) as I normally end up sharing any recent posts off that account. I love the StumbleUpon toolbar for any browser, it is a fun way to waste away some time and learn about different things that you might not have found otherwise. Right now, my Google Buzz is used for exchanging thoughts and funny photos between friends, but hey maybe you have a legit use for it. I'm going with the big buttons right now, only because I like how they look but I have to admit, right now it looks like a shopping mall underneath each post.
I'm only starting to get into Twitter so don't expect to see many posts from my Twitter account here just yet, I focus a lot more of my time against LinkedIn as the groups feature is very powerful allowing you to connect and talk about issues facing your industry. I love that they are focussed to different areas of any profession and not just a mother of a wasteland of content. Right now I am trying to figure out how to create a focussed message in under 140 characters without it ending up being some quote of something or another... right now I'm a pretty wordy guy.
Also a note on comments, if your comment does not appear immediately please know I do monitor all comments - mainly for blatant profanity and rudeness to others. As you can see from the first post on the site I do let comments through from people who don't agree with me or my blog (you don't have to, really you don't, but thank you to those that have left some great comments).
So if you like what you're reading then go forth and share it with your friends and colleagues. I will be honest, I will probably share my stuff after I do new blog entries (mainly because I would have to post the content to those sites regardless), it's easier and everything starts with 1.