NEWSLETTERS
 

CIO.com updates, insights and advice on technology, management and your career.

 
 
 
SUBSCRIBE TO CIO
 
Are you involved in setting the direction for your company's IT budget or strategy?

Apply today for a FREE subscription to CIO Magazine!

 


Sun, Aug 17, 2008 19:01 EDT

Fighting the Superstitions of Software Development: Questioning the Assumptions

Topic: Personal Management

Blog: Developer Wisdom

Current Rating: 5 Comments: 8

We fix the problems we know to look for. It's the assumptions left unexamined that are apt to bite you. Which superstitions are you carrying around that need to be re-examined?

One of the wisest, most brilliant programmers I ever met had a team lead habit I loved. If you made a technical assertion, Mike would ask, "Is that true?" Mike didn't ask the question to imply you were wrong; he asked, "Is that true?" to challenge your assumptions and to determine upon what data you drew your conclusions. If you said, "Yes, that's right. Here's why..." and made it clear your statement came from somewhere, he'd be satisfied, and you'd earn his respect.

If the programmer stuttered, "Um, I guess it's true," instead, more often than not the programmer headed back to his office to find out the real story. Or Mike would help the developer re-examine the assumptions being built into the software. If the assumptions made sense, fine. If not, it was an opportunity to write better code.

That wasn't just a technically interesting exercise. At the time I knew him, Mike and his team were building a compiler to generate the fastest executables possible. Nanoseconds counted. And with Mike at the helm, one particular math routine went from average performance to outstanding to... zero cycles. Because the "Is that right? Is that true?" question process eventually made the team realize that they didn't need the routine at all. Now that's code optimization.

At the other extreme, let's say you want to "uniqueify" an array in JavaScript (that is, find all the unique values in an array). You'll find a bunch of code samples with a quick online search. Most of them look very similar to one another, and they take a dumb, brute-force approach of walking the array multiple times. Bad performance, no biscuit. But hey, that's how everyone does it, right?

If you handed that code to an expert programmer like Mike, he'd ask, "Is that the best solution?" Well, no, maybe not. There's a way to do it that walks the array just once, if you take the time to think about it.

At the Schindler bitranch, we call these "superstitions:" information accepted on faith, without personal knowledge or examination. People pass along "everyone knows" data without questioning it, and others repeat the superstition as though it's undeniably true. Confidence isn't knowledge; in fact, confidence can prevent knowledge and innovation from happening, because an unquestioned belief means you never measure, never test, never look at alternatives.

My example above is about application performance, but this questioning-method applies to everything a developer does, from project estimation to designing for end-user usability. And it applies to every field! Stained glass artists accept as superstition that "lead is stronger than copper," but has anyone tested this assertion? Is it true? Some early experiments imply copper is equally strong. Woodworkers nod along when someone else mentions-in-passing which type of joint "everyone knows" is strongest; it wasn't until a couple of years ago that one magazine actually tested different kinds of joints for strength (with surprising results).

Superstitions are strongest (and most dangerous) when these "everyone knows" data points are hard to confirm or deny (such as most discussions of search engine optimization, since Google ain't talkin') and where "proof" is possible only through data triangulation. It's worse for developers and people in IT, I think, because things that were true a few years ago no longer are. In addition to questioning our own assumptions (or, as politely as

You do not have flash or javascript support.
Average (1 vote)
5
 
 
Mon, Aug 18, 2008 5:48 EDT
Anonymous user
Posted by: Bernd Eckenfels
Rating: 80

Thank you fot that Essay. I like the advice! Maybe one can use another less offensive question like "can you Explain why" or "thats an interesting fact, where does it come from". However if the team is used to "is that true" questions that can be a totally new culture everybody accepts.

 
Mon, Aug 18, 2008 15:14 EDT
Anonymous user
Posted by: Jacob
Rating: 10

That's good advice, but be aware that there's a cost to questioning assumptions as well. It's one thing for Mike, as the man in charge, to question subordinates, it's quite another if you want to question dogma in public--like if the benefits of TDD are true.

 
Mon, Aug 18, 2008 17:40 EDT
Posted by: Esther Schindler
Rating:

After all, that's what I get paid for -- tilting at other people's windmills!

 
Mon, Aug 18, 2008 19:22 EDT
Anonymous user
Posted by: Tim (@Twalk) Walker
Rating:

Very, VERY good points here, Esther, with applications far beyond programming. Some of the greatest breakthroughs in science -- not to mention everyday wins in business -- arise from this kind of inquiry. It's hard to get out from under our assumptions, bit so very worthwhile.

 
Wed, Aug 20, 2008 12:19 EDT
Anonymous user
Posted by: Get Over Yourself
Rating:

Is it true that we should be as polite as possible?

What is the problem about being straightforward and assertive in testing assumptions?

If a professional cannot dispassionately accept examination of their work, then they deserve to feel embarrassed or whatever when their assumptions are challenged.

