ing - みる会図書館


検索対象: THE BEST SOFTWARE WRITINGⅠ
56件見つかりました。

1. THE BEST SOFTWARE WRITINGⅠ

96 THE BEST SOFTWARE 、Ⅳ・ RITING I (THIS ESSAY IS DERIVED FROM A KEYNOTE TALK AT OSCON 2004. ) few months ago I finished a new b00k, and in reviews I keep notic- ing words like "provocative" and "controversial. ' ' TO say nothing Of "idiotic. ' ' I didn't mean tO make the bOOk controversial. I was trying tO make it efficient. I didn't want tO waste people's time telling them things they already knew. lt's more efficient just t0 give them the diffs. 2 But I suppose that's bound t0 yield an alarming b00k. Edisons There's no controversy about which idea is most controversial: the sug- gestion that variation in wealth might not be as big a problem as we think. I didn't say in the book that variation in wealth was in itself a good thing. I said in some situations it might be a sign 0f good things. A throb- bing headache is not a good thing, but it can be a sign 0f a good thing—for example, that you're recovering consclousness after being hit on the head. VariatIon in wealth can be a S1gn Of variation in productivity. ()n a society 0f one, they're identical.) And that is almost certainly a good thing: if your society has no variation in productivity, lt's probably not because everyone is Thomas Edison. lt's probably because you have no Thomas Edisons. ln a low-tech SOCiety you don't see much variation in productivity. If you have a tribe Of nomads collecting sticks for a fire, hOW much more productive is the best stick gatherer going tO be than the worst? A factor of two ~ Whereas when you hand people a complex toollike a computer, the varlatlon in what they can dO with it is enormous. 2. 、 'Diffs" are the lines of code that have changed from one version of a program to the next. ー E イ .

2. THE BEST SOFTWARE WRITINGⅠ

ERIC SINK 255 I wrote an article on this topic on my weblog, from which I quote: For the purpose Of this article, a programmer" IS someone whO does noth- ing but code new features and [if you're lucky] fix bugs. They don't write specs. They don't write automated test cases. They don't help keep the aut0- mated build system up to date. They don't help customers work out tough problems. They don't help write documentation. They don't help with test- ing. They don't even read code. Allthey do is write new code. ln a small ISV, you don't want any 0f these people in your company. lnstead of "programmers" (people that specialize in writing code), what you need are 、、 developers" (people wh0 will contribute in multiple ways t0 make the product successful). 9 What does the usual advice really mean? Exactly what attribute do I measure tO determine if the candidate is very best" ~ Most of the time, the usual advice is understood t0 apply only t0 cod- ing skills. lt really is true that the best coders are gifted with an aptitude. They understand things that generally cannot be taught. They are per- haps 10 times more productive than average coders. lt obviously makes good sense t0 try t0 find one 0f these 。。 1 OX" individuals, especially in larger envrronments Where specialists like pure COders can fit in 、 vell. But in a small ISV, we need versatility. We often need the people on our teams tO wear multiple hats, not Just write COde. ln these cases, it is often very important t0 100k for the best developer, and that person is not necessarily the best programmer. Education Good people with a SOlid education in the fundamentals Often turn out tO be the "very best" developers. The issue of educatlon is quite controversial in the software field. Right now, somewhere on the lnternet, there is a discussion board or a chat r00n1 where people are arguing about hOW much education IS 9. See http://software.ericsink.com/N0 Programmers. html.

3. THE BEST SOFTWARE WRITINGⅠ

