My graduate thesis focused on tracking energy consumption costs in textile manufacturing. At the time, and I assume it still it, energy was the #2 cost in the textile manufacturing process. The goal of my research was to provide modeling software so the business decision makers would be able to make more educated decisions when it came to pricing, products and even machine maintenance. It was about knowing where the money went and how to eliminate waste to maximize profit.
The concept applies to just about anything in business. It could be manufacturing, banking, health care, etc, knowing how much you are spending and why are critical to success. Measuring productivity is key to running a profitable business. Remember I said energy costs were #2 behind labor?
Sadly most web sites are slow because they are built poorly. This seems to be amplified when it comes to line of business applications. People do not like to wait, for anything, even when they are getting paid to sit and do nothing. Wow I just said getting paid to do nothing, which is what a lot of employees do each day because of poorly written web applications.
Just the other morning I was getting my license plate renewed and the lady kept apologizing because her software was taking so long to provide her the information she needed. For the record this was not a government run office, it was a retail location, where there is even more incentive to be efficient. I asked her how much time she spent waiting for software and she just looked at me with sad eyes and said "I don't know but it's a lot". I estimated in the 10 minutes she spent with me it was about 2 minutes.
Let's do some quick math to determine how much her employer could spend today on their slow software. My time was about 10 minutes to renew a tag. The lady before me was about 10 minutes as well. So let's say 10 minutes per customer to make the math easier. I estimated she had to wait 2 minutes for software to return data to her. Granted some came from the state DMV, which is outside of her control, but still.
At 100% utilization (that means she is busy servicing customers all day long) for 8 hours that is 48 customers. If she wastes 2 minutes per customer waiting that is 96 minutes (480 minutes * .2) or over an hour and a half.
The average US worker with a bachelor's degree earns over $60,000 a year. But to an employer it is more with all the employment taxes, office space and other overheads. So lets say $100,000 a year. The US work year is approximately 2000 hours so about $50/hr in labor costs per employee. Since 2 minutes is 20% of 10, the math is easy here. That would equate to around $20,000 a year the employer should budget for their employee to wait on poorly written software.
Those are easy numbers to do math and I realize they are somewhat anecdotal, but should serve my point. Even for the small business I was visiting the other day that is some real money. Imagine if they invested $10,000 in updating their software? Just for the single employee that is a $10,000 gain in profit, which could be split for a nice Christmas bonus which means more employee loyalty, etc.
Now I am going to take my numbers and scale them to some of the enterprises I have entered over my career. Let's take a scenario where 4500 employees use the same slow software everyday. That would equate to a whopping $450 million in labor costs (I am counting taxes like FICA, Medicare, Unemployment, Obamacare and of course real estate, utilities, training, etc and of course assuming the US college educated, etc). That is $90 million in wasted time, assuming the 20% rate I saw this morning.
Sadly I have been in many scenarios where 20% would be nice. Recently I was trying to help an application that took up to 75 minutes to load, do the math on that one!
The thing is in almost every case I see places will not apply good development practices that will not only speed up the application but reduce development costs. Sometimes it is doing a major upgrade, like migrating data from an outdated relational database or mainframe to a NoSQL database like MongoDB. My recent upgrade to this blog from SQL to MongoDB showed great improvements in performance and reduced the amount of code I need to maintain.
But as has been well established over the past 5 or more years 80% of the performance issues we have with web applications is not the backend, but the front. Today customers expect a web app to be perceived as usable within a second. That puts a lot of pressure on developers to know how to make this happen. It gets much harder when someone is on a mobile network because there is a built in 500ms lag just initializing the connection.
Strangeloop has a great infographic poster I love that talks about the psychology of a slow web site, http://www.strangeloopnetworks.com/resources/infographics/web-stress/poster/. I love the point it makes that studies show a slow web site forces you to concentrate 50% harder. This means higher blood pressure, headaches and more negatives that can be measured physically.
But I think the cut runs deeper as I talk to employees about their software. They almost uniformly express depression about their jobs because of the software, computer hardware and the IT staff. This work related depression means lower productivity on top of the wasted time, lower morale and higher turnover rates which themselves increase overheads.
Why is this? I mean why are companies so willing to sacrifice productivity and eat those costs instead of creating more usable web clients? I don't have any absolute answer. I can't tell you how many times I have heard a client say something like we don't care how it looks, its just for our use. That tells me two things, they perceive the cost of a decent user experience is high and they do not value their's or their employee's time. Of course it also tells me they probably do not understand their business cost centers.
Does it really cost a lot more to make a good, efficient user experience your employees will not only be productive using, but enjoy using? Probably not, and I say that from building several hundred web applications of all sizes for a broad set of businesses. In fact it is my experience that making a better experience lends itself to lower ongoing maintenance costs because the application is typically written better. They also tend to last longer because they are not written for yesterday's standards, but rather the emerging standards of tomorrow.
The adoption of good enterprise mobility strategies is a prime example. While according to some surveys around 25% of enterprises say they are adopting an enterprise mobility strategy, I honestly have a hard time believing half of them are doing something useful. The 75% that aren't are just recklessly bleeding money.
Why? Because mobility is not only the future, it is today. Next Spring a couple of things are going to happen. Tablet sales will surpass PC sales and Windows XP will officially be unsupported. That means touch is very important and Internet Explorer 8 should be dead, killing a lot of outdated line of business web applications. I believe this is going to cause a lot of chaos as enterprises have held onto their outdated business applications hoping the future would never come. It will be a day of reckoning, bigger for some than others, but a day of reckoning for all.
The more I understand development costs and business costs I can't help but see how to reduce overheads on both ends and increase productivity. Spinning discs are just a way of indicating lost profits. http://www.stevesouders.com/blog/2013/06/16/browser-busy-indicators/ Find ways to eliminate all those loading indicators. Make your business applications immediately responsive to your employees. The rest will take care of itself and you can focus on other areas to improve your business.