It seems that the real trick is not to focus on the comfort of the individual, but on building team cohesion. If a member is convinced of the team's fundamental acceptance, then superstition assertions become opportunities for team growth; the team learns when fundamental truths are proved, the individual learns by having blind spots exposed.

About this Blog

Helping developers use technology to solve business problems every day.

Start a Conversation
Click to post

Got something to say? We want to hear it! Click the Post button to get started. GO»

EXPERT ADVICE
See our roster of experts.

Advice & Opinion from more than 108 of IT's most insightful thinkers.

  PARTNERS       WEBCASTS    
 

Preparing for the Next Cyber Attack

Ensure you are up-to-speed on the latest security technologies available to keep your network safe in this Executive Guide. Get a thorough assessment of the corporate security threat landscape. Protect your network with data leakage protection, NAC and other technologies explained in this report.

Sponsored by Qwest  Read this Executive Guide »

 

Cloud Building: 8 Ingredients for Internal Clouds

Cloud computing: a fundamentally new way to deploy IT services and functions cost-effectively and quickly. Learn how the VMware vCloud initiative dramatically improves how consumers access their information and experience applications as well as the 8 ingredients to get you going.

Sponsored by VMWare  Read this White Paper »

 

Investing in Business Analytics Technology

You're thinking now is the time to take the plunge into business analytics, but you still have some unanswered questions. This research summary addresses the most common questions and concerns surrounding the successful launch of a business analytics initiative. It also includes real-world examples of organizations already getting return on their investment.

Sponsored by SAS  Read this White Paper »

Resource Alerts

Get instant email notifications by topic when white papers, webcasts, and case studies are added to our library.

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

Improving Transparency and Accuracy in IT Cross Charging

During this Webcast you'll learn how KBC Group implemented SAP BusinessObjects Profitability and Cost Management and realized many benefits.   View Now »

 

Cost Savings and Risk Reduction with Effective Systems Management

Join us and see how Novell can help you respond to today's economic challenges by increasing productivity, reducing costs and aligning IT initiatives with overall business goals.  View Now »

 

Capitalize on Your SAP Content

Learn ways to improve your content management by viewing these Open Text webinars today.  View Now »

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

 
NEWSLETTER

Sign-up for the Blogs & Discussion Newsletter

 
FEATURED SPONSORS
 
 
 
SPONSORED LINKS
 

Introducing the new HP ProLiant G6 server family

Accenture: Outsourcing for Competitive Advantage. More...

Better spam protection with Postini for just $1/user/mo

Introducing the new HP ProLiant G6 server family

infoBOOM! - The Mid-Sized Company CIO's Exclusive Community

Accenture IT Consulting: Logical meets technological. More . . .

The Fraudster Economy Model: Operating a Business in the Underground

Trade in your old laser printer and get up to $1000 back!

Taking the Service Desk to the Next Level

Revolutionizing Enterprise Application Deployment

Why Data Loss is Increasing--and What You Can Do About It

Data Loss Prevention: A Better Way to Approach Security

Learn how to managing client systems in the enterprise.

Build a High-Performance Open Web Platform

Mid-Sized Company CIO Community: infoBOOM!

Enterprise PBX Comparison Guide

Getting Value from Outdated Networking Equipment

Losing Ground: 2009 TMT Global Security Survey

Stop Application Fraud at the Source with Device Reputation

Learn about the VMware vSphere (TM) & Intel (R) Xeon (R) Processor 5500 Series

Learn how a virtualized enterprise can help your company reduce costs

Why Isn't Server Virtualization Saving Us More?

Learn how to save 30% through project & portfolio management.

How Open Source is Changing the Face of Enterprise Software

8 Key Ingredients to Building an Internal Cloud

Accenture IT Consulting: Enabling high performance. More...

Top Five CIO Challenges

Insight makes it easy to spend your Microsoft subsidy check.

Five minute business analytics assessment. Immediate results.

Dangerous Collaboration Practices: 5 Ways IT Can Minimize Risk

Accenture: Outsourcing for uncertain times. Click to learn more.

The Case for Investing in Business Analytics Technology. Read white paper.

Live Webinar: Applying Business Analytics. Click here to learn more

Seven Ways ITIL Can Help You in an Economic Downturn

Developing A Dynamic, Real-Time IT Infrastructure

Maximizing the Business Value of the PC Infrastructure

Communications and Collaboration Needs at Business Organizations

Using Open Source to Deploy Web Applications

Cloud Computing: Read about VMware's compelling vision & set of products

Enterprise PBX Buyer's Guide

Secondary Market Primer: Your Network at Half Price

How Interactive Viewer Reduces the Effort to Meet Visualization Requirements

Top-line Performance that's Bottom-line Efficient

White Paper: 8 Key Ingredients to Building an Internal Cloud

Read about virtualization and consolidation effort best practices

Building the Virtualized Enterprise with VMware Infrastructure

The Global Marketplace Today: Strategies for Tough Times

Top 10 Business and IT Drivers for the Wealth Management Sector

5 Steps to Automating Accounts Payable

Bottom-Line Benefits of Virtualization