President Monson Announces New Temple in Payson, Utah
January 26, 2010, 9:12 pm - James Farrer
We're getting a new temple. How cool is that!
We're getting a new temple. How cool is that!
I've been pondering the question of where the balance between simplicity and complexity should lie. At work my team is building a new site using an existing tool from another company. We actually work on several different sites, most of which are very customized and significantly complex.
While I fully understand how nice it is to have something that does exactly what you need it do, I think about the huge number of hours that it took to get to that point and am almost dumbfounded. The other side of it is how much effort we have to go to in order to replace the functionality. Two of our systems are built using technology that is outside our range of expertise. While I don't necessarily have a problem expanding our horizons, it doesn't make much sense to support several websites in different technologies that do almost identical functionality in many ways. Each system has its own super-customized sections, but on the whole, it's generally the same.
So whether the functionality is the same or it really is, and needs to be, different I find the same question coming up again and again. When is exactly what we need too complex? When is keeping it simple just not close enough? I think in general we underestimate or simply don't consider the cost of getting closer to what we need.
The cost comes in a number of forms. There is often a straight forward cost to obtain something (e.g. buying some software that does what you need).
There is the cost of implementing it in man hours. This is often overlooked because the people will be working the same hours either way, but in this case it is really an opportunity cost. If we do activity A then we can't do activity B.
There's also the cost of managing the stuff. The more customized something is, it generally means there are more data points that need to be managed. For example, if you just track computers for checkouts, then you have one item that you need to assign out and check back in. That's good and simple. What about the mice, power adapter, extra disk drive, etc. that come with the computer? Should those be tracked as well? All of a sudden it's not a simple system anymore, there are 5+ items that may or may not be checked out together. These tend to get lost or broken more often so is there extra fees, fines, or other information. There's a lot more questions that need to be answered, and more information to maintain. How do you take inventory on those? What happens when there's a new peripheral? How about replacing them?
Another blurring of the cost comes when a relatively simple system is created and then over time things are added here and there. Additional functionality and rules are added. When taking into account the cost to create it things don't seem too bad. But often this is done with little thought given to the long term strategy.
If we add this now, we're done right? Wrong! 6 months or a year down the road someone realizes the process has changed and the system needs to be updated to accommodate it. That's going to cost twice as much as it took to create it in the beginning, and now we've got 18 new points to configure or update just to keep things running.
Now after a number of years of minor tweaks and changes you look back and realize you've got this great system that is getting brittle and really needs to be replaced with something that looks at the bigger picture and you realize it's much bigger and more complex than you want to deal with.
But the catch comes in the fact that no one wants to give up the functionality that they've grown so close to over time. Even if you want to redo it and make it all more manageable AND have the resources to do it, now you've got to figure out if you're going to cut back to simplify or expand to make it do exactly what you want. Keeping exactly the same functionality usually isn't a real possibility because it's a lot of money and effort to get exactly what you've got.
So there you have the constant tug-o-war of technology. Simple or complex and customized. At a conference a few years back for a seriously complex piece of software they repeatedly said to tell users "no" 3 times before considering any customizations because they better really want it and be able to justify it or it's probably not worth the effort.
It's the rare occasion when someone steps out of the box and finds a truly great way to simplify and make it better. We need more people to do that. Now the question is how...
It's pretty cool to see him growing up so much.