Average guy, above average luck...the blog of M. Keith Warren

  • Windows Azure Websites

    4 total hours of work. That is all it took from first call from a customer until I had their site pulled from the current servers, a new account provisioned, DNS changed, source control moved and site deployed to Windows Azure websites. The site http://eventwarden.com was relatively simple structurally but that doesn't matter. Everything went smooth as silk. Azure has come a LONG way.


  • Three things I learned while not in college

    Scott brought up the subject so I thought I would take a stab at it since I skipped college as well...

    • You’re not ever actually going to go back and fix that code you quickly threw together, even if you put a TODO comment saying this was a hack and needs to be fixed, you will not have the time because in most cases there will be more immediate concerns…so do it right the first time
    • Quality is a measure of functionality and reliability over time…building new functionality is usually fun, making existing functionality more reliable is usually not…but in the long run, the latter can be more valuable
    • You will suck at estimating time for tasks, there is no great lesson here – just fundamental truth…accept it and adapt for it

    And now folks for the bonus round...four things I learned while working on my own (nearly 6 years now)...these may seem like simple truths but some things bear repeating again and again

    • No contract or gig is ever real until you actually go through the process of signing it; even if it seems like a sure thing…don’t hold your breath
    • Take the Net payment terms part of your contract (and the due by portion of your invoices) and use it when you run out of toilet paper…I don’t think I have ever had a client who actually paid on time
    • Save money, lots of money….figure out what you need to get by and double it…most people look at the cash flow issues and think about the time between gigs when they may be ‘on the bench’ and plan around that. The truth is that you can be on the bench for 2 months then start working but never get your first invoice paid for 4 months into the project…it sucks, but it happens.
    • Know as much as you can about what is going on with your client – Bankruptcy is an evil thing and it can and likely will happen to you….in six years 2 clients have done it to me and it is not pleasant when you realize you are an unsecured creditor and will get nothing at all.





  • ASP.NET solves cellular coverage issues !?

    Well, not really but it is playing its part. Last year I did some work for a company who makes some wickedly cool technology that got some Engadget love today.

    The company is a division of Ericsson and yes they have built their system using ASP.NET, I have helped to snuff out performance and scale issues on the site which is only the surface of an intense amount of engineering and development.

    In 5 years on my own I have worked on a couple dozen different projects including things for the Department of Defense but nothing has been as cool as this project which will have a practical effect on so many people…I mean, who hasn’t had a call dropped!


  • Making us all look bad...

    So Verizon Wireless is going to release this new phone today which they think will be a big hit, they even set up a separate site to make ordering the phone a 2 step process. They build the site on ASP.NET and launch day comes around and here we find a buggy site which is failing to serve requests and even spiiting out ASP.NET runtime errors with web.config information.

    It never ceases to amaze me that people in such high visibility situations can fail so badly. The part that is even worse is this, right now there is some CIO/CTO type at Verizon swearing to never again use ASP.NET because in his mind it just cant handle the big show. This mentallity affects us all and all because they hired some second class morons to code the site and listened to some cost/corner cutting engineer who did not put in place the proper infrastructure.



  • Does adding developers increase the hours?

    I am working on a project timeline this week and my customer called me after review. They were pretty amused by the timeline because I had increased the total hours after adding another development resource to the project. I think this is hard for most people to understand, they imagine a pure labor project, building a swing set for instance. One man could do it in 6 hours but add a second equally capable man and they may complete the project in 2 hours. I think this is due to the fact that some tasks can be approached differently with varying multiples. I don’t believe this anecdote to make the leap into software development. Development methodologies aside I think adding a second developer adds a tax of time to the project, the guy once working by himself now has to communicate with another, tactics get questioned, he has to wait on things from the other guy and vice versa. There are also benefits, having someone else dependent on your delivery in the short term can make for a good motivating factor. In this case though, we are talking about man hours and not delivery date.

    I estimated the project to take 600 hours on my own and was asked what it would look like to add another developer. Looking at the tasks I chose some which would be best to be worked on independently and tried to avoid overlap in needs (don’t want someone building an interface if the underlying business objects aren’t complete). In the end I put the hours at 750, but the benefit is that the project gets done sooner in calendar days. This means I added about 25% more man hours due to the changes in approach wrought by the resource addition. This worked under the assumption that the second developer had skills commensurate with mine and that the project tasking stayed the same. I believe this number slides down with time and other factors such as whether or not the two resources were in the same location, had worked together before etc.

    My question is this – is 25% overkill?

    Not enough? What other factors am I not considering?

    Does this number go down with longer projects?

    What does a third person do?

    Any advice would be appreciated.


  • OT: Office 12 Beta

    If there is one tool I use more than Visual Studio it is certainly Outlook, I have been an Outlook fan since Outlook 2003 (before that it was just ok) and have not looked back since. I decided recently to give the Office 12 Beta a try and while I tend to shy away from beta 1 stuff for actual usage I was quite pleased with the relative stability. Now after having spent a few weeks mainly in Outlook and Word I have to say that this has got to be the best Office release by a long shot.

    I know people get into arguments about whether there is some killer 'must have' feature and whether the new features justify the upgrade cost and on the surface I could not name just one that makes it worth while but this thing is truly a starting to shine as I dig more.


  • micro.isv - a detour

    For over a year now I have been working in my spare time on a digital asset management system, I have been very serious about this and did quite a bit of competitive research out of the gate which I have refined over time. It got the to point where Outlook notes and scratch pads hobbled together where getting out of hand so I spent a few hours throwing something together to manage the information. made changes, spent more hours (big for loop here) and after way too many hours had something respectable for managing the information. I have showed this to a few people and got a pretty curious reaction, instead of "that’s nice" or "good idea" the response was more like, "why aren’t you selling that?"


  • OT: JibJab

    Noticed today that the JibJab site is running ASP.NET and they have a hilarious new video out. Check it out sometime.