ABOUT THE AUTHORS Xi Kevin Cheng is an independent user experience specialist and global nomad. He hOldS a master's in human-computer interaction and ergonomics from the University College London lnteraction Centre (UCLIC) and has spoken at UXNet, UPA, and ACM-SIGCHI. He is the cofounder and cocreator Of OK/Cancel (www.ok-cancel.com/, an online site believed to be in the top five of usability and HCI-themed comrcs. Tom Chi has a Masters Degree in Electrical Engineering, which proba- bly means he's qualified neither t0 talk about HCI nor t0 write any sort of funny thing. Yet, week after week he dreams the impossible dream at ok-cancel. com. AS for credentials, there is the small matter Of having designed UI features for two releases 0f Microsoft Out100k, as well as his dark history of consulting for F500 clients—but these are topics that civilized people shouldn't speak of. Shhh. Cory Doctorow (craphound.com/ is European Affairs Coordinator for the Electronic Frontier Foundation (www.eff.0 て g ) , a member-supported non- profit group that works t0 uphold civil liberties values in technology law, policy, and standards. He represents EFF'S interests at various standards bOdies and consortia, and at the United Nations' World lntellectual Property Organization. Doctorow is alSO a prolific writer who appears on the mastheads at Wired, Ma たら and PO 々 Sc 〃 magazines, and whose science fiction novels have won the Campbell, Sunburst, and Locus Awards. His novel DO ル〃 4 〃 d 〇舫ビ Magic Kingdom is a finalist for this year's Nebula Award. He is the coeditor of the popular weblog B0ing B0ing (boingboing. net). Born in Canada, he now lives in London, England. Bruce Eckel ( w鼎.BruceEcke1.com/ is the author of T ん〃た g (Prentice Hall, 1998 , 2nd edition, 2000 , 3rd edition, 2003 , 4th edition, 2005 ) , the Ha 〃ホ - 〇〃 Java 立川ⅲ CD-ROM (available on the website), T ん〃ん〃 g C + + ()H 1995 ; 2nd edition 2000 , Volume 2 , with Chuck Allison, 2003 ) , and C + + 〇 (Osborne/McGraw-Hill, 1993 ) , among Others. given hundreds Of presentations throughout the world, published over 150 articles in numerous magazines, was a found- ing member 0f the ANSI/ISO C + + committee, and speaks regularly at conferences. He provides public and private semmars and design con- sulting in C + + and Java.

4. THE BEST SOFTWARE WRITINGⅠ

138 THE BEST SOFTWARE WRITING I right because when we ship a new verslon Of the script engines, hundreds of millions of people will exercise that code, and tens of millions will program agarnst lt. Any new feature that does not serve a large percentage Of those users IS essentially 5 4 〃〃 g valuable resources that could be spent implement- ing features, fixing bugs, or looking for security vulnerabilities that d0 impact the lives 0f millions 0f people.

5. THE BEST SOFTWARE WRITINGⅠ

PAUL FORD 93 Me, I figure I can keep working in this vein (until I go broke), suffer- ing from the same navel-gazing as everyone else, figuring out hOW tO broadcast my signal without getting t00 bogged down in the machinery for the broadcasting, without whipping myself over my own ignorance more than a few hours a day. l'll always be stupid, given the scope of human thought, but I can try to avoid making a botched job of it, and it's not like I could ever stop with so many things to figure through. Like the fool says: you know, it can be beautiful.

6. THE BEST SOFTWARE WRITINGⅠ

248 THE BEST SOFTWARE ・ WRITING I 要中 roo d 舫ビ川 4 れ d 舫耘川〃ァ 4 れ d ル舫 e 川 3000 川″ across the co 〃厩 get 舫ビ川曜 0 黻ルア 0 〃 , 4 れ d ルビを 4 立 立 ar 〃〃 g get 4 〃 s d ー 0 5 じあ 00Z , 4 〃 d 舫 e 耘 5 々 0 〃 s どな ~ れルビわ OS - / 4g4 , 4 〃 d ル ' あ 4 ⅵれ g 〃 0 〃わ川 4 た g どれホ川な 4 〃 d ) 0 〃 co d が〃レ e ル″わア 0 〃 r 既ア 0 ″ d ル e ル鑽われ g 川ど 4 90 % 々 rog 川川立 d 0 ー 4 100 % 々 rogra 川川 M 〃訪な〃 0 れ 0 ん舫ど wrong 叩ル舫ビを立々ー Ed. everal months ago, I wrote an MSDN column entitled "Make More Mistakes. " 2 This column was one of the most popular things I have ever 、 vritten. People seemed tO really enJOY reading about my screw-ups. As human beings, we are fascinated by the failures 0f others. ln the many emails I received about that column, one Of the most common questions was why I didn't list any hiring mistakes. "Eric, is it possible that you have simply never made a mistake in a hiring decision? ' Au CO 〃〃 4 耘ら l've made plenty. But those are stories I would rather not tell. lt is one thing for me tO air my own idiocy ln public, but quite another thing for me tO recount tales that might hurt someone else. Nonetheless, hiring decisions are tricky, and I think l've learned enough t0 say a few worthwhile things on this topic. I'II start with four general guidelines for how to proceed with a hir- ing decision. After that, I'II finish the article by saying a few things about the spe- cific challenges 0f hiring software developers. 1 . HireAfterthe Need, Not Before The first step in hiring is to make sure that you actually need to be hir- ing. For small independent software vendors (ISVs), my rule is: don't fill a position until 4 〃ど the need for that position is painfully clear. 2. See http://software.ericsink.com/bos/Make More Mistakes. html.

