You are previewing MORE JOEL ON SOFTWARE: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.

MORE JOEL ON SOFTWARE: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity

  1. Title Page
  2. Dedication
  3. CONTENTS
  4. JOEL, APRESS, BLOGS, AND BLOOKS
  5. ABOUT THE AUTHOR
  6. part one: Managing People
    1. one: MY FIRST BILLG REVIEW
    2. two: FINDING GREAT DEVELOPERS
      1. Where are all those great developers?
      2. Can I get them anyway?
      3. To the mountain, Jeeves!
      4. Internships
      5. Build the community (*hard)
      6. Employee referrals: may be slippery when wet
      7. A field guide to developers
    3. three: A FIELD GUIDE TO DEVELOPERS
      1. Private offices
      2. The physical workspace
      3. Toys
      4. The social life of developers
      5. What am I working on?
      6. Can I identify with the company?
      7. One thing that programmers don't care about
    4. four: THREE MANAGEMENT METHODS (INTRODUCTION)
    5. five: THE COMMAND AND CONTROL MANAGEMENT METHOD
    6. six: THE ECON 101 MANAGEMENT METHOD
    7. seven: THE IDENTITY MANAGEMENT METHOD
      1. Conclusion
  7. part two: Advice to Potential Programmers
    1. eight: THE PERILS OF JAVASCHOOLS
    2. nine: TALK AT YALE
    3. ten: ADVICE FOR COMPUTER SCIENCE COLLEGE STUDENTS
      1. Learn how to write before graduating
      2. Learn C before graduating
      3. Learn microeconomics before graduating
      4. Don't blow off non-CS classes just because they're boring
      5. Take programming-intensive courses
      6. Stop worrying about all the jobs going to India
      7. No matter what you do, get a good summer internship
  8. part three: The Impact of Design
    1. eleven: FONT SMOOTHING, ANTI-ALIASING, AND SUBPIXEL RENDERING
    2. twelve: A GAME OF INCHES
    3. thirteen: THE BIG PICTURE
    4. fourteen: CHOICES = HEADACHES
    5. fifteen: IT'S NOT JUST USABILITY
      1. Some examples
      2. Designing social software
      3. Marketing social interfaces
      4. A new field
    6. sixteen: BUILDING COMMUNITIES WITH SOFTWARE
  9. part four: MANAGING LARGE PROJECTS
    1. seventeen: MARTIAN HEADSETS
    2. eighteen: WHY ARE THE MICROSOFT OFFICE FILE FORMATS SO COMPLICATED? (AND SOME WORKAROUNDS)
    3. nineteen: WHERE THERE'S MUCK, THERE'S BRASS
  10. part five: Programming Advice
    1. twenty: EVIDENCE-BASED SCHEDULING
      1. 1. Break 'er down
      2. 2. Track elapsed time
      3. 3. Simulate the future
      4. Obsessive-compulsive disorder not required
      5. 4. Manage your projects actively
      6. Scope creep
      7. While we're at it
      8. Summary
      9. P.S.
    2. twenty-one: STRATEGY LETTER VI
      1. Limited-memory, limited-CPU environments
      2. A portable programming language
      3. High interactivity and UI standards
    3. twenty-two: CAN YOUR PROGRAMMING LANGUAGE DO THIS?
    4. twenty-three: MAKING WRONG CODE LOOK WRONG
      1. An example
      2. A general rule
      3. I'm Hungary
      4. More reading
  11. part six: Starting a Software Business
    1. twenty-four: FOREWORD TO ERIC SINK ON THE BUSINESS OF SOFTWARE
    2. twenty-five: FOREWORD TO MICRO-ISV: FROM VISION TO REALITY
    3. twenty-six: HITTING THE HIGH NOTES
      1. But wait, there's more!
      2. But wait, there's even more!
  12. part seven: Running a Software Business
    1. twenty-seven: BIONIC OFFICE
      1. Bottom line it for me
    2. twenty-eight: UP THE TATA WITHOUT A TUTU
    3. twenty-nine: SIMPLICITY
    4. thirty: RUB A DUB DUB
    5. thirty-one: TOP TWELVE TIPS FOR RUNNING A BETA TEST
    6. thirty-two: SEVEN STEPS TO REMARKABLE CUSTOMER SERVICE
      1. 1. Fix everything two ways
      2. 2. Suggest blowing out the dust
      3. 3. Make customers into fans
      4. 4. Take the blame
      5. 5. Memorize awkward phrases
      6. 6. Practice puppetry
      7. 7. Greed will get you nowhere
      8. 8. (Bonus!) Give customer service people a career path
  13. part eight: Releasing Software
    1. thirty-three: PICKING A SHIP DATE
    2. thirty-four: CAMELS AND RUBBER DUCKIES
      1. Some economic theory
  14. part nine: Revising Software
    1. thirty-five: FIVE WHYS
    2. thirty-six: SET YOUR PRIORITIES
  15. INDEX
O'Reilly logo

twenty-threeMAKING WRONG CODE LOOKWRONG

WEDNESDAY, MAY 11, 2005

Way back in September 1983, I started my first real job, working at Oranim, a big bread factory in Israel that made something like 100,000 loaves of bread every night in six giant ovens the size of aircraft carriers.

The first time I walked into the bakery I couldn't believe what a mess it was. The sides of the ovens were yellowing, machines were rusting, there was grease everywhere.

"Is it always this messy?" I asked.

"What? What are you talking about?" the manager said. "We just finished cleaning. This is the cleanest it's been in weeks."

Oh boy.

It took me a couple of months of cleaning the bakery every morning before I realized what they meant. In the bakery, clean meant no ...

The best content for your career. Discover unlimited learning on demand for around $1/day.