1、MORE JOEL ONSOFTWAREFurther 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 CapacityJoel SpolskyMore Joel on Software: Further Thoughts on Di
2、verse and Occasionally RelatedMatters That Will Prove of Interest to Software Developers, Designers, andManagers, and to Those Who, Whether by Good Fortune or Ill Luck, Workwith Them in Some CapacityCopyright 2008 by Joel SpolskyAll rights reserved. No part of this work may be reproduced or transmit
3、ted in any form or by anymeans, electronic or mechanical, including photocopying, recording, or by any information storageor retrieval system, without the prior written permission of the copyright owner and the publisher.ISBN-13 (paperback): 978-1-4302-0987-4ISBN-13 (electronic): 978-1-4302-0988-1Pr
4、inted and bound in the United States of America 9 8 7 6 5 4 3 2 1Trademarked names may appear in this book. Rather than use a trademark symbol with everyoccurrence of a trademarked name, we use the names only in an editorial fashion and to the benefitof the trademark owner, with no intention of infr
5、ingement of the trademark.Lead Editor: Jeffrey PepperEditorial Board: Clay Andres, Steve Anglin, Ewan Buckingham, Tony Campbell, Gary Cornell,Jonathan Gennick, Matthew Moodie, Joseph Ottinger, Jeffrey Pepper, Frank Pohlmann,Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom WelshAssociate Publishe
6、r | Project Manager: Grace WongSenior Copy Editor: Ami KnoxAssociate Production Director: Kari Brooks-CoponyProduction Manager: Kelly Winquist Compositor: Dina QuanProofreader: April EddyIndexer: Broccoli Information ManagementArtist: April MilneCover Designer: Kurt KramesManufacturing Director: Tom
7、 DebolskiDistributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-nyspringer-, or visit http:/.For information on translations, please contact Apress directly at 2855 Telegraph A
8、venue, Suite600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail ,orvisit http:/.Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotionaluse. eBook versions and licenses are also available for most titles. For more information, referenceour Spe
9、cial Bulk SaleseBook Licensing web page at http:/ information in this book is distributed on an “as is” basis, without warranty. Although everyprecaution has been taken in the preparation of this work, neither the author(s) nor Apress shallhave any liability to any person or entity with respect to a
10、ny loss or damage caused or alleged to becaused directly or indirectly by the information contained in this work. For Jared, CONTENTSJoel, Apress, Blogs, and Blooks . . . . . . . . . . . . . ixAbout the Author. . . . . . . . . . . . . . . . . . . . xiiipart one Managing People .1one My First BillG R
11、eview.3two Finding Great Developers .9three A Field Guide to Developers .21four Three Management Methods (Introduction) .35five The Command and Control Management Method .37six The Econ 101 Management Method .41seven The Identity Management Method .47part two Advice to Potential Programmers .51eight
12、 The Perils of JavaSchools.53nine Talk at Yale .59ten Advice for Computer Science College Students .73part three The Impact of Design .83eleven Font Smoothing, Anti-Aliasing, and SubpixelRendering .85twelve A Game of Inches .89thirteen The Big Picture .93fourteen Choices = Headaches.99fifteen Its No
13、t Just Usability .103sixteen Building Communities with Software .111part four Managing Large Projects.123seventeen Martian Headsets .125eighteen Why Are the Microsoft Office File Formats SoComplicated? (And Some Workarounds) .143nineteen Where Theres Muck, Theres Brass .151part five Programming Advi
14、ce .155twenty Evidence-Based Scheduling.157twenty-one Strategy Letter VI .171twenty-two Can Your Programming Language Do This? .177twenty-three Making Wrong Code Look Wrong.183part six Starting a Software Business .201twenty-four Foreword to Eric Sink on the Business of Software .203twenty-five Fore
15、word to Micro-ISV: From Vision to Reality .207twenty-six Hitting the High Notes .211part seven Running a Software Business .221twenty-seven Bionic Office .223twenty-eight Up the Tata Without a Tutu .227twenty-nine Simplicity.231Contentsvithirty Rub a Dub Dub .235thirty-one Top Twelve Tips for Runnin
16、g a Beta Test .241thirty-two Seven Steps to Remarkable Customer Service . . 245part eight Releasing Software.255thirty-three Picking a Ship Date .257thirty-four Camels and Rubber Duckies .263part nine Revising Software .281thirty-five Five Whys.283thirty-six Set Your Priorities .289Index . . . . . .
17、 . . . . . . . . . . . . . . . . . . . 297viiContentsJOEL, APRESS, BLOGS, ANDBLOOKS“A long time ago in a galaxy far, far away . . .” Well, actually it was latein 2000, during Apresss first full year of operation. We were a tiny littlecomputer book publisher then, with little name recognition, and we
18、planned to publish only a handful of books that yearroughly as manybooks for that whole year as Apress now publishes in a single month. I was learning the hard way about how to be a publisher and proba-bly spending way too much time looking at web sites and programmingthan I should have in response
19、to that. Anyway, one day I came acrossthis web site called Joel on Software, which was run by a guy with strongopinions and an unusual, clever writing style, along with a willingness totake on the conventional wisdom. In particular, he was writing thisongoing series about how bad most user interface
20、s weremostly becauseprogrammers by and large knew, as Joel and I would say, using the sameYiddish-derived NYC vernacular that we both share, “bupkis” aboutwhat users really want. And I, like many, was hooked both by the seriesand the occasional random essay that Joel wrote.And then I had this epipha
21、ny: Im a publisher, I like reading his stuff,why not turn it into a book? I wrote Joel, introduced myself, and thoughhe was initially skeptical, I somehow convinced him that if he wouldturn the user interface essays into a book, people would buy tons ofthem and he and I would make lots and lots of m
22、oney. (Of course, thiswas long before FogBugz became the success it is and Joel started tocommand serious dollars as a coveted speakerbut then we were bothyounger and, yes, a whole lot poorer in those days.)Anyway, Joel added some new content to make the book moreappealing and, I thought, more marke
23、table, and suddenly, Apress had tofigure out how to publish its first full-color book. The result, UserInterface Design for Programmers, officially appeared on June 21, 2001,and is now acknowledged as the first “blook” ever. Somewhat shock-ingly to the computer book industry and me, it became a runa
24、way bestseller by the standard of the times. By the way, it is still in print, still sell-ing very well, and still worth reading. (Although, speaking as yourpublisher and not as your friend, Joel, how bout that revision?)Anyway, some would (now) argue that User Interface Design forProgrammers isnt a
25、 pure blook because the addition of “too much”new material that was not on Joels web site makes it a hybridas I sup-pose befits its pioneering status. But a few years later, Joel on Software was the most popular blog forprogrammers in the world because Joel of course had kept on writingthese amazing
26、ly interesting essaysperhaps the most famous being theclassic “How Microsoft Lost the API War,” which I know literallyturned parts of Microsofts development upside down.And then I had yet another epiphany: lets collect the best of theseessays and publish them with no substantial new content other th
27、an anoccasional foreword where Joel thought it appropriate. And eventhough 98 percent of the material in the book that became Joel onSoftware was available on the Web, and people thought Apress was nutsfor publishing it in late 2004, the book has gone through ten printingsand remains a best-selling
28、book today.Because, it still seems, when it comes to digesting the chocolatetruffle that is the typical Joel essay, print is still more pleasurable formany than a browser.But Joel hasnt stopped thinking hard about what it takes to programwell or hire good programmers, nor has he stopped challenging
29、the con-ventional wisdom with his insights. So I convinced him the time wasright for a sequel that collected the “best of Joel” published since thefirst Joel came out in late 2004.And so you have in your hands the second collection of Joelsinsights, occasional random thoughts, and yes, occasional ra
30、ntsallencased in the sparkling prose that Joel is known for. And even thoughnothing has been done to his writing save for some minor copy editing,you do have the latest “best of Joel” in a very high-contrast form com-pared to your screen or even your Kindle, known now as a “blook.”(And Joel, I obvio
31、usly hope you will enjoy them as much as you did theones in the first collection.)Joel, Apress, Blogs, and BlooksxThis book, like the first, has a somewhat unusual cover and subtitle.This is because Joel and I are both bibliophiles (OK, Joel is a bibliophile;Im a bibliomaniac) and we are both very f
32、ond of the kind of thing theclassic book printers of the 17th and 18th centuries did to liven up theirbooksand their titles. In the case of the first Joel on Software covers,we paid homage to Burtons Anatomy of Melancholy; here we pay hom-age to Hobbess The Leviathan and the famous frontispiece wher
33、e thegiant is made up of lots of individuals, because both Joel and I felt thiswas not a bad metaphor for how programming is done: individualsbuilding something giganticbut individuals are the key.Finally, on a more personal note: In spite of his now substantial fame,Joel remains a down-to-earth kind of guy, or again in our common ver-nacular, a true mensch and someone I am proud to have as a close friend.Gary CornellCofounder, ApressxiJoel, Apress, Blogs, and Blooks