- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
800 on Your Math SAT, Software Development and Bugs
Why don't more people get a perfect score on the math portion of the SAT? I mean its dead simple -- just simple arithmetic. And there are plenty of bright young things that understand the problems cold.
I can understand stubbing your toe on the verbal; after all, there may be a word in the test that you just don't know or remember. But the math? There aren't more than a half dozen problems, and though the numbers may change, the concepts don't. So why don't more people get a perfect 800 on their math portion?
I ask this question every time someone asks me why there are bugs in software.
If you are a manager new to software development, bugs are both frightening and infuriating. They are infuriating because, dammit, you aren't paying for buggy software. They are frightening because, except in a really broad statistical sense, they are unpredictable in both when they appear and how much effort they take to resolve.
Why Bugs Happen
Back to the SAT...most novice managers may not understand software development, but they probably remember the SAT. So why don't more people get a perfect math score? Because people make mistakes, and they make more mistakes on complex tasks that require abstract thought. Maybe not a ton, but a few. Enough to turn an 800 into a 780. That's a bug. Most developers take the equivalent of several SAT math portions every day. If they're really good, they make only a few mistakes every day. (Actually, most development tasks are much much harder than the SAT.) Also, imagine that the mistake you make today will create errors in the tests you took in all the previous days, and the mistakes you made on previous days will cause mistakes on subsequent days!
Wow. Its a wonder anyone ever develops software. How do developers do it? We have a deep bag of tricks.
- We divide big problems into smaller, simpler problems.
- We use Object Oriented programming to keep code and data together. If you keep them apart, its easier to make errors.
- We write unit tests -- tests for every little unit of code -- to make sure they work. We measure to make sure our tests excercise every line and branch of code.
- We build our software every hour and run all those unit tests to see if we've broken anything -- called continuous integration.
There are dozens of other tests and tricks that we use. We test early and often. Bugs will happen, but as long as we minimize them and detect them early, we can make sure they are small and insignificant.
So the next time a manager gets worked up about bugs, ask them what they got on their SAT.
Topics: Agile Development, Best Practices
Comments: 1 so far
Leave a comment
About Pathfinder
Recent
- Project Website Part 4: Drag and Drop in jQuery
- The App Store, iPhone, and You
- Multiple Column Sorting with Drag and Drop using Scriptaculous
- Five jQuery plugins that are a joy to use
- Visualizing Your Database Schema Entirely in Rails
- jQuery plugins: Five tips for separating the good from the bad and the ugly
- Resolved: Should schema.rb be included in your source control?
- Flash 10 - FileReference Runtime Access
- Papervision3d 2.0 (Great White) in Flex 3 (Part I)
- MetaWidget - Convention over Configuration UI
Archives
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006



Excellent point, most people don’t understand the amount of logic developers have to create, then wade back through each day, and how taxing it is mentally. I know some nights I feel like my brain is stuck in an ‘infinite loop’ while I’m trying to sleep. “Most developers take the equivalent of several SAT math portions every day.” Great quote, my friends don’t understand how I can be so drained after work when all I’ve done is soot in front of a computer for nine hours.
Comment by T.J., Thursday, May 15, 2008 @ 12:18 pm