7. THE BEST SOFTWARE WRITINGⅠ

212 THE BEST SOFTWARE WRITING I software design is shOt through with computer-as-box assumptions, while our actual behavior is closer tO computer-as-door, treating the device as an entrance tO a SOCial space. We have grown quite adept at designing interfaces and interactions between people and machines, but our socialtools—the people-to-people software the users actually use most often—remain badly mis-fit tO their task. Social interactions are far more complex and unpredictable than human/computer interaction, and that unpredictability defeats classic user-centric design. AS a result, t001S used daily by tens Of millions are either ignored as design challenges, or treated as if the only possible site Of improvement is the user-to-tool interface. The design gap between computer-as-box and computer-as-door per- sists because Of a diminished conception Of the user. The user Of a piece Of social software is not Just a collection Of individuals but a group. lndividual users take on roles that only make sense in groups: leader, fol- lower, peacemaker, process enforcer, and SO on. There are alSO behaviors that can only occur in groups, from consensus building tO social climb- ing. And yet, despite these obvious differences between personal and social behaviors, we have very little design practice that treats the group as an entity t0 be designed for. There is enormous value tO be gotten in clOSing that gap, and it doesn't require complicated new tOOls. lt Just requires new ways Of 100k - ing at 01d problems. lndeed, much Of the most important recent work in social software has been technically simple but socially complex. Learning 伝 om Flame Wars Mailing lists were the first widely available piece of social software. (The PLATO system beat mailing lists by a decade, but had a limited user base. ) Mailing lists were also the first widely analyzed virtual communi- ties. And for roughly 30 years, almost any description of mailing lists of any length has mentioned flaming, the tendency oflist members to forgo standards Of public decorum when attemptlng tO communrcate with some ignorant moron whose tO stupid tO know hOW t00 spell and deserves to DIE, die a PAINFUL DEATH, you PINKO SCUMBAG! ! !

8. THE BEST SOFTWARE WRITINGⅠ

148 THE BEST SOFTWARE WRITING I was going abysmally. The Microsoft monopoly was ⅲ full force . . they bundled their first version of the Office suite and were underpricing the competition. G00d-bye Quattro Pro, Paradox, and dBASE. After years Of expansion and a move intO a (still) amazing campus, BorIand was about to implode and I was aware of this. That's the first step tO get yourself unscrewed in this situation . detection . ing the ship is sinking even though those execs contlnue tO sound eternally optimistic in those all-hands meetings. Of course they sound positive; if the rank and file universally believe the sky is falling, those all-hands meetings will become utterly devoid of hands. What'd I do? I jumped ship. I took my engineering title and moved up the peninsula t0 a now-defunct database company. ProbIem was, the new company was in much worse shape than Borland having imploded about a year earlier. I didn't know this until my hiring manager, who had presented a portrait Of enthusiasm and ViSion, was gone one month after I started. I was suddenly debugging build systems and drinking really bad coffee with a bunch of chronically depressed database developers. Ooops. lt's obvious, but there are tWO parts tO getting descrewed when your company sucks. First, detection. There are people at Borland who, to this very day, are still bitching about that company the same way they were over a decade ago. Let's call them faux-Bitchers because for all their bitching, they're never going to do anything about it because bitch- ing, apparently, is enough. You are not a faux-Bitcher because you're still with me. You want to dO something about your screwedness. You want to make an upwardly 1 れ ()bile move. Y()LI 、 tO go somewhere 、 you re A. Getting a ralse B. Getting a promotron C. Getting tO do something that interests you D. ・ Working for a company that doesn't suck ln my post-Borland move, I succeeded in A and B, but I blew D . and, it later turned out, C. lt was my worst career transltlon ever and it t00k me a year t0 get back to a place that I felt I was moving forward. G00d managers keep their teams, their products, and their careers full of velocity. Velocity.

