You are previewing I. M. Wright's "Hard Code".
O'Reilly logo
I. M. Wright's "Hard Code"

Book Description

From the popular I. M. Wrights Hard Code column at Microsoft, this book presents a series of thematically-arranged essays. It features provocative insights about development processes that can spark the imaginationand help simulate productivity.

Table of Contents

  1. Best Practices: I. M. Wright’s "Hard Code"
  2. A Note Regarding Supplemental Files
  3. Reader Acclaim for I. M. Wright’s "Hard Code" Column
  4. Foreword
  5. Introduction
    1. How This Book Happened
    2. Who This Book Is For
    3. How This Book Is Organized
    4. System Requirements
    5. How Microsoft Is Organized
    6. Sample Tools and Documents
    7. Support for This Book
      1. Questions and Comments
  6. 1. Project Mismanagement
    1. June 1, 2001: "Dev schedules, flying pigs, and other fantasies"
      1. Richter-scale estimating
      2. Risk management
      3. The customer wins
    2. October 1, 2001: "Pushing the envelopes: Continued contention over dev schedules"
      1. Software engineering is clearly ambiguous
      2. Believe half of what you see and none of what you hear
      3. Motivation: It’s not just pizza and beer
      4. Sinking on a date
    3. May 1, 2002: "Are we having fun yet? The joy of triage."
      1. War is hell
      2. It’s nothing personal
      3. Five golden rules of triage
      4. The devil is in the details
      5. It’s hard to let go, isn’t it?
      6. Take care of the little things
    4. December 1, 2004: "Marching to death"
      1. Stabs in the dark
      2. A litany of failure
      3. The turning point
      4. The road less traveled
    5. October 1, 2005: "To tell the truth"
      1. Suffer from delusions
      2. Put a fork in me
      3. Give me a straight answer
      4. Lipstick on a pig
      5. Look at all these rumors
      6. I want the truth
  7. 2. Process Improvement, Sans Magic
    1. September 2, 2002: "Six Sigma? Oh please!"
      1. Egads! What sorcery is this?!
      2. Calling in the cavalry
      3. Creating order out of chaos
    2. October 1, 2004: "Lean: More than good pastrami"
      1. All things in moderation
      2. Waste not, want not
      3. Overproduction
      4. Go deep
      5. Transportation
      6. Motion
      7. Waiting
      8. Overprocessing
      9. Inventory
      10. Defects
      11. Symbiosis
    3. April 1, 2005: "Customer dissatisfaction"
      1. Ignorance is bliss
      2. Too much, too late
      3. Agile delusions
      4. Retracing your steps
      5. There’s more where that came from
      6. The right tool for the job
      7. Duct tape and baling wire
      8. Customer satisfaction
    4. March 1, 2006: "The Agile bullet"
      1. Enemy of the truth
      2. Get the rules straightened out
      3. Ready for something different?
      4. Let the man speak
      5. You complete me
      6. A bit extreme
      7. Are you ready for some rugby!
      8. The more you know
  8. 3. Inefficiency Eradicated
    1. July 1, 2001: "Late specs: Fact of life or genetic defect?"
      1. For every change, churn, churn, churn
      2. Hallway meetings
      3. Committee meetings
      4. Spec change requests
      5. Prevention is the best cure
    2. June 1, 2002: "Idle hands"
      1. Baby did a bad bad thing
      2. Tell me what I must do
      3. Waste not, want not
    3. June 1, 2004: "The day we met"
      1. Why are we here?
      2. What are we trying to do?
      3. Why are they here?
      4. Why am I hearing this now?
      5. What are the next steps?
    4. July 1, 2006: "Stop writing specs, co-located feature crews"
      1. Have you lost your mind?
      2. Therein lies a dilemma
      3. Special needs
      4. I don’t recall
      5. Stick to one thing
      6. You ready?
    5. February 1, 2007: "Bad specs: Who is to blame?"
      1. It’s a setup
      2. Communication breakdown
      3. Keep it simple and easy
      4. Make it robust
      5. Get feedback
      6. Check that quality is built in
      7. What’s the difference?
  9. 4. Cross Disciplines
    1. April 1, 2002: "The modern odd couple? Dev and Test"
      1. How do I love thee? Let me count the ways
      2. Necessary evil or priceless partner?
      3. A man’s got to know his limitations
      4. You complete me
    2. July 1, 2004: "Feeling testy—The role of testers"
      1. Advanced protection
      2. A change will do you good
      3. The twilight zone
      4. Commander Data
      5. It’s quite cool—I assure you
    3. May 1, 2005: "Fuzzy logic—The liberal arts"
      1. It takes all kinds
      2. They’re not like us
      3. Getting past security
      4. Making things happen
      5. Better together
    4. November 1, 2005: "Undisciplined—What’s so special about specialization?"
      1. Days of future past
      2. Take it to the limit
      3. Football is a science
      4. The space between
      5. Stuck in the middle with you
  10. 5. Software Quality—More Than a Dream
    1. March 1, 2002: "Are you secure about your security?"
      1. Beware the swinging pendulum
      2. Do the right thing
      3. You’re only as secure as your weakest link
      4. Lead, follow, or get out of the way
    2. November 1, 2002: "Where’s the beef? Why we need quality"
      1. Things have changed
      2. Good enough isn’t
      3. Hard choices
      4. Time enough at last
      5. Checking it twice
      6. Physician, heal thyself
      7. Step by step
      8. Too much to ask?
    3. April 1, 2004: "A software odyssey—From craft to engineering"
      1. Craft a desk, engineer a car
      2. It’s what you know
      3. To thine own self be true
      4. What’s in a number
      5. It’s their habits that separate them
      6. Think big to get small
      7. Good to great
    4. July 1, 2005: "Review this—Inspections"
      1. A bad combination
      2. The perfect storm
      3. Who’s in charge?
      4. So, what do you think?
      5. It’s just a formality
      6. Are you ready, kids?
      7. Checking it twice
      8. Magical merge meeting
      9. Tricks of the trade
      10. Getting it right
    5. October 1, 2006: "Bold predictions of quality"
      1. Enigma? I don’t think so
      2. Twins of evil
      3. The usual suspects
      4. You’re gonna love it
      5. Quit fooling around
      6. Quality is no accident
  11. 6. Software Design If We Have Time
    1. September 1, 2001: "A tragedy of error handling"
      1. The horror, the horror
      2. Taking exception
      3. Don’t lose it, use it!
    2. February 1, 2002: "Too many cooks spoil the broth—Sole authority"
      1. A picture is worth a thousand words
      2. Does anyone really know what time it is?
      3. There can be only one
      4. Everything is connected to everything else
    3. May 1, 2004: "Resolved by design"
      1. What is good enough?
      2. Design complete
      3. Details, details
      4. Show me what you’re made of
      5. Mind the gap
      6. Your recipe for success
    4. February 1, 2006: "The other side of quality—Designers and architects"
      1. You’ll have to do better than that
      2. A change would do you good
      3. The man just got it wrong
      4. Doing it well
      5. Next time, try sculpturing
      6. Just the right tool
      7. Beyond these walls
    5. August 1, 2006: "Blessed isolation—Better design"
      1. Breaking up is hard to do
      2. Doing it well
      3. There is no "I" in team
      4. Step by step
      5. Dogs and cats living together
  12. 7. Adventures in Career Development
    1. December 1, 2001: "When the journey is the destination"
      1. A man’s got to know his limitations
      2. Vesting but not resting
      3. I wish they would only take me as I am
      4. We’re in this together
    2. October 1, 2002: "Life isn’t fair—The review curve"
      1. I’m not going to take this anymore
      2. Knowledge is power
      3. Taking care of business
      4. Go ahead, make my day
      5. Reach out and touch someone
      6. Got lemons? Make lemonade
      7. Change your tune
      8. The one behind the wheel
    3. November 1, 2006: "Roles on the career stage"
      1. One, in time, plays many parts
      2. Stage right
      3. I aspire, sir
      4. Overqualified
      5. I’m special
      6. There can be only one
      7. What do you want to be?
    4. May 1, 2007: "Get yourself connected"
      1. It’s who you know
      2. I use habit and routine
      3. Aren’t you curious?
      4. You have our gratitude
      5. I’ll get back to you
      6. Welcome to the world
  13. 8. Personal Bug Fixing
    1. December 1, 2002: "My way or the highway—Negotiation"
      1. An offer you can’t refuse
      2. Grow up
      3. A shadow and a threat have been growing in my mind
      4. Don’t shoot the messenger
      5. So happy together
    2. February 1, 2005: "Better learn life balance"
      1. Balance is key
      2. Words without action
      3. I can’t even balance my checkbook
      4. Balance good...everything good
    3. June 1, 2005: "Time enough"
      1. Give it to me straight
      2. Pardon the interruption
      3. Find your happy place
      4. None of us is as dumb as all of us
      5. A burden we must share
      6. Tell me what I must do
      7. He’s just a kid
      8. You deserve a break
      9. Everything’s in order here
      10. Keeping it real
      11. Large and in charge
    4. August 1, 2005: "Controlling your boss for fun and profit"
      1. I have no hand
      2. Know the enemy and know yourself
      3. They succeed in adapting themselves
      4. Selling water to fish
      5. Eyes on the prize
      6. Engage
      7. Dare to dream
    5. April 1, 2006: "You talking to me? Basic communication"
      1. Think about me
      2. Tell me what you want
      3. You want it when?
      4. Got a short little span of attention
      5. Are we done?
    6. March 1, 2007: "More than open and honest"
      1. That’s no excuse
      2. I’ll be honest with you
      3. It’s not easy
      4. They seem to have an open door policy
      5. No place to hide
      6. Not what I had in mind
      7. Getting it right
  14. 9. Being a Manager, and Yet Not Evil Incarnate
    1. February 1, 2003: "More than a number—Productivity"
      1. Careful what you wish for
      2. Playing a role
      3. The makings of a great dev
      4. You be the judge
    2. September 1, 2004: "Out of the interview loop"
      1. Blaming the help
      2. Ninety percent preparation
      3. That is the question
      4. The whiteboard compiler
      5. Prepping the recruiter
      6. Prepping the interviewers (again)
      7. A gentle reminder
      8. The last puzzle piece
    3. November 1, 2004: "The toughest job—Poor performers"
      1. What did you expect?
      2. Bite the bullet
      3. Seeking professional help
      4. Failure is not an option
      5. The goal is success
      6. Ask and you shall receive
      7. You can’t always get what you want
    4. September 1, 2005: "Go with the flow—Retention and turnover"
      1. I’ll just walk the earth
      2. Nice dam, huh?
      3. Flowing like a river
      4. Fresh meat
      5. Sharing is caring
      6. Room to grow
      7. I must be traveling
      8. Surrender to the flow
    5. December 1, 2005: "I can manage"
      1. The gift that keeps on giving
      2. Good enough for me
      3. Easy does it
      4. I want to work
      5. I’m not an object
      6. Good to great
      7. I serve
    6. May 1, 2006: "Beyond comparison—Dysfunctional teams"
      1. Trying to pick a fight
      2. This is not a competition
      3. I’ll give you a hint
      4. One for all
  15. 10. Microsoft, You Gotta Love It
    1. November 1, 2001: "How I learned to stop worrying and love reorgs"
      1. Down the Tower of Babel it goes
      2. Life in hell
      3. The road less traveled
      4. Part of the problem or part of the solution?
    2. March 1, 2005: "Is your PUM a bum?"
      1. The man with a plan
      2. I can’t wait to operate
      3. The devil is in the details
      4. The rules of the road
      5. Back on course
    3. September 1, 2006: "It’s good to be the King of Windows"
      1. Have you any last request?
      2. Prepare the ship
      3. Set a course
      4. Engage
      5. Navigation
      6. Accountability
      7. Windows, the next generation
    4. December 1, 2006: "Google: Serious threat or poor spelling?"
      1. They falter, we flourish
      2. Failure by design
      3. Smart people, smart clients
      4. Staying vigilant
      5. Staying out in front
    5. April 1, 2007: "Mid-life crisis"
      1. You’ve changed
      2. Just another tricky day
      3. Leave little to chance
      4. I don’t think the boy can handle it
      5. Not getting any younger
      6. Don’t panic
      7. Nobody’s perfect
  16. Glossary
  17. A. About the Author
  18. Index
  19. About the Author
  20. Copyright