Software Estimation Is A Crock

Aug 19, 2015

After 34 years of being a programmer I still get a kick out of people thinking there is a magical way to make software estimation work. All during my career I’ve heard person after person declare estimation is broken but that they have some way to make it work better.

They don’t. Correctly estimating how long something will take to code is unlikely at best. I’ve never been able to do it and every time I see someone try it’s always wrong.

In fact it’s difficult to even know how bad your estimations are. After all you are trying to guess how long something will take that is not perfectly defined to be done by imperfect people in circumstances that are likely to change in a generally continuous fashion. If it takes longer than you estimated, was it because your estimation was wrong or because you did not have enough information when you started or because the estimation time became a deadline that changed the development process itself? Software development is an iterative activity, where each step influences the following ones. Outside influences like management demands, market changes, personal changes and external changes like tools or framework updates all have an effect on how you get to the finish line.

Read the rest of the article…

I Remember the Day The Internet Started But I Fear For the Future

Aug 10, 2015

Twenty years ago this week Netscape went public. I've always thought of this as the day the internet really started.

I was contracting at a company nearby that had also recently gone public (before I got there) and I remember we watched the IPO looking at a page Netscape had set up for this purpose. We knew something amazing was happening but not exactly what. Little did we realize how significant it would become. We also had no idea how twenty years later the promise of the internet would be sitting on so many land mines.

The first decade had so much promise. So many new opportunities, new ideas and new directions. We all thought that truth would finally win out, that information would flow free and progress would be unabated. Sure DotCom was insane at times but the rapid evolution of the internet seemed like a dream.

Read the rest of the article…

How Many Programming Technologies Can You Really Master?

Aug 6, 2015

I keep seeing companies or their recruiters advertising they are looking for people "with significant experience developing iOS and Android applications from scratch and will have a mastery of modern mobile and web technologies, including Java, HTML5, CSS3, JavaScript, JSON and AJAX".

There is no such person. You can master one and be mediocre in the others; you can master one and then move on to another and forget a lot of the prior; you can simply fool enough people into thinking you can do it and hope you can figure it out just in time.

Programming today in any major area is highly complex, constantly changing, and generally done with a lot of time pressure. None of these allow you to devote a lot of non-programming time to learn even the most recent changes, much less master everything from scratch. You can really only learn a new environment by doing real projects, and how many people can simultaneously write large native Android, native iOS and responsive web clients all at the same time?

Read the rest of the article…

The Most agile Project I Ever Did

Aug 4, 2015

When people think of Agile they usually think of a specific process like Scrum or Kanban. This story is more about dealing with continuous change, driven by the CEO, in what seemed insane at the start but actually ended up being a lot of fun.

Yes fun.

This was three years ago around the time of iOS 6 beta. I worked in the mobile team for a well known travel company (now sadly just a brand of our biggest competitor, nothing here exists any more). We had an iOS app supporting all of our product lines (hotel, flight and car), an iPad app we had inherited from another office that had been closed, plus mobile web and a mobile API that made our main web app usable by our mobile apps.

Read the rest of the article…

Job Ads Should Always Be Edited

Aug 1, 2015

I plan to write a larger blog post on “An Employers Guide To Hiring Better Programmers” later but for today I just wanted to tackle one of the most irritating parts of a job search - reading job ads.

Frankly job ads are all terrible, just some are more terrible than others. A job ad is an ad — it’s one way a prospective employee is attracted to possibly making contact. The whole point is to get someone to send you their resume and possibly begin an evaluation process. This is really no different than a billboard telling you why you should buy a Hyundai, or a flower attracting bees, or a political ad getting people to vote for someone. Would you buy a car if the ad included “frequent breakage and snail-like acceleration”, or would you fly to a flower in the shape of a raid can, or vote for a politician who said “sometimes I lie”?

Job ads frequently contain language that screams “don‘t apply here, we‘re stupid people” or “danger, Will Robinson, terrible pain ahead”. The job ad should give just enough information so the job prospect knows they might be a match, enough positive spin to make it at least seem like a good place to work, and hopefully enough financial information to make it seem worth the effort. Nothing more!

Read the rest of the article…