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.
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!
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.
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.
It is one thing to be a regular item on Engadget, wholly another to be the headline on Drudge.
As 'official' news about the Origami project begins to pour out it appears Microsoft has pulled off something Apple has gotten pretty good at, generating mainstream media hype. AP published a story which I saw on at least 3 major news sites. Paul Harvey was talking about it on the radio this morning and Matt Drudge had it as his centerpiece headline. If you don't know who Drudge is then this could possibly be the first time you have used the internet...talk to anyone in a major media outlet and they will tell you that his page is either their home page or is visited multiple times daily. He is a harbinger for what will be the major news story in the coming hours.
Now if the guys in Redmond can just figure out who at Time Magazine Steve Jobs has compromising pictures of then maybe we can get some of those fancy cover stories.
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.
If you have the opportunity I really suggest playing with it for a bit, it is going to knock your socks off in a lot of respects.
Via neowin.net (http://www.neowin.net/index.php?act=view&id=32020&category=main)
Apparently the current Vista UI in 5270 is going to be the final look. I had really high hopes for MSFT and truly believed (and even tried to convince my OSX loving friends) that Vista would be revolutionary.
I can recall a certain Scoble post which has kept me thinking that this cant be it, this cheesy upgrade of the XP look is certainly not the real deal. Revolutionary has got to be something Stardock cant mimic.
Not quite sure what I was looking for, but with what is arguably one of the most prevalent and profitable products in the world I was hoping for something more than new colors and a transparency effect. I know there is much more than that, I know...but will my mother?
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?"
I am a big fan of Eric Sink, I love his writings on the business of software and the insight I get from him is very often one of those things where you sit back and think that you knew that deep inside but just couldn't express it (in other words: I’m a fan) So I am going to take some clues from life and my lessons from the dotnetredneck himself and am going to make a detour from my asset management system for awhile and see if this competitive intelligence thing I have built can be something. It is not too big and may just fit a niche market that is out there waiting to happen; the problem scope is limited and I think I can invest the time and resources to take a stab at this without breaking the bank or pissing off my wife. Bottom line, if it fails then I have wasted little money and not much time. If it kinda sort of succeeds then I can buy some toys (Xbox360, highdef tv, etc) and if it really works out I may be able to stop consulting, let this pay some bills and spend more time on my asset management system.
Couple points to ponder; I really don’t want to deal with software distribution and all that jazz, so I going with a service provider model, the software will be subscription based. Unless something about my potential market changes my mind, this is my path. I am going to build on .NET V2 with SQL 2005 because I like it number one and more importantly I have already spent time building something out in those technologies.
I think I will blog this adventure, I am pretty close hold on my consulting practice and since most of my work is defense related I am sure you can understand why but this thing is totally open for public consumption...
And as always I hope you comment to give me some advice.
Noticed today that the JibJab site is running ASP.NET and they have a hilarious new video out. Check it out sometime.
Oh yeah, and they need to hire an admin who knows what he/she is doing because last I checked the site was showing raw ASP.NET errors (right now it is returning Server too busy)
New Rule (for blogging on this site):
Posts which allude to some great technical silver bullet or really cool demo and say nothing more than 'it was cool' are not allowed. Unless you say something specific you are just making noise and frustrating those of us who aren't in the knowledge loop. Saying you cannot talk due to an NDA is even more ridiculous because a basic tenet of secrecy would lead the keeper of such secret to avoid divulging they even know the secret.
(read: this sucks, I want to know what you guys know...)
Old Rule (for life and development):
Bullets will almost always kill you, or hurt really bad...even if they appear silver.
More Posts Next page »