9. THE BEST SOFTWARE WRITINGⅠ

146 THE BEST SOFTWARE ・ WRITING I Your intimacy with your product has clouded your judgment, and what you'd consider ready for prime time has nothing t0 do with whether a customer would be happy with it. lf, in a moment 0f lucidity, you real- ize that this the situation you're in, it's best tO find a person/party whose judgment you trust and get a sanity check. Your instinct will be tO go tO your QA organization, but they're equally in love with the product and probably more whacked about quality than you are. Maybe your boss? Maybe another engineerrng manager? I don't know whO, but it's got tO be someone whO has not spent the last three months living and breathing this product that's NEVER GOING TO SHIP. When you do find a designated sane person, they should ask ques- tions like 1. Are the features done? How done? Are they testable? 2. How many bugs are left? 3. How many bugs are you fixing on a daily basis? 4. How many bugs are you willing to ship with? 5. ・市 at are your bug deferral criteria? 6. What's your update strategy? This sane person's job is not to decide for you. Their job is to be neu- tral and to help you frame your decision by asking great questions. As a rookie manager, you re not going tO seek external input because you'll think asking for help is a sign of weakness and, boy, are you wrong. Asking for help from team members allows these folks to apply their unique experience tO whatever the problem might be and that's hOW you make better decisions while also building a stronger team. Asking for help is a big deal. DO it. Often. That's situation # 1 . . getting a second opinion. ThiS leads us tO sit- uation # 2 , which is, you're right . . your product iS nowhere near ready for customers and you're 14 working days from shipping. You and your team are charging forward tO the ship date, but almost everyone is shak- ing their heads slowly and murmuring, "lt's not ready. And it's not. No need to get a second opinion. You're still finishing features. QA is sufficiently pissed 0ff and your program manager is cry- ing in his/her office. Yes, it's really not ready.

10. THE BEST SOFTWARE WRITINGⅠ

MICHAEL "RANDS ” LOPP 141 There are other lessons as well. There are the big three: hire, fire, and lay 0 圧 AII of those are a nice kick in the teeth that'll be the source of sig- nificant insomnia. There's the little stuff, t00. You'll find yourself saying we" a 10t. You'll notice you re repeating yourself . . saying exactly the same thing tO 12 different people. Some Of it's entertaining, some Of it's dull, but none Of it compares tO when you're screwed. The state of being screwed is unique. You know when things are going smoothly because you can arrwe in the morning and quietly sip your hOt beverage until your first meeting at 11 a. m. Screwed is the opposite. Screwed is being accosted the moment you walk out Of the ele- vator and being unable tO even check your mail . . until winter. Screwed is mental paralysis. Scre 、 iS career pamc. Screwed is alSO an opportunity tO hit it out Of the park. Overcoming screwed will give you confidence, experience, and respect, but you need tO figure out hOW screwed you actually are and then figure out hOW tO fix it. If you aren't lnterested in unscrewing yourself, this article is not for you. l'm assuming you have passlon regarding your professional career. You 、 vant tO dO more. You want tO make 1 れ ore money, and if it all works out well, you want t0 change the wor 旧 . Maybe I haven't been kicked in the shins enough, but it baffles me when I run into folks who are coasting through life. D0ing the bare nun- lmum t0 get by and . . enJOYing it? What exactly are you enJOYing? Hey, maybe your day job isn't your gig, but I like mine, so let's begin: # 1 ) l'm Missinga Document and People AreYelIing at Me Scre 、 vedness: LO 、 Early in the product development process, everyone is talking about wrlt- ing it down. Marketing specifications, engineermg specifications . . specs, specs, specs. Milestones are Often constructed these specifications, but, usually, these milestones come and go and no one really gets fussy about missing or incomplete specifications. That'S the good news.