Good Software Design Is Still An Important Art

April 15, 2009

Solid Architecture is a Dying Art

When I was in my CS program from 1992-97, we coded in ANSI C and COBOL. As a web developer, a lot of the specific code we wrote is no longer applicable today.  One major concept that was vital to writing code during my college years that I feel is useful and probably not a focus these days is writing tight, effective code.

When I graduated college, my first job was pretty groundbreaking. We were writing full featured mobile apps for field use. We had to work with heavy handheld devices that communicated with CDPD or dial-up to transfer their data. They had 256k RAM, 4Mb harddrives, and 9,600 baud modems. We had to focus on writing tight code, and conserving space on locally and for data transfer.

Today harddrive space, RAM, and processing power is cheap. Very cheap, and you don’t even have to have your own. You can rent power and spawn processes and database space as needed on Amazon ec2 servers.

Even users’ machines are way more powerful. Users have high speed connections with unlimited data and huge hard drives. Because of Windows Vista, even non-gamers are putting 4Gb RAM in their machines. This is great for us as developers in some ways. Running slick Flash and AJAX apps on clients machine is no longer a problem. We can be very creative, and deal with problems later as they arise.

Too often traditional computer science techniques are being thrown out the window. This is tolerated because of the cheap power we can buy. A shortfall in the code or architecture is simply fixed by adding hardware. Twitter blew up so fast their initial poor design had to be tweaked many times. To this day, they have some questionable design elements in their architecture and it shows. Fail Whales and slowdowns are part of the daily routine of twitter users.
fail whale

I am not saying we can’t or shouldn’t take advantage of cheap hardware these days. I’m also not implying that the developers at Twitter are not smart, they certainly are. Spending hundreds of hours coding for problems you don’t yet have is a huge waste of time. But a good artecture basis is imperative, so that changes can be made with minimal impact to users.

This is definitely a dying art, but its importance will become more evident as mobile computing becomes more relevant. More and more users are browsing sites on smart phones and net books. These are less powerful appliances by nature, and are usually coupled by slower 3G data transfer speeds. That means bandwidth is now becoming slower and more expensive again. Storage becomes a premium again. Developers will need to be more mindful of their bandwidth and storage usage when writing code.

Finally I want to briefly mention a story I was talking about with a colleague today. In 2006, users were racking up huge data fees downloading mobile maps. Google assigned a room of their best engineers to the issue, and could not come up with anything. Then one young designer came up with the idea to simply reduce the amount of colors on the maps from 256 to 20-40. Users didn’t notice, and amount of binary data to transfer was greatly reduced. It was heralded as being genius and a breakthrough idea. Granted it is smart, but do you honestly think a room of old school DOS or UNIX developers would not have thought of this sooner? Tricks like this have been around forever.

What do you think? Should you code away at your users expense, or be more mindful of conserving resources? And if you are in school or recently graduated, tell me if I am completely wrong and maybe you were taught to focus on good design.

Share:
  • email
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • TwitThis
  • NewsVine
  • Reddit
  • Slashdot
  • StumbleUpon
  • LinkedIn
  • Netvibes
Sphere: Related Content

Related posts:

  1. Use Project Collaboration Software We use BaseCamp here for managing projects. It is extremely...
  2. Knowing your users will help make effective decisions If you are reading my blog, there is a very...
  3. Web Design: Finding the Next Oscillating Fan When I got my first job out of college, I...
  4. Good Developers Need to be Able to Decompress All good developers need time to decompress. This ability to...
  5. Dell 9 Mini Review My dell mini 9 arrived 2 weeks ago. I purchased...

Related posts brought to you by Yet Another Related Posts Plugin.

5 Other Comments

2 Responses to “Good Software Design Is Still An Important Art”

  1. I personally think that design nowadays is an important part. You see, talking about mobile phones, the design could be not so important. Because users want to browse quickly and comfortably using their phones. So that idea (reducing colors) can be great and nowadays. But talking about all other stuff, except mobile phones, the design is an important part. Thanks for the great article!

  2. I have to agree with the above comments. I also feel design is a huge piece in marketing.

Leave a Reply

Additional comments powered by BackType

Blog Widget by LinkWithin