tag:blogger.com,1999:blog-259224072024-03-17T01:25:28.011-07:00Gerald Weinberg's Secrets of Writing and ConsultingThis blog is a continuation of my books, <a href="http://www.geraldmweinberg.com/Site/Consulting_Secrets.html">The Secrets of Consulting</a>, <a href="http://www.geraldmweinberg.com/Site/More_Secrets.html">More Secrets of Consulting</a>, and <a href="http://www.geraldmweinberg.com/Site/On_Writing.html">Weinberg on Writing: The Fieldstone Method</a> as well as my work at <a href="http://ayeconference.com/">the AYE Conference</a>Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.comBlogger290125tag:blogger.com,1999:blog-25922407.post-84527209020537864572018-07-29T14:34:00.000-07:002018-07-29T14:34:51.277-07:00What do you do when a kid beats your solution?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">We were asked, "Has a software engineering interviewee ever come up with a better solution than the expected best answer?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">The question told me that the one who posed it hadn't done many interviews. As an interviewee, I did this often, though it was often met with defensiveness from the interviewer.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">As an interviewer, it happens to me all the time, and I've tried awfully hard not to be defensive as I'd seen so many interviewers become.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="-webkit-text-stroke-width: initial; font-size: large;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">Once on the job, too, software engineers frequently come up with better answers than their managers, teammates, or team leaders knew and expected. Or, I must admit, better than their consultants.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">When this happens in any of these situations, it's important for the interviewer, manager, team leader, teammate, or consultant to accept the answer graciously, thanking the person for teaching them something new.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Even if the new idea isn't "better," if it's new, it's an opportunity to learn, so you don't want to spend your efforts trashing the idea. Just take in into your mind and offer thanks.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">When I was a little boy, my father challenged me to learn something new every day before allowing myself to go to bed. Learning new things all the time is perhaps the most important behavior in my life. It's certainly the most important behavior in our profession</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKpGbc5fbR03B3voV07-vRnhZXpRYaNvVHZaIrZLZR8WTOpm8MYBTfXTqK9jhI8f10qR5BowYKJozP371lEp9rR7u0CQwZryggxj7HLHsbyTiMfhxRXgNxN2P0t3Yib4wlO2ezg/s1600/Ducks.Cover.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1175" data-original-width="750" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKpGbc5fbR03B3voV07-vRnhZXpRYaNvVHZaIrZLZR8WTOpm8MYBTfXTqK9jhI8f10qR5BowYKJozP371lEp9rR7u0CQwZryggxj7HLHsbyTiMfhxRXgNxN2P0t3Yib4wlO2ezg/s320/Ducks.Cover.jpg" width="204" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Generally, the most powerful learning occurs when someone produces a better solution than you had imagined. If your ego cannot deal with “better” or even “different” solutions to problems you pose, you have no business being in a leadership position in software engineering.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Or maybe anywhere.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/becomingatechnicalleader" target="_blank">Read: Becoming a Technical Leader </a></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-63210163187046607292018-07-21T15:45:00.000-07:002018-07-21T15:45:14.016-07:00Some Advice on Advice<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<b style="-webkit-text-stroke-width: initial;"><span style="font-size: large;">I was asked, "I'm very bad at taking my own advice but love helping people with their own personal issues. Does that make me a hypocrite?"</span></b></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">You seem to equate “advice” with helping people, but there are many other ways to help people without offering advice. And, of course quite frequently, even the best advice doesn't help at all.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">(Note that I wrote “offering,” not “giving.” You offer, but they need not accept. Nor do you have to accept your own advice. You test it in your mind, or with small actions, and either follow or not, depending on the test’s outcome.)</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If you like helping, try asking people what kind (if any) help they want from you. Perhaps they merely want a friendly listener. Or a pat on the back. Or a kick in the rear. Maybe they want you to clean their house. Or carry their heavy package. Maybe they just want a smile.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Stop worrying about labels like “hypocrite,” and start seeking ways to help people the way they want to be helped. Forget the advice business. As Ambrose Bierce says in The Devil’s Dictionary, “Advice is the smallest common coin.”</span></span></div>
<div>
<span style="font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-21528632310116410952018-07-15T16:53:00.001-07:002018-07-15T16:53:11.848-07:00What motivated you to learn to code?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">I received an interesting question, today: "What motivated you to learn to code?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Maybe it's old age, but my memory for ancient events seems to have improved. I remember quite clearly those days, back in the 1950s, when I worked as a "computer." That was my job title, computer. I did physics calculations with pencil and paper—and an eraser.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">At that time,I had never seen a computing machine, nor another person who had ever seen one. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">When I left graduate school, I went to work for IBM in San Francisco. Nobody else in the IBM office had ever seen a computing machine, at least not a stored program one. We had a machine with 10 wireable instructions (IBM 604) and one 10-digit word of data storage. I was motivated to learn to code that machine by a one-dollar bet that I could turn on all the lights on the console. I won the bet. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">The first <i>stored</i> program machine (IBM 650, with 1,000 words of drum memory) was due in the IBM office two weeks after I started there. I was given the assignment of learning how to program it, as nobody else in the office had a clue. I learned to code by reading the machine manuals for two weeks.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Also, two weeks after the machine arrived, I had to teach a programming class to three other new hires. So, that assignment also motivated me. When the machine arrived, I was the only one who dared to touch it for two weeks, so I wrote programs for the sort of calculations I had been doing in my job as a computer.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">It was the thrill of a lifetime.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-34062526378923354972018-07-07T13:57:00.000-07:002018-07-07T20:37:01.569-07:00What were some jobs that existed 50 years ago but have largely disappeared today?<div id="wwxOdg" style="caret-color: rgb(51, 51, 51); color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">
<div class="Answer AnswerPageAnswer AnswerBase" id="__w2_F6qXYZI_answer" style="border-top-width: 0px; padding: 8px 0px; position: relative;">
<div id="__w2_F6qXYZI_answer_content">
<div id="VvanVp">
<div id="__w2_ZS2F5Us_editor">
<div id="wtRtJE">
<div class="suggested_answer_bar br5">
<div class="suggested_answer_diff br5" style="border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(226, 226, 226); padding: 5px 10px 10px; position: relative;">
<div class="SuggestedEditsEditor SuggestedAnswerEditor AnswerEditor InlineEditor inline_editor_content" id="__w2_byVRC21_inline_editor_content" style="font-family: q_serif, Georgia, Times, "Times New Roman", "Hiragino Kaku Gothic Pro", Meiryo, serif; line-height: 1.6; tab-size: 4;">
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">We often hear that we're in a time of change, but this observation isn't really news. We've been in a time of change for my whole lifetime, and well before that. Many jobs that once existed are no longer available, and many have even disappeared from memory.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">We were challenged recently to recall some jobs that have disappeared in the past 50 years, and it was great fun reading all the answers, many of which described jobs I once held back in my youth. I go back a bit more than 50 years, though, so I have a few more to add.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">The first, most obvious omission that popped into my mind was the iceman. In the 1930s, my family had an icebox (not a refrigerator, but an actual box that held a block of ice). The iceman’s horse-drawn wagon would come around and be surrounded by us kids, hoping to get free shards of ice caused when he cut up little blocks to fit our iceboxes.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Another job only briefly mentioned was typesetting. I never held that job, but I was trained for manual typesetting for a semester in high school. At least I know where terms like upper-case and lower-case come from.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Someone also mentioned keypunch operator, a task (not a job) that was often done by prisoners who were literally chained to their keypunch machines. What wasn't mentioned, however, were key verifier operators. Not many people today have ever seen a verifier machine, let alone even know what one was.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Even before my time, there were jobs that disappeared, but which I read about in a nineteenth century book about jobs for women. The final two chapters in the book were about a couple of sure-fire women’s jobs for the future (1900 was then the future).</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">First chapter was about telegraph</span><span style="background-color: #d1e1ad; color: #405a04;"> </span><span style="font-kerning: none;">operators. The chapter “proved” that there was a great future for women because they could operate a telegraph key at least as fast as men (and the telephone had yet to be invented).</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Second chapter was about picture tinters. There was, of course, no color photography, and it wasn’t really even conceived of. Women were supposedly much better at coloring photos because of their “artistic bent” and their more delicate hands. Though there are a few photo tinters still around today for special jobs, it’s not a career with a great future.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">It's fun to think about these forgotten jobs, but they're also a source of important knowledge, or perhaps even wisdom. Job disappearance is not some new phenomenon caused by computers. It's always gone on through history. True, some jobs lasted a long time, so long that they were passed down from generation to generation, even becoming family names, such as Smith, Turner, Eisenhower, Baker, and Miller. (See, for example, <<a href="http://surnames.behindthename.com/"><span style="color: #2b6dad; font-kerning: none;">Meaning of Surnames</span></a>> for hundreds of examples)</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Some of those jobs still exist, though often modified by new technology. Do you still recognize Fuller, Chandler, or Ackerman? And many others have largely disappeared, remaining only in some special niche, like photo tinters. Do you know anybody named Armbruster who still makes crossbows? Well, you probably know a few Coopers, but how many of them still make barrels?</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">So, what's the lesson for your own future? If you're as old as I am, you probably don't have to worry about your job disappearing, but even my "job" as a writer is changing rapidly with new technology. Even if your type of job doesn't disappear entirely, you will be faced with changes.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">I think your preparation for job changes will be the same as your preparation for changed jobs: increased adaptability. Today's market tends to reward specialization, but when you become totally specialized, you become the victim of change. Think what's happened to all those COBOL experts from a few years ago.</span></div>
<div style="font-family: Georgia; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 27px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: georgia; font-stretch: normal; line-height: normal;">
<div style="font-size: 24px;">
<span style="font-kerning: none;">I'd suggest that you take advantage of the rewards of specialization but invest a small percentage of your time to learning something new. Always. Keep you mind flexible for a future none of us can predict.</span></div>
<div style="font-size: 24px;">
<span style="font-kerning: none;"><br /></span></div>
<div style="font-size: 24px;">
<span style="font-kerning: none;">p.s. Minutes after I posted this blog, several readers wrote:</span></div>
<div class="rc-Message" style="background-color: white; border-bottom-style: none; caret-color: rgb(0, 0, 0); color: black; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial; margin: 0px; padding: 4px 12px 0px;">
<div class="-messageDetails" style="font-size: 14px; margin: 0px 0px 8px; overflow: hidden; padding: 0px;">
<br />
<div class="rc-Metadata" style="color: #5c6365; font-size: 12px; margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis; white-space: nowrap;">
<span style="color: rgba(0 , 0 , 0 , 0);"><span style="cursor: pointer;"><time></time></span></span></div>
</div>
<div class="-body" style="clear: both; margin: 0px 0px 16px; padding: 0px;">
<div class="-text" style="margin: 0px 0px 16px; padding: 0px;">
<span style="font-size: large;">Your first job, "computer" did also disappear. How long was that job around? (Kind of surprised you did not mention it in the blog post.)</span></div>
<div class="-text" style="margin: 0px 0px 16px; padding: 0px;">
<span style="font-size: large;">----</span></div>
<div class="-text" style="margin: 0px 0px 16px; padding: 0px;">
<span style="font-size: large;">Well, that's shows I'm a human being. What's that saying about shoemakers' children going barefuot? It never occurred to me to consider my 'computer' job as disappearing, but of course it has been largely taken over by machines. Thanks, readers.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Oh, and some more, including switchboard operator, another job I had.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Maybe you folks could add more via comments here.</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-61515157636263280602018-06-13T09:20:00.000-07:002018-06-13T09:20:49.464-07:00Why would anyone want to live past about 65?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">We were asked, "Why would anyone want to live past about 65? Seriously, after 25 years learning and 40 years working, why would you want to live another 5-10 years when you're too old to do anything interesting?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">To the author of this question: many of these answers you received have been hard on you, unfairly, I think. I interpret your question as a genuine puzzle, not a judgment on older people.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">My answer is this: <i>Some</i> people want to live past 65. Many do not. I’m 84, myself, and I’m one of those who wanted to live past 65. I think that’s because I enjoyed living <i>before</i> 65, so I looked forward to continuing the enjoyment.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">It’s true I can’t do some of the things I did when I was younger, but on the other hand, there are things I can do now that were totally beyond my ability at a younger age.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Just yesterday, I experienced two examples of how being 84 is different than, say, 44. Dani and I drove past a neighbor's house and saw 6 cars parked in front. "Wow," she said. "That's a lot of cars." For me, though, it wasn't a lot of cars because when I was 15, I used to shuffle cars around for my father's auto painting business. At one time, I was responsible for more than 40 cars, so 6 cars doesn't impress me, even to this day. In other words, my life experiences have given me a calmer perspective today.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">The second instance: A programmer wrote to me with a problem I was able to solve for him by using an example from my own programming about 50 years ago. First of all, I reassured him that his problem was solvable, which led him out of a state of panic into a state where he could listen to solution ideas. I would not have been able to do that forty years ago.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">And, by the way, I've always managed my finances carefully, so that past 65, I no longer worry about how to survive until the next paycheck. And since there is no paycheck, I don't have to do the things some ignorant manager orders me to do. Being my own boss is a pleasure you may not yet have experienced. It's definitely something to look forward to.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Yes, I can no longer run triathalons or experience twenty-mile hikes in the mountains, but I experience similar examples of helping people every day, giving me great pleasure. I believe I’m wiser, more centered, and far more capable of helping others be more productive and enjoy their lives (which gives me great pleasure).</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">One of the things I do to help others enjoy their lives is teaching them how to find interesting things to do. That will prepare them for being “over 65” and wanting to keep on living. I hope you, also, will learn how to find things to do that interest you, so you will be able to enjoy your “golden years.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">When you’re older, you may not be interested in the same things that interested you in youth, but if you know how to discover new things, you’ll be happy you didn’t exit this world at 64.</span></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-size: 14px; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-kerning: none;"></span><br /></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-70529210401560372892018-05-31T15:46:00.001-07:002018-05-31T15:46:58.860-07:00Can a Boss Take Corrections From Subordinates?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">We were asked, "can a boss take corrections from subordinates?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Certainly, some bosses can, but there are ways you can increase the chances of changing your boss, or at least your boss's mind.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I think that if the subordinate offers “corrections,” the leader is less likely to respond less well than if the offer is for “information.” That principle actually goes both ways. Most people are somewhat reluctant to take “corrections.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpa48XXii3wYPUXOCtiVSWthJ7aHnf3rS_faaaTIxbeM6dogIgXbdbB1tEeOxTGN9sRttphkwqud2yjs9Dy83xWVVyHT142gcOYagoyrxcOt_kjiTSxPzvxXbT7-aLEasloewFvw/s1600/title_page.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1483" data-original-width="994" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpa48XXii3wYPUXOCtiVSWthJ7aHnf3rS_faaaTIxbeM6dogIgXbdbB1tEeOxTGN9sRttphkwqud2yjs9Dy83xWVVyHT142gcOYagoyrxcOt_kjiTSxPzvxXbT7-aLEasloewFvw/s320/title_page.jpg" width="214" /></a><span style="font-kerning: none;"><span style="font-size: large;">So, if you are asking how you, as the underling, can “correct” your boss, I suggest you learn how to offer (not “give”) information. The boss can then decide whether or not to act on this new information, and how to do it. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Again, this goes both ways. Leaders do better offering information than correction.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="caret-color: rgb(0, 0, 238); color: #0000ee; font-size: large; font-weight: bold; text-decoration: underline;">What Did You Say?: The Art of Giving and Receiving Feedback Revised Second Edition</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, study the feedback process and become proficient. That will be your best chance, but be prepared for failure. Some people simply will not change, even if banged on the head with a two-by-four.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifAZSOpK9r_pf-eABRIfgTd8rHG3xx_oieVW7w4U79rOWq_h6zjaJgzfT2vJQ-yu3OA0fbRo8qsEaY1I8B4LsSNZ557eiWdvJJyf7IRs0DTkqZMoWX8xVSb0fRGwdV6e-B76ZUbA/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1185" data-original-width="864" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifAZSOpK9r_pf-eABRIfgTd8rHG3xx_oieVW7w4U79rOWq_h6zjaJgzfT2vJQ-yu3OA0fbRo8qsEaY1I8B4LsSNZ557eiWdvJJyf7IRs0DTkqZMoWX8xVSb0fRGwdV6e-B76ZUbA/s320/title_page.png" width="233" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If your boss happens to be one of those frozen people, it will be up to you to do the changing.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Maybe change your behavior. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Maybe change jobs.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"></span></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<b><a href="https://leanpub.com/becomingachangeartist" target="_blank">Becoming a Change Artist</a></b></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<br /></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-26629261482520681182018-05-27T15:05:00.000-07:002018-05-27T15:05:14.716-07:00The Anti-Esteem Tool Kit<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">The self-esteem tool kit consists of tools you can use to build your self-esteem. For instance, the wishing stick (or wand) reminds you that it's okay to think about what you want, instead of always deferring to the desires of others. Or, the thinking cap reminds you that it's okay to come to your own conclusions about what's going on in the world.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">These tools all help you to raise your self-esteem, but there's another tool kit, one that helps you remember to put aside certain tactics that simply help you to maintain low self-esteem. Here's some examples:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Bully Club:</b> Low self-esteem people often think they can feel better if they hurt other people. Sometimes they think the Courage Stick is a form of bully club, but that's a mistake.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Blame Pointer:</b> Low-self esteem people are often found pointing the finger of blame at others.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Blindfold:</b> This tool enables a person to go through life not seeing anything they don't want to see.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Earplugs:</b> By plugging their ears, people are able to avoid hearing anything that might make them uncomfortable. Some Earplugs replace all sound with distracting music. Some just totally deafen to all sounds. Both the Blindfold and the Earplugs counteract the positive effects of the Golden Key, a tool that allows you to open any inquiry you're puzzled about.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Nose Clamp:</b> This double-duty tool keeps their wearer from remembering to breathe with their Oxygen Mask. It also prevents the wearer from smelling the stink that everyone else is aware of in a situation.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Stupid Pill:</b> A single one of these pills drugs one's mind to counteract the effects of wearing a Thinking Cap which would otherwise have you thinking as clearly as possible.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b>The Last Aid Kit: </b>- Use this to bandage your wounds after agreeing to requests you can’t fulfil because you did not use your Yes/No medallion.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNKhhFtCHNzVS6iHq6Al2aC65XLItaKFCAIKJoV_0NBKV_VBxcm_Bkl7Cv3CUFHxWUynNP5h7FZBbalasdVpo6ZuYpRyAGhjKmo9vxTOQkwjv3Uv6rgmtou-a5QB7qmMrK8ND0Ig/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="846" data-original-width="750" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNKhhFtCHNzVS6iHq6Al2aC65XLItaKFCAIKJoV_0NBKV_VBxcm_Bkl7Cv3CUFHxWUynNP5h7FZBbalasdVpo6ZuYpRyAGhjKmo9vxTOQkwjv3Uv6rgmtou-a5QB7qmMrK8ND0Ig/s320/title_page.png" width="283" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Do any of these tools remind you of any politicians you know?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, what other anti-esteem tools do you have in your tool kit?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">For more on the Self-Esteem Tool Kit, get yourself a copy of <i><a href="https://leanpub.com/moresecrets" target="_blank">More Secrets of Consulting: The Consultant's Tool Kit</a>.</i></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><i><br /></i></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><i><a href="https://leanpub.com/moresecrets">https://leanpub.com/moresecrets</a></i></span></span></div>
<div>
<span style="font-kerning: none;"><i><br /></i></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-67891738407099989002018-05-18T16:10:00.000-07:002018-05-18T16:10:09.088-07:00Why I'm a native American<span style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-size: large;">I don’t know if I have any particular kind of ancestry, but I often claim to be “native American.”</span><br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Why? I do so when some institution is “surveying” so-called-race, which is a bogus concept to begin with. See </span></span></div>
<h2 class="a-spacing-small a-color-base sims-lpo-header" style="box-sizing: border-box; caret-color: rgb(17, 17, 17); color: #111111; font-family: "Amazon Ember", Arial, sans-serif; font-size: 21px; font-weight: 400; line-height: 1.3; margin-bottom: 10px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px 0px 4px; text-rendering: optimizeLegibility;">
<span class="sims-lpo-header-title" style="box-sizing: border-box; font-weight: 700;"><i>Man's Most Dangerous Myth: The Fallacy of Race</i>, by Ashley Montagu.</span></h2>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">People say I should choose “White,” but I’m definitely not white. My skin is pinkish yellow, or yellowish pink, and it grows red and brown when I’m out in the sun. I can’t imagine why its color would be important to anyone, except maybe a fashion consultant.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, when surveyed, I choose “native American (small n)” because I was definitely born in America, so I’m a native. It’s a protest. I would be proud to be a Native American (capital N), but as far as I know, I have no such ancestry.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">An interesting sidelight. Years ago when the university insisted I make a “race” choice, they assured me that the information was completely confidential. A year later, when I returned from a trip out of town, I found a note on my desk from Russell Means, a prominent Native American who had visited the university.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I wondered why he would write a personal note to me, until I found out that the administration had sent him to see me, their token “Native American Professor.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So much for confidentiality. So much for the trustworthiness of bureaucrats.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Helvetica Neue"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In such a world, I shall remain “native American,” and I hope Elizabeth Warren and other smart people follow my example. </span></span></div>
<div>
<span style="font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com5tag:blogger.com,1999:blog-25922407.post-84854658522368861652018-05-05T16:37:00.000-07:002018-05-06T09:28:08.226-07:00<div style="-webkit-text-stroke-color: rgb(38, 38, 38); -webkit-text-stroke-width: initial; color: #262626; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><b><span style="font-size: large;">What is the difference between a good manager and a bad manager?</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Because a previous blog of mine asked about good and bad managers, the question naturally came up about what's the difference.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">There are, of course, many ways to be a bad manager. Or a good manager. But if I’d been asked for a single difference (and you didn’t use the plural) I’d say that the <i>First Law of Bad Management</i> is this:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><b><i><span style="font-size: x-large;">If what you’re doing isn’t working, do more of it, faster and louder.</span></i></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggc5PPtKaSnBdicVkl0wMd3i_3b83GQtJrnjPxicq9xdknJ8cuLBQhyphenhyphen6Fn0STibYcVc9WAAhkVRzKwUeP-YeWaLWpzkFaUG2GQgX31PQjQpdpEFfaTT5ben1g6-t5S_ssCGDhfLg/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="753" data-original-width="534" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggc5PPtKaSnBdicVkl0wMd3i_3b83GQtJrnjPxicq9xdknJ8cuLBQhyphenhyphen6Fn0STibYcVc9WAAhkVRzKwUeP-YeWaLWpzkFaUG2GQgX31PQjQpdpEFfaTT5ben1g6-t5S_ssCGDhfLg/s320/title_page.png" width="226" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">For more on good vs. bad management, take a look at </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank">Do You Want To Be A (Better) Manager?</a> </span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-65264966774104985912018-04-28T08:58:00.000-07:002018-04-28T08:58:18.050-07:00Stumbles for New Leaders and Managers<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<br /></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">We were asked, "What were your greatest stumbling blocks as a new manager?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Paige’s article is a terrific introduction to this subject. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><<a href="http://hiring.workopolis.com/article/4-rookie-manager-mistakes/"><span style="-webkit-font-kerning: none;">http://hiring.workopolis.com/article/4-rookie-manager-mistakes/</span></a>></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">These are the four rookie manager mistakes described in the article:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><b><span style="font-size: large;">Rookie mistake #1: Creating a blanket policy for one bad apple</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"><b></b></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><b><span style="font-size: large;">Rookie mistake #2: Embracing the mantra, “do as I say, not as I do”</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"><b></b></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><b><span style="font-size: large;">Rookie mistake #3: Fixing things that aren’t really broken</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"><b></b></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><b><span style="font-size: large;">Rookie mistake #4: Not taking an interest in your employees’ futures</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"><b></b></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In my career, I’ve made all four of those mistakes, and lots of others. But the one I most remember, and most regret, is <i><b>micromanaging</b></i>.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Somehow, I couldn’t believe that other people could solve problems as effectively as I (thought I) could. My mantra was something like “for your own good,” or “for the organization’s good.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">It took me far too long to learn that other people’s solutions were simply other solutions than mine. Some might be worse than mine. Some might even be better. But most of all, they usually solved whatever problems we were dealing with. There was no need for me to push in with my approach.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I’ve gradually learned to reduce this micromanaging behavior. (I’ve never learned to stop completely.) As I’ve succeeded, I’ve noticed:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuNNpXiSCUFnJb_T3rXwOWVFw6yfDY0PIFKfWG7S9n7O_j4o3oKH8YoG_ITrPy-PvfimwaP9LvQ4tPDavCSfKrlwxFQNBTIIW1iFDQqnCp8PGR6rGDThIBHuwYBq65rS7NrI3feg/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="753" data-original-width="534" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuNNpXiSCUFnJb_T3rXwOWVFw6yfDY0PIFKfWG7S9n7O_j4o3oKH8YoG_ITrPy-PvfimwaP9LvQ4tPDavCSfKrlwxFQNBTIIW1iFDQqnCp8PGR6rGDThIBHuwYBq65rS7NrI3feg/s320/title_page.png" width="226" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* people learn faster when allowed to make their own mistakes</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* people listen to me more attentively on those few occasions when I do intervene</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* I have more time for doing my own job</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I strongly suggest that you loosen your grip on your own ideas and allow your employees and co-workers to implement theirs.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none; text-decoration: underline;"><a href="https://leanpub.com/doyouwanttobeamanager"><span style="font-size: large;">Do You Want to Be a (better) Manager?</span></a></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-11355175809421306962018-04-25T15:30:00.000-07:002018-04-25T15:30:47.832-07:00<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><b>Leaders: Smart-but-evil versus Dull-but-good?</b> </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Who's better in a leadership position, a smart but evil person or an unintelligent but good person?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">There are different kinds of unintelligent people. For one thing, some not-so-smart folks know they’re not so smart and have learned some simple tactics to cope with their inadequate intelligence.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">For instance, in managing software, such managers will refrain from micromanaging their programmers, whereas the smart-evil person is quite likely to interfere with the development and testing work.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">What you want in a manager is a person who knows how and when to delegate, understands their own limitations, and cares about improving the environment for all the people on the staff. You don’t have to be all that smart to do that.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPpHvY0fye1xeuKLodejlCwISn0X9OfRraiBB8Ct_qqt1_C8alpx9q4ivzfI-eqPlqyWcohB7M4iG_TRCaXqZh9xJSDCSzTeNBgtAgUhxsgNfC5IYbcCVRz-7XO9fPC5dmwpgYA/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="753" data-original-width="534" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPpHvY0fye1xeuKLodejlCwISn0X9OfRraiBB8Ct_qqt1_C8alpx9q4ivzfI-eqPlqyWcohB7M4iG_TRCaXqZh9xJSDCSzTeNBgtAgUhxsgNfC5IYbcCVRz-7XO9fPC5dmwpgYA/s320/title_page.png" width="226" /></a><span style="font-kerning: none;"><span style="font-size: large;">But if you are an evil person, your intelligence may be serving the wrong master. It may happen that your intelligent moves help your employees, but that’s not what you’re attempting to do, so it’s hit or miss.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank"><span style="font-kerning: none;"></span><br /></a></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank">I’ve worked for both kinds of managers, and I would never again work for a smart-evil person. Never.</a></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank"><br /></a></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank"><br /></a></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<a href="https://leanpub.com/doyouwanttobeamanager" target="_blank"><span style="-webkit-font-kerning: none;"></span></a></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<b><a href="https://leanpub.com/doyouwanttobeamanager" target="_blank">Do You Want To Be A (Better) Manager?</a></b></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-57664981921799644672018-04-19T21:36:00.001-07:002018-04-19T21:36:49.551-07:00Life hacks for introverts?<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">I was asked, "What are the best life hacks for extremely introverted people?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Call it a hack if you like, but what helped me most in being an introvert is realizing that we (in the USA, at least) live in a society that (mistakenly) believes there’s something wrong with being an introvert.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Here’s a typical example. In Olympic diving, Greg Louganis won 4 gold medals. As he emerged from the pool after winning his fourth, the TV announcer said something like, “Isn’t that amazing. And he’s an introvert!” As if introversion somehow cripples a person so he cannot dive.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Electroencephalographi studies have shown that introversion is a physical characteristic, so introverts can be identified by their brain waves. So, if you’re an introvert, you might as well accept it. If you don't accept your introversion as being just fine, then you're like a person who thinks there’s something wrong with their genetic skin color, just because they live in a prejudiced culture.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">You do live in a prejudiced culture—prejudiced against introversion— but you don’t have to internalize that (or any) societal prejudice.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Don’t listen to people who advise you how to change, unless you want to change. And, then, if you want to change your behavior in some way, try some of their “hacks.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Take me, for example. I'm a strong, strong introvert, but my training and consulting business required me to be out interacting with lots and lots of people. Few of them suspected my introvert side because I concentrated on my people-loving side whenever I was with others. My introversion was temporarily put on the back-burner, to be brought out again when I found the opportunity to be alone.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, if you're like me, you could try my "hack" and see how it works for you. Just don’t be down on yourself if someone else's hacks don’t work the way you wanted</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">You can do whatever you want, whether you’re an introvert or an extravert. Remember, personality is not destiny.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-9025946489360077582018-04-09T20:50:00.000-07:002018-04-09T20:50:12.581-07:00How can I become a software developer who only designs?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">A young programmer asked me, "How can I become a software developer who only designs the whole software architecture and gives instructions to other developers rather than actually coding by myself?"</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I told him he could do that right away, as long as he didn’t care if the other developers listened to his instructions and followed them. And if he didn't care of he was paid.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In general, software developers will not follow the lead of someone for whose designs they have no respect. And why would they respect your designs unless you had previously proved yourself by what you’ve built?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, build things, and build more things, until you demonstrate that others have some reason to follow your lead.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">And, at the same time, work on your people skills, because even if you’re the greatest designer in the world, if you’re a self-centered jerk, nobody will follow you or your designs.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimYBD_2J2q_3Sr-mOKDwTBhoNizFymZDk0gwbXSs7C9NanjLqsnTu9100zlwBJKgC4A_mZF-Aww1BA-DWQeaIqbKpyqu0GzZMi1akMunEPcgd7BdWkZ09964oCHR3Q0EfpwjIkYA/s1600/title_page.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="744" data-original-width="658" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimYBD_2J2q_3Sr-mOKDwTBhoNizFymZDk0gwbXSs7C9NanjLqsnTu9100zlwBJKgC4A_mZF-Aww1BA-DWQeaIqbKpyqu0GzZMi1akMunEPcgd7BdWkZ09964oCHR3Q0EfpwjIkYA/s320/title_page.jpg" width="283" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-size: large;">For more on designing, see</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-size: large;"><br /></span></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<b><a href="https://leanpub.com/systemdesignheuristics" target="_blank">System Design Heuristics</a></b></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-49539825081729435742018-03-26T16:10:00.002-07:002018-03-26T16:10:27.837-07:00March Madness or December Dementia<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Every March, the USA goes wild with something called "March Madness," a pair of college basketball tournaments. The format of the tournaments is called "single elimination," which means that candidate teams are dropped out of the tournament when they lose. Eventually, one team remains, and they are the "winners."</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, what is the overall effect of this type of tournament? The men's tournament starts with 64 of the best teams in the nation, and when all is done, 63 of them have become "losers." No matter how good their season's record may have been, they ended that season with a loss—something to remain on their minds until next year.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I enjoy watching March Madness, but I think it could be improved. At least, there could be another tournament with a much more satisfactory result. Here's how it would go:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">First, we choose the 64 worst teams of the season. Then we pair them off to play one another. The <i>winner</i> of each game is dropped out of the tournament, and the losers are paired for the next round. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">This elimination of winners is continued until only one team remains. They are the winners of the tournament. And, notice, that every other team has ended their season with a victory. Doesn't that feel much better?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Now perhaps this sounds like a stupid idea, but in fact it's extremely popular in the business world. Managers devise award systems that select one or a few individuals (rarely teams) as "winners." In doing so, they have managed to make everyone else feel like "losers."</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I guess the theory is the these "losers" will be motivated to work harder or smarter for the next award cycle, and I suppose that sometimes that happens. What I've seen, however, is quite the opposite. Most people respond to "losing" by losing their motivation in the next round.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 16px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I've noticed that many of these management awards are given at the end of each year. Maybe a few smart managers could come up with not a March Madness but a December Dementia system that would positively motivate all their employees.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-size: large;"><span style="font-kerning: none;"></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; color: #0044fc; font-family: "Times New Roman"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">www.geraldmweinberg.com</span></span></div>
<div>
<span style="font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-77081934437968421512018-03-24T10:40:00.000-07:002018-03-24T10:40:34.581-07:00How do I fix a really difficult bug in programming?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Here was the question:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">"How do I fix a really difficult bug in programming?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Here was my first answer:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b><i>There is no such thing as a “difficult bug.”</i></b></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I suspect my answer requires further explanation. First of all, I doubt that you have experienced actual bugs in your computer, the kind with 8 legs that bite and swarm. I have, a couple of times, but they are rare, and usually not difficult to eradicate.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Perhaps you are talking about errors, but using inaccurate language. In that case, I will assert “there is no such thing as a difficult error.” The same error might be handled easily by a different person. I have seen that circumstance often. For instance, I once spent a month trying to pinpoint a coding error. When I finally asked the help of a colleague, she found it in less than two minutes.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">No, there are no difficult errors, but there are people who have difficulty with an error. We have all been there, and we tend to want to blame the error rather than ourselves.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, the first thing you need to do to handle a “difficult bug” is to ask yourself,</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><i><b>“What is it about me that is making this error so difficult to handle?”</b></i></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Perhaps you are having difficulty because you are impatient, or think failure to handle the error will make you look bad to your boss or colleagues.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Perhaps pressure to handle the error is throwing you off your center, distorting your thinking.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Perhaps you do not know enough about the system with the error, or the language in which the program is written.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Perhaps your mind is on other things in your life, things distracting you because they are more important to you than this darn “bug.”</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Maybe you should discuss this error with a colleague or two, What is it about you that is keeping you from doing that?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Anyway, good luck in your quest for resolution.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Take a look at </span></span><b style="font-size: 24px;"><a href="https://leanpub.com/errors" target="_blank">Errors: Bugs, Boo-Boos, and Blunders</a></b></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-52604638040512379052018-02-13T15:43:00.000-08:002018-02-13T15:43:20.754-08:00My most insidious bug<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i>I was asked, "As a coder, what is the most insidious bug you have ever come across, and how did you find it?"</i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; min-height: 19px;">
<span style="font-kerning: none;"><i></i></span><br /></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">It’s really hard to pick one error out of hundreds I’ve encountered in my long career, but some of the toughest have been:</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; min-height: 19px;">
<span style="font-kerning: none;"></span><br /></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; margin: 0px;"><span style="background-color: #fcf9f9; font-kerning: none;">compiler errors, where the compiler has created object code incorrectly. We usually found these by hacking around, changing the source code to express the program in different ways, or by examining the object code the compiler had produced.</span></li>
</ul>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; margin: 0px;"><span style="background-color: #fcf9f9; font-kerning: none;">hardware errors, both from the failure of a component and an actual design error in the hardware. Such errors are not as frequent today as they were in the old days of vacuum tubes (or relays), but in a way that infrequency makes them all the more difficult when they do occur, because we have so little experience with them.</span></li>
</ul>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; margin: 0px;"><span style="background-color: #fcf9f9; font-kerning: none;">requirements errors, where the program has actually solved the wrong problem. These errors can usually be found only after users have been in contact with the code for some time, and only when there is some communication channel between the users and the programmers.</span></li>
</ul>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal; margin: 0px;"><span style="background-color: #fcf9f9; font-kerning: none;">So, what were your most insidious errors?</span></li>
</ul>
<div>
<span style="font-family: Helvetica;"><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">You can read more about errors and their consequences in</span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-size: 16px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><a href="https://leanpub.com/errors" target="_blank">Errors: Bugs, Boo-Boos, and Blunders</a> (https://leanpub.com/errors)</span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com8tag:blogger.com,1999:blog-25922407.post-22369691556719579052018-01-06T13:49:00.000-08:002018-01-06T13:49:47.886-08:00New: #System #Design #Heuristics<span style="font-size: large;">You'd think that after publishing books for half a century, I'd know how to write a book. If that's what you think, you'd be wrong.</span><br />
<span style="font-size: large;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVGZRHyoPkuF8iyy-zI_VbqdO46z3OVSdD7w4YJoEIzD4VanqJjCUVgiDTIu4nPYDjdxcZ1Xkh_aeaPi2FRwqlGL73pygy0PGKBkkrLDu2Jf53NjjZyItF0xaPr2h8cr2L8_ELA/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="721" data-original-width="553" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVGZRHyoPkuF8iyy-zI_VbqdO46z3OVSdD7w4YJoEIzD4VanqJjCUVgiDTIu4nPYDjdxcZ1Xkh_aeaPi2FRwqlGL73pygy0PGKBkkrLDu2Jf53NjjZyItF0xaPr2h8cr2L8_ELA/s320/title_page.png" width="245" /></a></div>
<span style="font-size: large;">Sure, I've even written a book on writing books (<i><a href="https://leanpub.com/weinbergonwriting" target="_blank">Weinberg on Writing, the Fieldstone Method</a></i>), and I've applied those methods to dozens of successful books. But way back around 1960, I started collecting notes on the process of design, thinking I would shortly gather them into a book. Back then, I didn't call these bits and pieces "fieldstones," but that's what they turned out to be: the pieces that, when assembled properly, would ultimately become my design book.</span><br />
<span style="font-size: large;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSj2hnlYPhN-XgEeNtqfx4cHaax-aEIdphqzKqia69m0zhKh5B9TtQuWq20UGGHT-hIJbtK8BRzNehMVD8APJoqorxi5bkQaZZ5tVUgDFfDeTWwAt1pDA__Gx_gB0JwigECpxtHQ/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1204" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSj2hnlYPhN-XgEeNtqfx4cHaax-aEIdphqzKqia69m0zhKh5B9TtQuWq20UGGHT-hIJbtK8BRzNehMVD8APJoqorxi5bkQaZZ5tVUgDFfDeTWwAt1pDA__Gx_gB0JwigECpxtHQ/s320/title_page.png" width="240" /></a></div>
<span style="font-size: large;">Ultimately? Assembled properly? Aye, there's the rub!</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Building walls from randomly found fieldstones requires patience. So does writing books by the Fieldstone Method. My <i><a href="https://leanpub.com/generalsystemsthinking" target="_blank">Introduction to General Systems Thinking</a></i> took fourteen years to write. But a writer only lives one lifetime, so there's a limit to patience. I'm growing old, and I'm beginning to think that fifty years is as close to "ultimately" as I'm going to get.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">So, I've begun to tackle the task of properly assembling my collection of design fieldstones. Unfortunately, it's a much larger collection that I'd ever tackled before. My Mac tells me I have more than 36,000,000 digitized bytes of notes. My filing cabinets told me I had more than twenty-five pounds of paper notes, but I've managed to digitize some of them and discard others, so there's only a bit more than ten pounds left to consider.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">For the past couple of years, I've periodically perused these fieldstones and tried to assemble them "properly." I just can't seem to do it. I'm stuck.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Some writers would say I am suffering from "writer's block," but I believe "writer's block" is a myth. I've published three other books in these frustrating years, so I can't be "blocked" as a writer, but just over this specific design book. You can hear me talk more about the Writer's Block myth on YouTube </span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">[<a href="https://www.youtube.com/watch?v=77xrdj9YH3M&t=7s">https://www.youtube.com/watch?v=77xrdj9YH3M&t=7s</a>]</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">but the short version is that "blocking" is simply a lack of ideas about how to write. I finally decided to take my own advice and conjure up some new ideas about how to write this design book.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><b>Why I Was Stuck</b></span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">To properly assemble a fieldstone pile, I always need an "organizing principle." For instance, my recent book, <i>Do You Want to Be a (Better) Manager?</i> is organized around the principle of better management. Or, for my book, <i>Errors</i>, the principle is actually the title. So, I had been thinking the organizing principle for a book on design ought to be <i>Design</i>. </span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Well, that seemed simple enough, but there was a problem. Everybody seemed to know what design is, but nobody seemed able to give a clear, consistent definition that covered all my notes. I finally came to the conclusion that's because "design" is not one thing, but many, many different things.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">In the past, I ran a forum (SHAPE: Software as a Human Activity Practiced Effectively) whose members were among the most skilled software professionals in the world. We held a number of threads on the subject, "What is Design?" The result was several hundred pages of brilliant thoughts about design, all of which were correct in some context. But many of them were contradictory.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Some said design was a bottom-up process, but others asserted it was top-down. Still others talked about some kind of sideways process, and there were several of these. Some argued for an intuitive process, but others laid out an algorithmic, step-by-step process. There were many other variations: designs as imagined (intentional designs), designs as implemented, and designs as evolved in the world. All in all, there were simply too many organizing principles—certainly too many to compress into a title, let alone organize an entire book.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">After two years of fumbling, I finally came up with an idea that couldn't have been implemented fifty years ago: the book will be composed of a variety of those consulting ideas that have been most helpful to my clients' designers. I will make no attempt (or very little) to organize them, but release them incrementally in an ever-growing ebook titled Design Heuristics.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><b>How to Buy <i>System Design Heuristics</i></b></span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">My plan for offering the book is actually an old one, using a new technology. More than a century ago Charles Dickens released many of his immortal novels one chapter at a time in the weekly newspaper. Today, using the internet, I will release <i>System Design Heuristic</i>s a single element at a time to subscribing readers.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">To subscribe to the book, including all future additions, a reader will make a one-time payment. The price will be quite low when the collection is small, but will grow as the collection grows. That way, early subscribers will receive a bargain in compensation for the risk of an unknown future. Hopefully, however, even the small first collection will be worth the price. (If not, there will be a full money-back guarantee.)</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Good designs tend to have unexpected benefits. When I first thought of this design, I didn't realize that it would allow readers to contribute ideas that I might incorporate in each new release. Now I aware of that potential benefit, and look forward to it.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Before I upload the first increment of <i>System Design Heuristics</i>, I'll wait a short while for feedback on this idea from my readers. If you'd like to tell me something about the plan, email me or write a comment on this blog.</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;">Thanks for listening. Tell me what you think.</span><br />
<div>
<br /></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com22tag:blogger.com,1999:blog-25922407.post-71532438811066045482017-12-31T22:07:00.001-08:002017-12-31T22:07:48.816-08:00What is Software?<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal; min-height: 29px; text-align: center;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Ir's a new year, so let's start out with something fundamental, cleaning up something that's bothered me for many years.</span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">The other day I was lunching with a computer-naive friend who asked, "What is software?"</span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Seems like it would be an easy question for those of us who make and break software for a living, but I had to think carefully to come up with an explanation that she could understand:</span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i>Software is that part of a computer system that adapts the machinery to various different uses. For instance, with the same computer, but different software, you could play a game, compute your taxes, write a letter or a book, or obtain answers to your questions about dating.</i></span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><br /></i></span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">I then explained to her that it’s unfortunate that early in the history of computers this function was given the name “software,” in contrast to “hardware.” What it should have been called was “flexibleware.”</span></div>
<div style="font-family: Times; font-size: 16px; font-stretch: normal; line-height: normal; min-height: 19px;">
<span style="font-kerning: none;"></span><br /></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">Unfortunately the term “soft” has been interpreted by many to mean “easy,” which is exactly wrong. Don't be fooled. </span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Times; font-stretch: normal; line-height: normal; margin-bottom: 12px; text-align: center;">
</div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;">What we call “hardware” should have been called “easyware,” and what we call “software” could then have been appropriately called “difficultware.”</span></div>
<div style="font-family: Times; font-size: 24px; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com7tag:blogger.com,1999:blog-25922407.post-91311522222741107202017-12-25T15:38:00.000-08:002017-12-25T15:38:36.825-08:00Unnecessary Code<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Times; font-stretch: normal; line-height: normal; margin-bottom: 12px;">
<span style="-webkit-font-kerning: none;"><b><span style="font-size: large;">We were asked, "How can I tell if my code does extra unnecessary work?"</span></b></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">To answer this question well, I’d need to know what you mean by “unnecessary.” Not knowing your meaning, I’ll just mention one kind of code I would consider unnecessary: code that makes your program run slower than necessary but can be replaced with faster code.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">To rid your program of such unnecessary code, start by timing the program’s operations. If it’s fast enough, then you’re done. You have no unnecessary code of this type.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If it’s not fast enough, then you’ll want to run a profiler that shows where the time is being spent. Then you search those areas (there can be only one that consumes more than half the time) and work it over, looking first at the design.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">There’s one situation I’ve encountered where this approach can bring you trouble. Code that’s fast enough with some sets of data may be unreasonably slow with other sets. The most frequent case of this kind is when the algorithm’s time grows non-linearly with the size of the data. To prevent this kind of unnecessary code, you must do your performance testing with (possibly artificially) large data sets.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Paradoxically, though, some algorithms are faster with large data sets than small ones.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Here’s a striking example: My wife, Dani, wanted to generate tests in her large Anthropology class. She wanted to give all students the same test, but she wanted the questions for each student to be given in a random order, to prevent cheating by peeking. She gave 20 questions to a programmer who said he already had a program that would do that job. The program, however, seemed to fall into an unending loop. Closer examination eventually showed that it wasn't an infinite loop, but would have finally ended about the same time the Sun ran out of hydrogen to burn.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Here’s what happened: The program was originally built to select random test questions from a large (500+ questions) data base. The algorithm would construct a test candidate by choosing, say, twenty questions at random, then checking the twenty to see if there were any duplicates among those chosen. If there were duplicates, the program would discard that test candidate and construct another.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">With a 500 question data base, there was very little chance that twenty questions chosen at random would contain a duplicate. It could happen, but throwing out a few test candidates didn’t materially affect performance. But, when the data base had only twenty questions, and all Dani wanted was to randomize the order of the questions, the situation was quite different.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Choosing twenty from twenty at random (with replacement) was VERY likely to produce duplicates, so virtually every candidate was discarded, but the program just ground away, trying to find that rare set of twenty without duplicates.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">As an exercise, you might want to figure out the probability of a non-duplicate set of twenty. Indeed, that’s an outstanding way to eliminate unnecessary code: by analyzing your algorithm before coding it.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Over the years, I’ve seen many other things you might consider unnecessary, but which do no harm except to the reputation of the programmer. For example:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* Setting a value that’s already set.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* Sorting a table that’s already sorted.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* Testing a variable that can have only one value.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">These redundancies are found by reading the program, and may be important for another reason besides performance. Such idiotic pieces of code may be indications that the code was written carelessly, or perhaps modified by someone without full understanding. In such cases, there’s quite likely to be an error nearby, so don’t just ignore them.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Read: <a href="https://leanpub.com/thepsychologyofcomputerprogramming" target="_blank">The Psychology of Computer Programming: Silver Anniversary eBook Edition</a> </span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-89135819716020727012017-12-20T21:26:00.000-08:002017-12-20T21:26:41.812-08:00Which code is more readable?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">We were asked, "Which code is more readable, one that uses longer variable names or short ones?" </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Maybe some historical perspective will help answer this question.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In the very early days of computing (I was there), we used short variable names because:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* Programs were fairly short and simple, so scope wasn’t much of a problem.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">Memories were small, so programmers didn’t want to waste memory with long names.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">Compilers and assemblers were slow, and long names made them slower.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">Many compilers and assemblers wouldn’t allow names longer than a few characters, because of speed and memory limitations.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">We didn’t think much, if at all, about who would maintain a program once it left the hands of the original programmer.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">As programs grew larger, one result of short naming was difficult maintenance, so the movement toward longer names grew stronger. It wasn’t helped by COBOL, which asserted that executives should be able to read code. Lots of COBOL code was littered with super-long names, but that didn't help executives read it.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">The COBOL argument proved to be nonsense. Still, the maintenance argument for longer, more descriptive names made sense.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Unfortunately, like many movements, the long-name movement went too far, at least for my taste. It wasn’t because long names were harder to write. After all, a typical program is written oncem but read for modification and testing many, many times. So, if long names really made reading easier and more reliable, it was good.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">But the length of a name is not really the issue. I’ve seen many programs with long, long names that were so similar that they were easily confused, one with another. For instance, we once wasted many days trying to find an error when the name radar_data_station_#46395_azimuth_reading was mistaken for radar_data_station_#46895_azimuth_reading. Psychologists and writers know well that items in the middle of long lists are frequently glossed over.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, like lots of other things in software development, long versus short names becomes a tradeoff, a design decision for a programmer for which there is no “right” answer. Programmers must design their name-sets with the same kind of engineering thought they put into all their design decisions.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">And, as maintainers modify a program, they must maintain the name-set, so as to avoid building up design debt as the program ages.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK0dqjwX8thKLUQs_QgNdJ3XlgRQnPxgdm3wb01l-_nLcTffTj0W0glzC61zn011hSIRcJ7fmu-4QXvWH0iFKdk_0l0bwy-GNznuHTiW1zUrJ5tRlqI6doSx2xnXFxcUkaUyY60A/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1310" data-original-width="879" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK0dqjwX8thKLUQs_QgNdJ3XlgRQnPxgdm3wb01l-_nLcTffTj0W0glzC61zn011hSIRcJ7fmu-4QXvWH0iFKdk_0l0bwy-GNznuHTiW1zUrJ5tRlqI6doSx2xnXFxcUkaUyY60A/s320/title_page.png" width="214" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, sorry, there’s no easy answer to this question, nothing a programmer can apply mindlessly. Just as it’s always been, programmers who think will do a better job than those who blindly follow simplistic rules.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"></span></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<b><a href="https://leanpub.com/thepsychologyofcomputerprogramming" target="_blank">The Psychology of Computer Programming: Silver Anniversary eBook Edition</a></b></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-size: 14px; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-kerning: none;"></span><br /></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com2tag:blogger.com,1999:blog-25922407.post-46526481389941954752017-12-16T20:46:00.001-08:002017-12-16T20:46:50.325-08:00My First Week in a Software Job<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">We were asked, "What was your first week like at your first software engineering job?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In June, 1955, I went to work for IBM in San Francisco. Of course, at that time there was no such thing as "software engineering." In fact, there was no such thing as a "programmer." My title was "Applied Science Representative." I was supposed to apply science to the sale of IBM computers.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I was told that in two weeks I was to teach a course in programming the IBM 650.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">That presented a few problems.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">I had never programmed any computer before.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">Nobody in the IBM office had ever programmed a computer before.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">Nobody in the IBM office had ever <i>seen</i> a computer before.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">There was no computer in the office—just a bunch of punch card machines.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<ul>
<li style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; margin: 0px;"><span style="font-kerning: none;"><span style="font-size: large;">In fact, as far as we knew, there was no computer in San Francisco.</span></span></li>
</ul>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I spent the next two weeks in a closet in the IBM office studying all the IBM manuals that were stored there, preparing myself to teach this course. I was pretty much a lone ranger, without the horse or any faithful Indian companion. Actually, no companion at all.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">That was over 60 years ago, and now I have a multitude of companions. Even so, it was a special time and an unforgettable first two weeks, so thank you for asking this question.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If you want to know more about what it was like in those thrilling days of yesteryear, you should follow <a href="https://swalchemist.wordpress.com/2016/07/08/first-interactions/"><span style="-webkit-font-kerning: none;">Danny Faught's blog</span></a>. Back then, we used to listen to the Lone Ranger on radio (there wasn't much, if any, television).</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: "PT Serif"; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><i>"Hi-Yo, Silver! A fiery horse with the speed of light, a cloud of dust and a hearty ‘Hi-Yo Silver'... The Lone Ranger! With his faithful Indian companion, Tonto, the daring and resourceful masked rider of the plains led the fight for law and order in the early Western </i><a href="http://www.nydailynews.com/topics/United+States"><span style="-webkit-font-kerning: none; -webkit-text-stroke-color: rgb(36, 105, 211); color: #2469d3; font-stretch: normal; line-height: normal;"><i>United States</i></span></a><i>. Nowhere in the pages of history can one find a greater champion of justice. Return with us now to those thrilling days of yesteryear. From out of the past come the thundering hoof-beats of the great horse Silver. The Lone Ranger rides again!"</i></span></span></div>
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: "PT Serif"; font-stretch: normal; line-height: normal; min-height: 18px;">
<span style="font-size: large;"><span style="font-kerning: none;"><i></i></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(51, 51, 51); -webkit-text-stroke-width: initial; color: #333333; font-family: "PT Serif"; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><i><</i><span style="-webkit-font-kerning: none; color: #333333; font-stretch: normal; line-height: normal;"><i><a href="http://www.geraldmweinberg.com/">http://www.geraldmweinberg.com</a> (Formerly The Lone Programmer)</i></span></span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-43520174416587833872017-12-10T12:26:00.000-08:002017-12-10T12:26:44.142-08:00Do programmers really know how to program?<div style="-webkit-text-stroke-color: rgb(38, 38, 38); -webkit-text-stroke-width: initial; background-color: white; color: #262626; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">I was asked, "Do programmers really know how to program?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I believe this question is unproductive and vague. What does it mean by “program”?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">The person who asked this question seemed to think programmers were not <i>really</i> programming when all they did was copy some existing program, using it whole or perhaps pasting it in as part of a shell.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">To me, programming a computer means instructing it to do something you want done, and to continue doing it as desired.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If that’s what we’re asking about, then yes, of course, some of us out here know how to program. (Some do not, of course.)</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">It is irrelevant how we do that. Whether we use genetic algorithms, cut-and-paste, or divine inspiration? Do we use Scrum or Agile or Waterfall? How about the programming language? C++, or Java, or Lisp, or Python, or APL? Well, none of those choices matters.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Then what does matter? How about, "Can we satisfy someone’s desires?" In other words, can we provide something that someone wants enough to pay what it costs, in time or money? That’s what counts, and we certainly know how do that—sometimes.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Sure, we fail at times, and probably too often. But no profession succeeds in satisfying its customers all the time. Did your teachers always succeed in teaching you something you wanted to know? Do surgeons know how to do surgery?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So what about using existing programs? To my mind, the first and foremost job of a programmer is knowing when not to write a program at all—either because the needed program already exists or because no program was needed in the first place.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b><i>In other words, not writing a program when no program is needed is the highest form of programming, and one of the marks of a true expert.</i></b></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><b><i><br /></i></b></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5n8MyZzzEIL5yBNRZ5H65UbY_vk6PdR_eDLXf9o1qD6LJXXqfxaxT9bGZl6O8mBAyzxXZOyFVFXVhVHBxnTu6WND0lob1xK-3JFeF0-1PvVXUfxSUgbvBrpBjSbfEcLiwZm4Zrg/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1310" data-original-width="879" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5n8MyZzzEIL5yBNRZ5H65UbY_vk6PdR_eDLXf9o1qD6LJXXqfxaxT9bGZl6O8mBAyzxXZOyFVFXVhVHBxnTu6WND0lob1xK-3JFeF0-1PvVXUfxSUgbvBrpBjSbfEcLiwZm4Zrg/s320/title_page.png" width="214" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><a href="https://leanpub.com/thepsychologyofcomputerprogramming" target="_blank">The Psychology of Computer Programming: Silver Anniversary eBook Edition</a> </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">or <a href="http://www.amazon.com/-/e/B000AP8TZ8" target="_blank">Kindle</a> for the book in paper or ebook format</span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com1tag:blogger.com,1999:blog-25922407.post-43962732714546156742017-12-06T16:14:00.000-08:002017-12-06T16:14:00.857-08:00What is the simplest, most amazing code you have ever written or witnessed?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: #fcf9f9; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">We were asked to describe the simplest, most amazing code we had ever written or witnessed.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">My answer should probably be some esoteric APL code that I personally wrote, like inverting a matrix with a single character program, but many of my readers wouldn’t understand it. In any case, modesty prevents me from choosing my own code.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">So, instead, let me tell the story that took place long ago when we were installing an IBM 709 in Bermuda, as part of the NASA space-tracking network. The 709 was a “naked” installation, with little surrounding peripheral equipment, and nothing like it in Bermuda to help us.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In particular, we didn’t have an off-line printer or a punch-card duplicator, so we needed to use the 709 itself to do these jobs—but we had no utilities because we were probably the only naked 709 in the world.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">My colleague, Marilyn, who was by far the best programmer I ever knew, went to our keypunch (the only unattached peripheral we had), inserted a blank card, and proceeded to punch (in row binary) a card-to-card duplicator program for the 709. She did it as I watched, in a single pass through the keypunch. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">You’d have to understand row-binary format to appreciate what a feat this was—multiple punched columns of alternate instructions in binary. To top it off, she actually punched in (in the same pass) the self-loading program AND the parity check row for her entire card.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">She then loaded this card into the 709’s card reader, picked it up and reentered it as input to itself, and so punched a duplicate. She took the duplicate to the keypunch and added one punch to one of the rows. She now had a 709-to-printer program—two incredible error-free programs for the price of one.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">I’ve never seen anything like it before or since. Until that time, I thought I was a pretty good programmer. After Marilyn’s feat, I realized that the best I could ever hope to be was Number Two.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">How about you? Any amazing code stories to share?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; background-color: white; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><a href="http://www.geraldmweinberg.com/">http://www.geraldmweinberg.com</a></span></span></div>
<div>
<span style="font-kerning: none;"><br /></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com8tag:blogger.com,1999:blog-25922407.post-394269171217335302017-11-26T12:57:00.002-08:002017-11-26T12:57:48.536-08:00How Do I Decide Between appX and appY?<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">Hardly a day goes by without some developer or tester asking me about some tools or applications. These could be any tools or apps, so let's call them X and Y.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Usually, the question is simple, but asked with heart-stopping urgency:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><span style="font-size: large;">"Is X better than Y?"</span></i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Rather than provide an answer, I tell them they would be better off not asking such "better than?" questions.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Software apps and tools are complex systems. Consequently any X-Y pair will differ on a number of dimensions. X will be better on some; Y will be better on others. Or both will be useless or poor for your needs.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If you're choosing a tool or an app, start with assessing <i>your</i> needs. Then, instead of asking which is better, ask</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><span style="font-size: large;">"Which fits my needs better, X or Y?"</span></i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If neither one fits you needs, then look for a third alternative, or a fourth.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In the rare case when both X and Y fit your needs, you might meaningfully ask, "Which is better—for me, at this moment?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If X and Y still seem equal, then flip a coin. Heads, take X. Tails, take Y.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Then, while the coin is in the air, your mind will usually make the decision, not willing to allow the coin drop to make the decision for you.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">But, if your mind doesn't decide, then let the coin drop decide. At that point, it shouldn't matter.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">But if you reach this point, wait a moment before you choose X or Y. During that moment, consider the following two questions:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Can I take both X and Y?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">What about Z? Is there some third alternative I haven't considered?</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir810vUUbDFghbUahok6j3oeZpQo8gY7FLPfBgXLrTTqA-ZP90u7PTMRS81KdH_yblNQ-rr9ooe72HM5519bcaf_dutPSZlp5Q8OU97c5cxCctWi98ZRX39Zk1LteUYmjDfD9GyQ/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="690" data-original-width="553" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir810vUUbDFghbUahok6j3oeZpQo8gY7FLPfBgXLrTTqA-ZP90u7PTMRS81KdH_yblNQ-rr9ooe72HM5519bcaf_dutPSZlp5Q8OU97c5cxCctWi98ZRX39Zk1LteUYmjDfD9GyQ/s320/title_page.png" width="256" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">Indeed, instead of asking "which is better" questions, ask, "What is the problem I'm trying to solve?"</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><b style="font-size: 24px;"><a href="https://leanpub.com/areyourlightson" target="_blank">Are Your Lights On?: How to know what the problem really is?</a></b><span style="font-size: large;"> </span></span></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com0tag:blogger.com,1999:blog-25922407.post-47653873386768007552017-11-19T20:30:00.000-08:002017-11-19T20:30:47.266-08:00Terchnical Reviews and Organizational Renewal<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">We know that success can breed failured and doesn't automatically renew itself. I would like to offer some ideas on how this self-defeating tendency can be resisted.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVF6bqnMdICzt9vOv85NDtKwRnrbneAi-jWVKsRa9LseNq_T62Tm8groOhVJGkCqY6y9GjQNnul32X6GRjomprSrdWVOb-hx3swU3k4Q3J8uHXV_QayYFyO1CR8njt_zxUNxuTg/s1600/title_page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="753" data-original-width="534" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVF6bqnMdICzt9vOv85NDtKwRnrbneAi-jWVKsRa9LseNq_T62Tm8groOhVJGkCqY6y9GjQNnul32X6GRjomprSrdWVOb-hx3swU3k4Q3J8uHXV_QayYFyO1CR8njt_zxUNxuTg/s400/title_page.png" width="282" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-text-stroke-width: initial; font-size: large;">One way toward renewal is through new perspectives gained from outside technical audits, but audits suffer from several serious disabilities. </span><span style="-webkit-text-stroke-width: initial; font-size: large;">For one thing, audits are done intermittently. In between one audit and the next, the programmers don't stop programming, the analysts don't.stop analyzing, and the operators don't stop operating. Sometimes, though, the managers stop managing, And there's the rub.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">A comparable situation exists when a firm has a system of personnel reviews mandated, say, every six months for each employee. Under such a system, managers tend to postpone difficult interactions with an employee until the next appraisal is forced upon them. A huge dossier may be accumulated, but then ignored in favor of the last, most conspicuous blunder or triumph. Good managers realize that the scheduled personnel review is, at best, a backup device—to catch those situations in which day-to-day management is breaking down.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In the same way, the outside technical audit merely backs up the day-to-day technical renewal processes within the shop. It may prevent utter disasters, but it's much better if we can establish technical renewal on a more continuous and continuing basis. One way to do this is through a technical team, such as an Agile team. For now, though, </span></span><span style="-webkit-text-stroke-width: initial; font-size: large;">I want to introduce, or reintroduce, the concept of formal and informal technical reviews as tools for renewing the technical organization.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">The Agile Manifesto requires "technical excellence" and "simplicity," and states: </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><i>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.</i> </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">To achieve these and other goals, Agile teams conduct "walkthroughs" and "inspections," but these are only two very specific examples of technical review procedures used by Agile teams. In my reading and consulting, I've uncovered dozens of major variants of these two types of review, plus literally hundreds of minor variants that shops have introduced to make the review more suitable to their environments, whether or not they claim to be "Agile."</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">A more general definition of a technical review could be </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><span style="font-size: large;">1. a review of technical material on the basis of content (this is what makes it a "technical" review, rather than, say, a financial or personnel review)</span></i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"><i></i></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><span style="font-size: large;">2. which is done openly by at least two persons (this is what distinguishes it from "desk checking")</span></i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"><i></i></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><i><span style="font-size: large;">3. who take lull responsibility for the quality of the review (not, please note, for the quality of the product)</span></i></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Then we distinguish between the informal and formal review. A formal review produces <i>a written report to management. </i>That report is the formal part.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Informal reviews (that is, reviews which need not terminate with a written report to management) are also excellent devices for an organization's self-renewal. Informal reviews take all forms of technical reviews, and are practiced everywhere almost all the time. Indeed, they are an essential part of the real world of programming work.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">For instance, a team member passes a diagram to a teammate for an opinion on how to represent a particular design. Someone asks help from someone else in finding an error. A set of test cases is passed around to see if anyone can think of something that's been overlooked. One person reads another's user document to see if it's understandable.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Without a constant flow of such informal reviewing of one another's work, programming any meaningful project would be impossible. Formal reviewing, on the other hand, is not essential to programming. Many small projects are accomplished without formal reviewing, which is why some programmers don't appreciate the need for formal reviewing. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">As projects grow 'larger and more complex—as they are inclined to do in successful shops—the work of many people must be coordinated over a long period of</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">time. Such coordination requires management—though not necessarily <i>managers</i>—and such management requires reliable information. Formal reviews, essentially, are designed to provide reliable information about technical matters—particularly to non-technical people.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Clearly, a successful system of formal technical reviews—that is, a system that provides management with reliable information on technical matters—is essential to management participation in the organizational-renewal process. For the large shop, formal reviews provide information that the small shop manager gets "through the seat of the pants." Many, many failures of previously successful programming organizations an be traced directly to the breakdown of the earlier informal mechanisms for communicating reliable information about technical matters.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">There may, of course, be other ways of getting this kind of information, and many smaller shops do an excellent job without any system of formal reviews. Even those shops, however, may benefit from an explicit system of reviews to supplement their implicit, or informal, existing system. </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Principally, the formal technical review provides reliable self-monitoring. </span></span><span style="-webkit-text-stroke-width: initial; font-size: large;">An informal system may work just as well as a formal one, and if so, there are many reasons to prefer to keep the reviewing informal. In any case, there will always be an informal system at least supplementing the formal one, but we should really view the formal system as supplementing the informal. Its formality guards against creeping deterioration of the organization.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Regular reviews of specifications, designs, code, test plans, documentation, training materials, and other technical matter have many beneficial "side effects" on the health and success of an installation. Reviews have a very marked effect on maintenance—that quicksand in which a thousand successful shops have met an untimely end. A typical program that has been thoroughly reviewed during its development will</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">1. require less maintenance work per change</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">2. require fewer changes caused by poor specification, design, coding, or testing.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Instituting a program of technical reviews will not, of course, have any immediate effect on the existing burden of maintenance carried like an albatross from a sinful programming past. Indeed, when maintenance programmers participate in reviews of newer code, they may be further discouraged by the poor quality of the code with which they are burdened. But, the situation can improve rather quickly, for a variety of reasons:</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">1. Some new ideas can be applied even to patches to old programs, though naturally limited by poor existing structure and style.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">2. Through mutual participation in reviews, the entire shop quickly obtains a realistic and sympathetic picture of the true dimensions of the maintenance situation.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">3. The worst maintenance problems will, through frequent reviews, become exposed to fresh air and sunlight.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Quite frequently, installation of a review system is quickly followed by replacement of the most cantankerous old beasts left over from the Stone Age of Programming. The effect of even one such replacement on maintenance morale is a wonder to behold,</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Other activities besides maintenance are similarly affected. In the long run, certainly, reviews have a remarkable effect on staff competence, perhaps the most important element in continuing success. We also see increased morale and professional attitude, reduced turnover, more reliable estimating and scheduling, and better appreciation of the management role in project success. (Usually, the technical staff has had no </span></span><span style="-webkit-text-stroke-width: initial; font-size: large;">difficulty in appreciating the management role in project <i>failure</i>.</span><span style="-webkit-text-stroke-width: initial; font-size: large;">)</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">At the same time, reviews provide management with a better appreciation for staff competence, both individually and collectively. The unsung hero who quietly saved a dozen shaky projects is now sung far and wide. The "genius programmer" who was always the darling of the executives has been exposed for the empty and obsolete shell the technical staff always knew, but couldn't expose to management.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">No other factor is more depressing to a technical organization than misappraisal of technical competence by non-technical management. T</span></span><span style="-webkit-text-stroke-width: initial; font-size: large;">he openness of technical reviews marks an end to that misappraisal era. No longer will we all feel cheated by charlatans and incompetents.</span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">As a consultant, I visited dozens of installations every year. The best way to summarize the effects of properly instituted reviews is to report that after five minutes in an installation, I can tell—without asking directly—to what extent there is an effective review-practice, formal or informal.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">How do I tell? Metaphorically, I tell in the same way a government health inspector tells about a food processing plant—by the way it smells. It's hard to describe, but when you smell the difference, you-know it!</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">* * * * * *</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEzC-iH48DObxSe6mdzUeuGwCzF4EZSbEjPeqVOHx8FOZI7FmK-LrjOVuqGMMMgSpsS_cFCeIZom_D3otF4HwhnEV6ddPdAVNy2mi8bFYbkPTqeHXoOaKLXuCfqiPn5T2T8xZPyQ/s1600/Handbook+Cover.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="615" data-original-width="432" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEzC-iH48DObxSe6mdzUeuGwCzF4EZSbEjPeqVOHx8FOZI7FmK-LrjOVuqGMMMgSpsS_cFCeIZom_D3otF4HwhnEV6ddPdAVNy2mi8bFYbkPTqeHXoOaKLXuCfqiPn5T2T8xZPyQ/s400/Handbook+Cover.png" width="280" /></a></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Looking back over this essay, I sense its inadequacy to the task at hand. Those programmers and analysts who have experienced a shop with a properly functioning system of reviews will know all this without my giving any details. They've experienced it, and if they are professionals, they'll never agree to work in any other kind of environment.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">But those who have never experienced such an environment of a self-renewing organization will not understand, or will misunderstand, what I've written. Some of them will have experienced a misguided attempt to institute reviews. Perhaps the attempt was in the form of a punitive management mandate. Perhaps it was merely a case of another programmer who read one article and blundered ahead with 99% enthusiasm and 1% information—and zero human feeling. To these people, the experience of "reviews" will have left a bitter taste, or a painful memory. They will not recognize their experience in what I've written.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">In many ways, technical reviewing is like bicycling. Up until the time you first discover your balance in one miraculous instant, the whole idea seems impossible, contrary to nature, and a good way to break a leg. Indeed, if you'd never seen a cyclist before, and had the process described to you, you'd most certainly declare the whole procedure impossible. And, without instruction and encouragement from experienced cyclists, along with reliable "equipment," the most likely outcome would certainly be skinned knees, torn pants, and a few lumps on the head. And so it has been with technical reviews—until now—-so don't go off and try to learn the whole process on your own.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">If you want to get started renewing the success of your own shop through a system of technical reviews, find an experienced shop, or a person from an experienced shop, to guide you. Listen to them, Read the literature. Then try a few simple reviews on an experimental basis, without much fanfare.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="font-kerning: none;"><span style="font-size: large;">Adapt the "rules" to your own environment. Be forgiving and humane. Your rewards will not be long in coming.</span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal; min-height: 17px;">
<span style="font-size: large;"><span style="font-kerning: none;"></span><br /></span></div>
<br />
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;">references: </span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><span style="-webkit-font-kerning: none;"><a href="https://leanpub.com/handbookoftechnicalreviewsfourthedition" target="_blank">Handbook of Technical Reviews, 4th ed.</a></span></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"><span style="font-size: large;"><br /></span></span></div>
<div style="-webkit-text-stroke-color: rgb(0, 0, 0); -webkit-text-stroke-width: initial; font-family: Helvetica; font-stretch: normal; line-height: normal;">
<span style="-webkit-font-kerning: none;"></span></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<a href="https://leanpub.com/doyouwanttobeamanager" target="_blank">Do You Want To Be A (Better) Manager?</a></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<br /></div>
<div style="font-family: Helvetica; font-size: 24px; font-stretch: normal; line-height: normal;">
<br /></div>
Gerald M. Weinberghttp://www.blogger.com/profile/05902673055244863609noreply@blogger.com2