In the realm of software developers, it's common for Old Folks (that would be the group that includes me) to reminisce about the old days when we programmed using punched cards and languages like COBOL and FORTRAN. We would do things like desk-check our code to make sure the logic was right, since CPU cycles were expensive, RAM was limited, and I/O was cumbersome. It was important for us to make sure we used the hardware resources as efficiently as possible, so we struggled to make each instruction do as much as possible, and to use as few instructions as we could get by with. Then the hardware got cheap and powerful, people became more expensive than systems, and no one (outside of those embedded system folks out on the fringe) cared much about code efficiency any more.
The evolution of general software development is being repeated on the Web, as the average size of a page and its contents grows. An article over at WebMonkey.com says that we're building a fatter, slower Web. Oh. Goody. What joy does that news bring to you as a CIO? Let's walk through some of enterprise pleasures to come.
Now, it's easy to say that the real problem is that the pages are getting more complex, and there's a kernel of truth to that. More important, though, is the idea that we've stopped caring about whether the pages we build are optimal. When the Web was young and dial-up was common, we built Web pages that would download and display rapidly at 57 kbps, or so.
What's a CIO to do? You're not developing Web pages or even leading development teams, so you aren't going to review code. What you can do, though, is exercise the most powerful tool in a C-level exec's toolbox: You can define a culture.
If you let it be known that efficiency and elegance are qualities you demand, and reinforce those qualities with both your words and your actions, the effects will trickle down to every development group in your sphere of control.
There are solid financial reasons to do this (see the sentence on finite pipes, above), but the cultural reasons may be more compelling. Treating every corporate resource as important and refusing to waste even abundant raw materials (like CPU cycles and I/O operations) leads to an organization that embraces cost savings as a virtue rather than a punishment, and takes the lead on "green" initiatives as a matter of course.
One of the problems is that the life span of the code is now measured in days, not years or even months. If code is going to be thrown away every few days to give a web site a "newer" feel, it isn't worth putting much effort into efficiency and elegance. As a performance tester, I write a lot of "use once and throw away" code for tests. Those, I typically don't spend a lot of time on making them really tight. But, for some tests, the code can be around for a long time, with tweeks to keep it running. For this type of test scripts, using tried-and-true techniques for coding standards pays off big time.
Another thing that efficient code requires: Defined REQUIREMENTS and PLANNING. Has anyone done that for a web site recently? Seems like "hacking" (as in "putting together a hack to get a job done quickly", oh, excuse me, they call it "Agile" now) has become the norm.
It's often about managment. It may even go so far as hiring the wrong folks in the first place. Developers who aren't concerned with quality code (and efficiency in turn) may be sloppy or careless. This creates a lot of work for other developers in the future who spend time cleaning up. I've spent a lot of time cleaning up code myself.
I don't know that it's a 'lazy' thing, as much as a time-to-market thing.
If developers are given a deadline that doesn't allow time to write good code, then it may not be laziness but it's certainly bad management. My grandfather told me, "Anything worth doing over is worth doing right the first time." The "kick it out the door and let the customers be our QA," attitude is a sign of bad management and a defective culture. A good CIO who takes quality and optimization seriously can do a lot about fixing both.
That would have been fine except for all the special requirements it took to make a site function in IE6.
Oooh, you're so right. Of all the software Microsoft has put out, IE6 may well be the most pernicious. Not only was it non-standard in some especially frustrating ways, lethargic IT departments kept it around as a standard long after it should have been sent to the great software glue-factory in the sky.
Other versions of IE have been fine (and the current versions are actually quite good), but IE6 has left a bad taste in the mouths of many, many web developers.
Just to also play devil's advocate here, what kind of bloat are we talking about?
Dave, it's not so much about the delay for any individual user (though I'd make the case that mobile users might very well want the pages they view to be optimized), but the aggregate impact on corporate bandwidth and ISP networks. Between the rise in video as a content type and demonstrably inefficient code, even those "big pipes" we're all used to can become filled. At that point, everyone is going to see a slowdown, no matter how much bandwidth they think they have.
That would have been fine except for all the special requirements it took to make a site function in IE6. Even simple page layout was an issue. There are entiresites dedicated to helping web developers through the muddled mess that was IE6.
So, here is a related but slightly tangential quesiton. Why haven't mobile devices streamlined web design again? The tiny, underpowered mobile sites were cute when screen sizes were small and data moved slower. But now that we have tablets and smart phones with 4.5 inch screens, people are viewing the full internet on mobile devices again. Some sites have tablet specific versions and I often like them more than their full design.
You'd think optimizing your page for tablets one way or the other would lead to less bloated coding again. But it doesn't seem to have done so.
The blogs and comments posted on EnterpriseEfficiency.com do not reflect the views of TechWeb, EnterpriseEfficiency.com, or its sponsors. EnterpriseEfficiency.com, TechWeb, and its sponsors do not assume responsibility for any comments, claims, or opinions made by authors and bloggers. They are no substitute for your own research and should not be relied upon for trading or any other purpose.
Please join us for the "IT Convergence Strategies: Why, When and How " to learn more about:
• 5 truths about infrastructure convergence today that go beyond the hype
• How to exploit the 4 phases of convergence maximum efficiency and agility
• Key milestones to plan for on the convergence journey
• Why integrated management is a critical component of convergence plans
• The importance of an open, modular approach, such as Dell’s active infrastructure, to building a converged data center
Enterprise Efficiency is looking for engaged readers to moderate the message boards on this site. Engage in high-IQ conversations with IT industry leaders; earn kudos and perks. Interested? E-mail: firstname.lastname@example.org
Dell's Efficiency Modeling Tool The major problem facing the CIO is how to measure the effectiveness of the IT department. Learn how Dell’s Efficiency Modeling Tool gives the CIO two clear, powerful numbers: Efficiency Quotient and Impact Quotient. These numbers can be transforma¬tive not only to the department, but to the entire enterprise. Read the full report
Now that TGen has broken new ground in genomic research by using Dell's storage, cloud, and high-performance computing solutions, the company discusses what will come next for it and for personalized medicine.
The Translational Genomics Research Institute wanted to save lives, but its efforts were hobbled by immense computing challenges related to collecting, processing, sharing, and storing enormous amounts of data.
VMware has a new solution to the MDM problem, two virtual phones inside a real phone, at least for Android phones. Currently limited to two models, the idea could expand and provide a way of letting companies harmonize their need to manage corporate use of phones while preserving BYOD.
There's a lot of hype about virtualization of networks, NaaS, and SDN, but there's a couple of proven applications that enterprises could adopt right now and potentially save money and improve operations.
Skype/Outlook UC integration means we're going to have competition and fragmentation of UC client architectures, but is that bad? Modern devices can support IM, email, voice, and video clients, so maybe it's the back end of UC we need to be worried about.
Workers are now used to portable device support throughout their everyday lives. We should be looking at the policy of providing fixed-desk devices to support stationary workers. Could portable support be smarter?
Input devices run the gamut, from the humble Missile Command-style trackball to advanced speech recognition. Unfortunately, these input devices can be used for evil as well as good. Case in point: mobile ads that want you to talk to them.
Enterprises want three things in storage systems: First is some speech-recognition way of capturing videoconference data for indexing; second is semantic/AI analysis of emails and IM for content indexing; third is a better system for managing hierarchical layers of storage.