<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Esther Schindler's blog</title>
  <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/blog/20798"/>
  <link rel="self" type="application/atom+xml" href="http://www.javaworld.com/community/blog/20798/atom/feed"/>
  <id>http://www.javaworld.com/community/blog/20798/atom/feed</id>
  <updated>2009-07-25T11:19:54-04:00</updated>
  <entry>
    <title>How Many People Should You Interview With?</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3697" />
    <id>http://www.javaworld.com/community/node/3697</id>
    <published>2009-11-14T20:41:50-05:00</published>
    <updated>2009-11-14T20:58:12-05:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="interview" />
    <category term="job" />
    <summary type="html"><![CDATA[<p>When a software developer &mdash; or anyone, really &mdash; is looking for a new job, it's expected that you'll talk with the person to whom you report. Your new boss knows what she's looking for in the new hire (including technical skills and "team fit"), and since you're going to report to her she certainly will want to choose someone that'll make her happy. But how many <em>other</em> people should you expect to talk with?</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>When a software developer &mdash; or anyone, really &mdash; is looking for a new job, it's expected that you'll talk with the person to whom you report. Your new boss knows what she's looking for in the new hire (including technical skills and "team fit"), and since you're going to report to her she certainly will want to choose someone that'll make her happy. But how many <em>other</em> people should you expect to talk with?</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>From the job-hunter's viewpoint, this is simply a matter of avoiding exhaustion. Even the thought of talking to five people in a single day of interviews makes me shudder. Plus, it might seem as though your chances of getting the job decrease with every additional person with whom you interview, because everyone will have his own expectations. Who can possibly meet everyone's idea of "the person who'd be <em>perfect</em> for this job"?</p>
<p>I've seen and experienced just about every variation on this theme, from the Hire decision coming after a ten-minute phone interview with the manager to a grueling day in which everyone in the company had to ask a really tough question. Or, too often, a really stupid one.</p>
<p>Over the years, I've come to lean towards the "more interviews are better" side of the issue. From the job-hunter's point of view, every discussion you have with someone who works at the company gives you another opportunity to <a href="http://www.javaworld.com/community/node/3292">judge the corporate culture</a>, particularly if you speak with folks at different levels. Your prospective boss might tell you how important it is for developers to grow their skills, for instance, but if you ask three people you'd be working with <a href="http://www.javaworld.com/community/node/2836">when they last got developer training</a> you'll find out if the company puts its money where its mouth is. The more people you talk with, and <a href="http://www.javaworld.com/community/node/2745">the more questions you ask (rather than answer)</a> the better you can triangulate on the department's goals; is everybody heading in the same direction or do departments have differing priorities? </p>
<p><script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/2255786.js"></script><p><noscript><br />
<a href="http://answers.polldaddy.com/poll/2255786/">The last time I interviewed for a full-time position, I spoke with:</a><span style="font-size:9px;">(<a href="http://www.polldaddy.com">polls</a>)</span><br />
</noscript></p>
<p>But I'm a little more interested in the question from the company's point of view... or rather, the point of view of the team who's going to bring on the new developer. As I wrote about several months ago, in <a href="http://www.javaworld.com/community/node/2500">Interviewing Your Next Boss: Putting the Programming Lead on the Hot Seat</a>, dire and terrible things can happen when the people above the manager have a different idea of what's needed than the people who will report to him. (Read the comments, if you don't believe me.)</p>
<p>But the same rule applies to the people you'll work <em>with</em>. I don't know why "team fit" is so often considered by Management and by HR&nbsp;departments (the same HR departments who <a href="http://www.javaworld.com/community/node/3383">dump your r&eacute;sum&eacute;</a> because you lack a current tech buzzword or because they didn't accept <a href="http://www.itworld.com/open-source/80513/what-include-your-open-source-resume">your expertise gained in an open source project</a>) but they think that team members don't recognize the need for "fit," too. Who do they think will be spending all the time with the new developer?!</p>
<p>A long time ago, I worked for a very small company &mdash; it employed 12 people &mdash; at which every new hire spoke with everyone on staff, from Carolyn the bookkeeper to the guy who owned the firm. (You didn't formally interview with Sam, the owner's dog, but I can't imagine that anyone who Sam objected to would be offered a position.) Anyone could veto a new hire. Anyone. An explanation wasn't required, though the company culture was such that it'd be expected. The result was that we had an incredibly strong, diverse team of people who truly loved one another, learned from each other, and were immensely productive. (I'm still in touch with half my coworkers, and I live on the other side of the country, now.)</p>
<p>However, one reason I'm even more in favor of "have more interviews, not fewer" is on Agile grounds. If the developer is going to work with people in other departments (whether IT or line-of-business), those users have to be comfortable with her, too. A candidate may be able to speak brilliantly to other programmers, but have terrible listening skills when it comes to learning what the users need. In the real-world scenario that inspired this blog post (a hiring anecdote imparted by a friend), the developer got along fine with the tech staff. But when he interviewed with the project manager, she gave him a thumbs-down; according to the non-technical project manager, the guy didn't understand the business processes required.
</p>
<p>What's your experience been?&nbsp;I created a poll so we could judge what "normal" is (I'm sure you're as curious as I am). But I'm sure there's arguments for-and-against the "many interviews" options. Tell me what's worked for you.</p>
<p><em>You probably should <a href="http://www.twitter.com/estherschindler">follow me on Twitter</a>. Because, y'know, you just should.</em></p>
    ]]></content>
  </entry>
  <entry>
    <title>When Do You Have &quot;Enough&quot; Design Time?</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3625" />
    <id>http://www.javaworld.com/community/node/3625</id>
    <published>2009-10-30T09:33:28-04:00</published>
    <updated>2009-10-30T09:39:25-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="design" />
    <summary type="html"><![CDATA[<p>How do you know when it's time to stop staring out the window... and start coding?</p>
<p>The department had been given a new project. It was a bit like earlier projects, but had a few unique needs that made the application interesting. On the plus side, the software was built using the same framework that the team was used to. So the developers interviewed the users, gathered requirements... and that's when things went astray.</p>
<p>Maybe.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>How do you know when it's time to stop staring out the window... and start coding?</p>
<p>The department had been given a new project. It was a bit like earlier projects, but had a few unique needs that made the application interesting. On the plus side, the software was built using the same framework that the team was used to. So the developers interviewed the users, gathered requirements... and that's when things went astray.</p>
<p>Maybe.</p>
<p>One journeyman developer &mdash; I'll call him Paul, though names have been changed to protect identities &mdash; immediately gathered his tools around himself like a security blanket, and started writing code. His more senior colleague (whom I'll call Leo) took umbrage at this.</p>
<p>"You haven't thought this through," Leo told Paul. "There are a lot of ways we could address these needs. You thought of one, and you didn't consider whether another approach would be faster, or easier, or more robust. Or <em>anything</em>."</p>
<p>"But this <em>works</em>," said Paul. "I can always refactor it."</p>
<p>Perhaps Paul can. Perhaps he chose the best option (purely by luck). But Leo feels that Paul saying he'll "refactor" the design is an excuse for not-designing in the first place &mdash; throwing code against the wall and seeing what sticks. He believes Paul's "dive right in" approach is laziness that will eventually trip him up, and as a result will probably delay the team (and the project). It's one thing to re-think the way you wrote something, says Leo, but another to re-design a building after the foundation is poured.</p>
<p>Leo credits Paul's (and others') too-short design-time to early school training, when we were all criticized for "daydreaming," though the ability and willingness to daydream is a critical skill for anybody in a creative field. Leo himself says he spends at least 30% of his project-time creating the design before he starts to create the application; he tries out several designs in his head before he decides which one is right. Perhaps he expects others to do the same thing.</p>
<p>I don't think there's one right answer. Some people do design on-the-fly. Others construct an entire application in their head before they put hands to keyboard. I have a tropism to the latter mode myself, or at least I have learned to recognize the signs for when I've reached the end of my Research Phase and am ready to write. (My "notes" begin to look less like bullet points and turn into sentences, then paragraphs.)</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>When I began thinking about this scenario, I started to put together a poll to ask you about the amount of time you spend on design, and a second one to ask how much your time you <em>wish</em> you could spend designing applications rather than writing, testing, or (ick) in meetings. But I could never find a way to phrase the question.</p>
<p>First, you might not identify your design time as such. When you're at your most creative, you probably aren't thinking about the process. Mihaly Csikszentmihalyi's <a href="http://www.amazon.com/gp/product/0060928204?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0060928204"">Creativity: Flow and the Psychology of Discovery and Invention</a> goes into marvelous detail about "getting into flow" (the same process that <a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633439">Peopleware</a> addressed by explaining the sin of calling a programmer on the phone, because it takes at least 15 minutes to get into a warm creative zone again.) Many of us get our best ideas in the shower, while riding a bike, driving. (Csikszentmihalyi offers an explanation why.) Design doesn't happen when you sit down at a desk with a pad of paper and a sharpened pencil, so how could I ask how much of your time is devoted to it?</p>
<p>Plus, the percentage of time you need to devote to designing one project isn't related to the time you spend on another. Not every application requires earth-shattering innovation. A smaller application probably (not always but probably) doesn't require as much design time as a mission critical corporate SOA project that touches every corner of the enterprise.</p>
<p>So then I thought I'd ask whether you felt that on a typical project, you spent enough time on design. But that doesn't work, either. Paul would say Yes, he spent enough time designing his software; Leo would object strenuously.</p>
<p>So much for the poll. But I think you know what I'm trying to get at: When do you know you're done with the design? By which I mean "the design for this piece;" if you use Agile, you're probably ready to tell me that you don't try to design everything up front. (Yeah yeah, I <em>know</em>.) But at some point you <em>do</em> stop staring out the window, and you reach for the keyboard. You're ready. How do you know when that happens? And how much of your time <em>do</em> you spend designing... at least compared to the other developers you know?</p>
<p><em>You probably should <a href="http://www.twitter.com/estherschindler">follow me on Twitter</a>. Because, y'know, you just should.</em></p>
    ]]></content>
  </entry>
  <entry>
    <title>7 Lessons for Software Developers from Heinlein </title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3601" />
    <id>http://www.javaworld.com/community/node/3601</id>
    <published>2009-10-25T13:25:29-04:00</published>
    <updated>2009-10-25T13:50:46-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="heinlein" />
    <category term="science fiction" />
    <category term="teamwork" />
    <summary type="html"><![CDATA[<p>Robert Heinlein wasn't really a programmer, of course. But in his writing career he said or wrote several things (in his own voice or that of a fictional character) that can help any software developer improve her code... or her career.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Robert Heinlein wasn't really a programmer, of course. But in his writing career he said or wrote several things (in his own voice or that of a fictional character) that can help any software developer improve her code... or her career.</p>
<p>For instance, one Heinlein comment that has a prominent place in my Quotes file (and I used often back when e-mail .sig files were common) is, <strong>"They didn't want it good, they wanted it Wednesday."</strong> Heinlein unquestionably understood (and was frustrated by) the deadlines his editors demanded. I can't for the life of me remember where I read about Heinlein's annoyances with the editors, particularly with regard to his "juveniles," but their (to-him) unreasonable requirements were part of what chased him away from that market.</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>The point is, though: Deadlines are real. They are incredibly annoying to anyone who has a creative spirit, but (speaking as a longtime editor here) sometimes the issue is less about getting a project done perfectly than it is about getting it done on time. Then again, as any manager knows, one must wrest a creation from its creator because, left to that creator, it will never be considered done. "Art is never finished, only abandoned," admitted Leonardo da Vinci, and the people who have the silly idea that a creator should deliver on a schedule have been cranky every since.</p>
<p>If you have a boss or a business client who understands that "good" ought to trump "delivered on time" (particularly when it's an arbitrary and capricious deadline), <em>appreciate her</em>.</p>
<p><strong>"The most important lesson in the writing trade is that any manuscript is improved if you cut away the fat."</strong> This quote, which I found in <a href="http://www.amazon.com/gp/product/0679763414?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0679763414">Advice to Writers: A Compendium of Quotes, Anecdotes, and Writerly Wisdom from a Dazzling Array of Literary Lights</a>, probably doesn't need much explanation to software developers, or at least I hope it doesn't. Elegant works of creation (whether software or stories) are almost never cluttered. The first draft is only a first draft &mdash; and it should never been confused with a finished piece. It isn't done until it's <em>re</em>-done, and that usually means turned into something that's more concise. Nowadays we'd use terms like "refactoring," but I have an old quote from Grady Booch in which he said, "The task of the software development team is to engineer the illusion of simplicity." That usually includes "cutting away the fat," no?</p>
<p>Here's one Heinlein (character) sentiment that I agree with <em>and</em> disagree with: <strong>"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a well, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."</strong>&mdash;Lazarus Long, in <a href="http://www.amazon.com/gp/product/0441810764?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0441810764">Time Enough for Love</a>. I've spent most of my career trying to find a balance between "specialist" (deep but narrow knowledge) and "generalist" (knowing something about everything, but nothing about everything); I suspect you've struggled with that, too. When I first became <a href="http://www.javaworld.com/community/node/3318">a computer consultant</a>, I had a long argument with a friend about the subject. Paul's view was that it was important to be considered the #1 expert in at least one category (his was accounting software, at least in the Columbus, Ohio region), because people want to hire <em>the</em> expert. I came to agree with Paul that it's easiest to build a career as a specialist. Yet it's easy to know everything about left-handed widgets and nothing about the right-handed variety, or about anything else, for that matter. That's a particular danger when the market for left-handed widgets goes away (as I learned painfully after becoming one of "the" experts on IBM's OS/2 operating system). So I agree with Heinlein about the importance of self-sufficiency... and I also disagree with him. The Heinlein quote helps me keep myself in balance.</p>
<p>I tend to write a lot about <a href="http://www.javaworld.com/community/node/3205">making programming teams successful</a>, as you may have noticed (when I'm not writing about things like <a href="http://www.javaworld.com/community/node/3156">10 Business Lessons I Learned from Playing Dungeons &amp; Dragons</a>). And one premise which I accepted long ago was the advice given to the teenage Podkayne by her uncle, <strong>"Politics is good even when it is bad... because the only alternative is force&mdash;and somebody gets hurt,"</strong> in <a href="http://www.amazon.com/gp/product/0441012981?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0441012981">Podkayne of Mars</a>. As much as we all hate "office politics," Heinlein (speaking through the uncle) is right when he says, "Politics is not evil; politics is the human race's most magnificent achievement. ... Politics is just a name for the way we get things done without fighting." I try to keep this in mind during serious team hissing-and-spitting. Not always successfully.</p>
<p>One attribute of Heinlein's personal philosophy with which I can wholeheartedly agree (even during the aforementioned hissing and spitting) is the importance of opinion diversity in a team. My father taught me, "When two business partners agree all the time, one of them is unnecessary" and I have always believed it's among my duties to question authority. (My father appreciated that attitude less when I reached my own teen years and it was <em>his</em> premises I challenged.) Certainly, you've seen me write rather often about <a href="http://www.javaworld.com/community/node/3463">the necessity of being wrong</a> in order to achieve a higher degree of wisdom. This viewpoint has a distinct influence from Heinlein, who said both that <strong>A society that gets rid of all its troublemakers goes downhill</strong> (a viewpoint I touched upon in my other blog last week, <a href="http://www.itworld.com/open-source/81751/decline-and-fall-idealistic-spark">The Decline and Fall of the Idealistic Spark</a>) and <strong>I never learned from a man who agreed with me.</strong></p>
<p>Sometimes, I learned from Heinlein indirectly. One such lesson is: <strong>Your initial work is rarely your best; give yourself permission to fail, as long as you learn from the failure.</strong> This isn't a Heinlein quote, per se, but my own observation after reading his first-written novel, <a href="http://www.amazon.com/gp/product/074325998X?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=074325998X">For Us, The Living: A Comedy of Customs</a>, which was released several years after his death. He couldn't get the book published in the early 1930s when he first wrote it (for reasons that are obvious to a modern reader). Yet it's obvious that he used it as the source of many other story ideas. In fact, that was one of the many weaknesses of that first novel: It tried to do too much. (Does your software?)</P></p>
<p>On the other hand, the not-so-hotness of <em>For Us, the Living</em> should encourage you that even if you aren't a great programmer today, with dedication to your craft (and a willingness to write a <em>lot</em> of code), you could become one. Heinlein wrote <em>For Us, the Living</em> two years before he submitted "Lifeline" (his first short story) to a magazine; two years after that (according to Spider Robinson's book introduction), Heinlein was guest of honor at the Denver SF WorldCon. This novel demonstrates how much even a master has to learn &mdash; and what's really astonishing is how fast Heinlein learned it. (Four years from this to the WorldCon?!)</p>
<p>That's some of the things <em>I</em> learned from Heinlein. (And perhaps I inspired you to do a little more SF reading.) What did he write that influenced <em>you</em>?</p>
<p><em>You probably should <a href="http://www.twitter.com/estherschindler">follow me on Twitter</a>. Because, y'know, you just should.</em></p>
    ]]></content>
  </entry>
  <entry>
    <title>Several Tech Blogs Worth Exploring. Oh Yeah, All by Women.</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3512" />
    <id>http://www.javaworld.com/community/node/3512</id>
    <published>2009-10-08T15:12:36-04:00</published>
    <updated>2009-10-09T13:37:12-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="blogs" />
    <category term="women in IT" />
    <summary type="html"><![CDATA[<p>Rather than whine about the low numbers of women in technology, I'll turn the spotlight on several geeky women &mdash; in programming, design, or other techie circles &mdash; whom you might like to discover.</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>I try to ignore gender in choosing the people to admire, really I do. But sometimes &mdash; well, it gets to me.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Rather than whine about the low numbers of women in technology, I'll turn the spotlight on several geeky women &mdash; in programming, design, or other techie circles &mdash; whom you might like to discover.</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>I try to ignore gender in choosing the people to admire, really I do. But sometimes &mdash; well, it gets to me.</p>
<p>It all started when someone pointed me to this very good list, <a href="http://help.dottoro.com/blog/64-high-ranked-blogs-for-developers/">64 high-ranked blogs for developers</a>. I have no objection to any of the blogs on the list (<a href="http://weblogs.asp.net/scottgu/">ScottGu</a> is very cool, I love <a href="http://www.joelonsoftware.com/">Joel on Software</a>, etc.). But from a cursory examination (I didn't follow every link, and some names don't make gender obvious) it seems like only a couple of these are by women. And that just seems <em>wrong</em>.</p>
<p>So I decided to compile a list for developers, designers, and other techies of blogs-worth-reading whose authors just-so-happen-to-be (mostly) women. I'm a strong believer in women being more visible; we tend to fade into the background, too much, and to apologize for our achievements. (That's one reason <a href="http://www.amazon.com/gp/product/0814472109?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0814472109">why women earn less than men</a>; I'll get into that discussion another time.) Enumerating women-to-admire felt like a good way to highlight smart people who have wisdom to share. Fortunately, lots of smarter-than-me people were kind enough to make suggestions, for which I'm very grateful. (This doesn't count mailing lists, like <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-women">Ubuntu women</a> or the <a href="http://www.wise-women.org/about/join/">Wise Women discussion lists</a>; just blogs.)</p>
<p>Let me start with a few "planet" blogs. Usually these blog aggregation sites are categorized by technology or career interest (like <a href="http://planet.plone.org/">Planet Plone</a>), but a few focus on technical women. Among them is the <a href="http://planeteria.org/wfs/">Women in Open Source</a> planet. <a href="http://www.devchix.com/">DevChix</a> is another, though it isn't updated often. </p>
<p>Perhaps the most visible programming woman these days is Kirrily Robert, whose blog <a href="http://infotrope.net/blog/">Infotropism</a> tackles plenty of tech topics like JavaScript, but who is mostly famous these days for her <a href="http://infotrope.net/blog/2009/07/25/standing-out-in-the-crowd-my-oscon-keynote/">OSCON presentation about attracting more women to open source</a>.
</p>
<p>
One of the reasons I'm glad I got so much input from other people was that it let me, too, discover new blogs, such as <a href="http://www.codinggeekette.com/">Coding Geekette</a> from Sarah Dutkiewicz, "a self-admitted programming language addict." She's my kind of people! I already knew and followed some blogs, such as <a href="http://annaraven.blogspot.com/">Anna Martelli Ravenscroft</a>, a cherished friend who also happens to be a goddess of Python; related to the underlying "women in IT" theme here, among her latest posts is one that I particularly admire, <a href="http://annaraven.blogspot.com/2009/09/why-women-dont-talk-enough.html">Why women don't talk enough</a>, which I hope will encourage you (or women you know) to submit proposals to speak at tech conferences.
</p>
<p>
Developers whose interests also extend to site design (and really, shouldn't you be thinking about it more often?) should certainly see what <a href="http://www.websmithgroup.com/index.php/blog/">Kishau Rogers</a> has to say. As anyone who's chuckled along with <a href="http://www.voyce.com/index.php/2009/09/14/the-7-signs-your-ui-was-created-by-a-programmer/">The 7 signs your UI was created by a programmer</a> knows, there's a vast difference between someone who thinks about user experience and someone who thinks about code. (For one thing, the people in the former category dress better.)
</p>
<p>
For those who care about quality assurance (and if you don't, please don't tell me!), see Elisabeth Hendrickson’s <a href="http://testobsessed.com/">Thoughts on Testing, Agile, and Agile Testing</a>. She doesn't post very often, but it's always worth reading. Another Agile/QA blog is Abby Fitchner's <a href="http://www.thehackerchickblog.com/">The Hacker Chick</a>, which is beautifully written, insightful, and (maybe this shouldn't count, but it does) pretty.
</p>
<p>Have more academic interests? Alex McFerron's blog focuses on the <a href="http://iwanttolearnmath.blogspot.com/">Theory of Computer Science</a>, especially math-related topics.</p>
<p>Lotus Notes developers (I <em>do</em> have a fond spot in my heart for Notes) would be well advised to stop by the <a href="http://www.notesdesignblog.com/NotesDesignBlog/NDBlog.nsf">Notes Design Blog</a>, from Mary Beth Raven, and Marie Scott's <a href="http://www.bleedyellow.com/blogs/crashtestchix/?lang=en_us">CrashTestChix</a>; Marie also gets an extra nod from me for a cool name. (Why is it that so few women have cool blog names?!)</p>
<p>If you use VB.NET, you probably want to take a look at <a href="http://blogs.msdn.com/bethmassi/">Beth Massi</a>'s blog. As the person who suggested her site explained, "No one on my team had ever used VB before it was required for a project, and once we got the basics and started googling for more interesting bits, Beth's blog often turned up in the top hits and had good points."</p>
<p>Developers who pay attention to Microsoft technologies may want to visit <a href="http://www.heathersolomon.com/Blog/">Heather Solomon's blog</a> for her advice on all things SharePoint &mdash; though she doesn't post very often. For WPF and Silverlight information (especially on data binding, controls, and styles), absolutely check out <a href="http://bea.stollnitz.com/blog/">Bea Stollnitz's blog</a>. And <em>definitely</em> visit <a href="http://www.gregcons.com/KateBlog/">Kate Gregory's blog</a>, a woman I've admired ever since we met for a Women in IT panel at the Microsoft PDC a few years ago. I'm impressed by Kate's understanding of .NET technologies and her wry observations about the computer consulting life. Another .NET woman I know initially from the Microsoft "women in tech" luncheons is Kathleen Dollard's <a href="http://msmvps.com/blogs/kathleen/default.aspx">Leaning Into Windows</a>; I&nbsp;wish I&nbsp;had more opportunity to hang out with Kathleen, because she always says things that make my ears perk up.
</p>
<p>
And I couldn't possibly leave off my list Julie Lerman's <a href="http://thedatafarm.com/blog/">Don't Be Iffy</a> in which she highlights everything from .NET programming tips-and-tricks to developer jobs in Vermont. Julie is a personal friend, and the individual I think of when I envision "warm, caring person who just happens to be brilliant technically." (Well, no, I'm <em>not</em> dispassionate about her. I&nbsp;would drive several hours out of my way to have lunch with Julie.)
</p>
<p>
I also wish that <a href="http://www.sarahmei.com/blog/">Sarah Mei</a> posted more often to her Ruby on Rails and programming blog. Even her short items are good thought fodder. Ditto for the usually-but-not-always techie <a href="http://ws-dudette.blogspot.com/">Umit Yalcinalp</a>'s blog; she's a standards architect of many WS-*, Java, and XML specs (and a fashionista whose taste in jewelry I like).</p>
<p>You don't have to be aligned with any particular technology to appreciate Sarah Allen’s reflections on internet software and other topics at <a href="http://www.ultrasaurus.com/">the evolving ultrasaurus</a>. Allen, an active contributor to OpenLaszlo, an open source, XML-native foundation for building rich client applications, also had a great link to <a href="http://www.ultrasaurus.com/sarahblog/2009/08/hacker-love-songs/">Hacker Love Songs</a> &mdash; how cool is that?</p>
<p>To my mild surprise, I don't have many women on this list who blog about Java topics (and this is, after all, JavaWorld.com). That wasn't intentional; it just worked out that way. I'm not sure whether the lack is a reflection of the Java community or, more likely, just happenstance given the cross-section of people who responded to my request for help. I'm sure that others would appreciate it if you added additional (Java or not) great blogs (that just so happen to be by women) in the comments.</p>
<p><object width="425" height="344"><br />
<param name="movie" value="http://www.youtube.com/v/O293-kmyUj0&amp;hl=en&amp;fs=1&amp;"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/O293-kmyUj0&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
    ]]></content>
  </entry>
  <entry>
    <title>Looking Forward to Being Wrong</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3463" />
    <id>http://www.javaworld.com/community/node/3463</id>
    <published>2009-09-24T16:23:39-04:00</published>
    <updated>2009-09-24T16:33:11-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="education" />
    <category term="learning to program" />
    <category term="teamwork" />
    <summary type="html"><![CDATA[<p>Here's one quick way to tell how good a colleague is: How does he respond when he finds out he made a mistake?</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Here's one quick way to tell how good a colleague is: How does he respond when he finds out he made a mistake?</p>
<p>In my youth, I had a little obsession with Ayn Rand's novel, <a href="http://www.amazon.com/gp/product/0452011876?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0452011876">Atlas Shrugged</a>, and with the Objectivist philosophy behind it. Or maybe I just had the hots for Francisco, the dashing mysterious character who broke Dagny's heart. I can still recite whole passages by heart, even though I did, eventually, get over my fascination with the book. (Eventually, most of us survive our 19-year-old idealist phase, for good or ill. I do still love <em>Atlas Shrugged</em>, though when I re-read it, I skip over the preachy parts.)</p>
<p>However, an incident today brought to mind one <em>Atlas Shrugged</em> scene that I think is an important lesson for developers &mdash; or at least it's another way to explore your relationships with your coworkers, and perform a mental check on oneself.</p>
<p>My friend was complaining about "Frank," a programmer he works with (who was the focus of two earlier posts, <a href="http://www.javaworld.com/community/node/2779">When the Job Changes But the Programmer Doesn't</a> and <a href="http://www.javaworld.com/community/node/2796">Saving Frank's Job</a> &mdash; Yes, dear reader, Frank is still employed). The irritation du jour: When my friend demonstrated that Frank had written his code poorly and showed how to fix it, Frank became sullen and petulant and whiny. Frank didn't want to hear he had been wrong.</p>
<p>My friend's criticism wasn't meant to put the guy down; it was intended to be <a href="http://www.itworld.com/open-source/78271/mentoring-open-source-communities-what-works-what-doesnt">mentoring</a>, useful feedback from someone more experienced who could help Frank <a href="http://www.javaworld.com/community/node/2537">become a better programmer</a>. By Frank getting defensive, he was preventing himself from additional wisdom. (Frank was also pissing off a senior developer who can influence his career; maybe that's another issue. Or maybe not.)</p>
<p>One of the delightful side effects of my job is that my opportunity to interview and interact with some of the smartest, most accomplished people in our industry. And I long ago observed that they have two things in common. They attribute at least part of their success to luck. And they are always looking for opportunities to learn from other people &mdash; to find out where their own knowledge is lacking or incorrect. "Being wrong," to these famous people, is an opportunity to get smarter.</p>
<p>I'm obviously a great fan of mentoring and I easily can gush about what people can accomplish by learning from one another. In a regular office, you might be lucky enough to work with someone who takes you under her wing and gives specific advice about how to improve your code. Or a senior practitioner encourages you to talk his ear off about your hard choices and suggests solutions you didn't think of. Or, in an online community, some stranger helps you figure out what's wrong with your code... and helps you get smarter. All those require you to <em>embrace the possibility that your existing assumptions are wrong</em>. Because the first step in learning is to recognize that you don't know everything. </p>
<p>The people who look for lessons from "I was wrong" (so I can make better decisions next time) are, of course, the people with whom you want to work. Some might call this "egoless programming" but I think of it as something larger: an appreciation of rightness, no matter who the Right Person is.</p>
<p>As the brilliant-but-flawed scientist Dr. Stadler explains to Dagny Taggart in <em>Atlas Shrugged</em>: "Miss Taggart, do you know the hallmark of the second-rater? It's resentment of another man's achievement. Those touchy mediocrities who sit trembling lest someone's work prove greater than their own &mdash; they have no inkling of the loneliness that comes when you reach the top. The loneliness for an equal &mdash; for a mind to respect and an achievement to admire. They bare their teeth at you from out of their rat holes, thinking that you take pleasure in letting your brilliance dim them &mdash; when you'd give a year of your life to see a flicker of talent anywhere among them. They envy achievement, and their dream of greatness is a world where all men have become their acknowledged inferiors. They don't know that that dream is the infallible proof of mediocrity, because that sort of world is what the man of achievement would not be able to bear. . . . Of what account are praise and adulation from men whom you don't respect? Have you ever felt the longing for someone you could admire? For something, not to look down at, but up to?"</p>
<p>I like to think that you would prefer to work with someone you can look up to, and that you would be dismayed to have a coworker who's motivated by proving how right he is and how wrong you are. I wish I could give you some clever way to find out which sort of person you're dealing with early on, such as during the <a href="http://www.javaworld.com/community/node/2614">job interview process</a>. Perhaps there is some kind of early warning system, but I don't know what it is; if you have suggestions, by all means add them to the comments here. In reality, this appears to be the kind of observation you can only make over time.</p>
<p>But I think it's worth the time to consider this: How many people do you work with fit that definition of "second-rater"? And how the heck can you avoid them?</p>
<p>Am I wrong? </p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
    ]]></content>
  </entry>
  <entry>
    <title>I knew it was time to look for a new job when they said....</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3439" />
    <id>http://www.javaworld.com/community/node/3439</id>
    <published>2009-09-17T12:26:53-04:00</published>
    <updated>2009-09-17T12:37:43-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="job" />
    <category term="layoffs" />
    <category term="management" />
    <category term="resume" />
    <summary type="html"><![CDATA[<p>Or, Phrase Translation: Get Your R&eacute;sum&eacute; Out</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Or, Phrase Translation: Get Your R&eacute;sum&eacute; Out</p>
<p>If you've been in the industry for a while, undoubtedly you have had a Bad Work Experience. Whether you left a job on your own determinism or because you were pushed, months later you can look back at one incident that <em>should</em> have been a clue. With the help of several other people (all contributing anonymously), I hereby provide a Translation Machine to help you understand when the manager says one thing but really means, "Perhaps you should <a href="http://www.javaworld.com/community/node/3405">explore how best to improve your r&eacute;sum&eacute;</a> and <a href="http://www.javaworld.com/community/node/3341">brush up on interviewing skills</a>."</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>For example:<br />
Manager says: "You are not a team player."<br />
Manager means: "Start circulating your r&eacute;sum&eacute;, because there is no way you're going to make it past the next layoff."</p>
<p>Lesson: While it's perfectly reasonable for the company to want team members who care about the project's success, this phrase is not actionable and thus you cannot survive it. Especially if you're the programmer who worked through the weekend to make the software work.</p>
<p><a href="http://www.amazon.com/gp/product/0976694026?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0976694026"><em>Useful</em> feedback</a> is specific, meant to help you improve, with some sort of metric that lets you and your manager measure success. "You are not a team player" is a meaningless expression that means, "I don't like you." </p>
<p>Manager says: "We are reorganizing the department, but <em>your</em> job is safe."<br />
Manager means: "It's very easy to upload your r&eacute;sum&eacute; to Monster. You should try it."</p>
<p>Lesson: Maybe they mean it. Today. But how much do you want to trust them?</p>
<p><P>I could provide several variations on that theme. But the bottom line is, anytime there is a major change in the company, your job is at risk. You might indeed be the safest person there &mdash; but how much do you want to count on it?</p>
<p>Here's one of the variations: "Can you come to my office when you get to a good stopping point?" Wrote my developer-friend, "That was my first layoff. I had the misfortune to solve the last major problem for a project the day before the layoff, thereby earning myself the distinction of being the very last name added to the list."</p>
<p>Manager says: Nah, you don't need to go to that trade show. (And it's the primary show on your technology beat, utterly relevant to your job. You've attended every year for five years.)<br />
Manager means: Bye.</p>
<p>Lesson: If they won't invest in you, they don't expect to see any return.</p>
<p><P>Manager says: Nobody got a raise this year, you shouldn't complain.</br><br />
Manager means: We don't value your work. Also, no-raises is swiftly followed by pay cuts, which are soon followed by layoffs. Guess who's on the list? (Extra points for, "Yes, those were valuable contributions, but unfortunately they don't count as part of your real job.")</p>
<p>Lesson: The economy is a real issue, and I won't make light of it. But you shouldn't, either. I've known several companies whose idea of deciding, "Which employee is most expendable?" is "Let's sort the employee spreadsheet by salary, and cut from the top." (Never mind that this also likely eliminates the most experienced staff.) If you suspect you're making more than anyone else in the department... Gosh, <a href="http://www.javaworld.com/community/node/3383">which buzzwords should you include on your r&eacute;sum&eacute;?</a></p>
<p>Manager says: We need you to volunteer to "help" QA (or documentation, or pre-sales support) for a few months.<br />
Manager means: We are banishing you. Have a nice day.</p>
<p>Lesson: I've known several companies who "kindly" gave staff a graceful exit. At a high enough managerial level, the employee is given a title like Vice President in Charge of Nothing in Particular, an office with a folding chair and no window, and absolutely no job responsibilities. It's an unspoken suggestion that the company will provide a good reference if only the executive will kindly leave soon. People lower on the totem pole don't get such opportunities.</p>
<p>Manager says, "Here is our new employee policy for use of the Internet. Please sign this to indicate you've read it."<br />
Manager means, "We're going to need an excuse to fire people in the not-so-distant future, so we'll forbid you from checking your e-mail or doing any kind of non-work-related surfing, even on your lunch hour &mdash; and then catch you when we need to."</p>
<p>Lesson: It's time to polish that r&eacute;sum&eacute;. And to get everything personal off your computer.</p>
<p>And a few more, that need no explanation:</p>
<p>"At the first company I ever worked for, I was head of training/tech support/consulting. They announce the sale of the company at the company Christmas party: Our company was sold to our largest competitor, our arch enemy. I introduce myself to the new owner as the head of technical support. He says, 'Oh, tech support. Well we won't be needing <em>you</em> guys any more!' I went home and prepared my r&eacute;sum&eacute; MERRY CHRISTMAS!"</p>
<p>In one of my first jobs, wrote one correspondent, "Every so often the chairman would visit the office and during his walking tour would stop and ask various people 'So, exactly what is it that you do?' Translation: Pack up your stuff as the HR director will have you escorted out the door by day's end (no matter what answer they gave)."</p>
<p>Manager asks, "How long have you been working here, not including tomorrow?"</p>
<p>Manager says, "So. I was reading your blog...."</p>
<p>What would <em>you</em> add?</p>
    ]]></content>
  </entry>
  <entry>
    <title>What HR Professionals Look For in a Programmer&#039;s Resume</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3405" />
    <id>http://www.javaworld.com/community/node/3405</id>
    <published>2009-09-10T14:40:56-04:00</published>
    <updated>2009-09-10T18:39:21-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="job" />
    <category term="resume" />
    <summary type="html"><![CDATA[<p><P>Last week, I wrote about the <a href="http://www.javaworld.com/community/node/3383">resume mistakes</a> that can give your job application a short trip to the recycle bin. That was mostly a list of DO NOT DO THIS, and I had plenty of leftovers in the DO THIS category. This week, as promised, I share the opinions of professional HR staff and tech recruiters about what they <em>want</em> to see &mdash; and too often do not.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p><P>Last week, I wrote about the <a href="http://www.javaworld.com/community/node/3383">resume mistakes</a> that can give your job application a short trip to the recycle bin. That was mostly a list of DO NOT DO THIS, and I had plenty of leftovers in the DO THIS category. This week, as promised, I share the opinions of professional HR staff and tech recruiters about what they <em>want</em> to see &mdash; and too often do not.</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>
John Nicholson now runs <a href="http://www.resumesthatjump.com">Resumes That Jump</a> and previously worked at Brainbench, an IT certification company. He's found that the three critical things likely to be left off r&eacute;sum&eacute;s are:</p>
<ol>
<li>achievements</li>
<li>metrics</li>
<li>introductory summary</li>
</ol>
<p>Most people spend their entire r&eacute;sum&eacute; talking about everyday job duties, says Nicholson, such as "analyzed requirements" or "fixed bugs." They fail to stand out because plenty of other r&eacute;sum&eacute;s are full of those same duties. Yes, Nicholson says, cover your primary responsibilities, but do it concisely. "<strong>Focus instead on unique achievements</strong> &mdash; things you initiated, architected, built, or were selected for that had a lasting impact on the company," he advises.</p>
<p>One recruiter backed this up with a bit more passion, by saying she dumps applications listing duties or tasks in lieu of real accomplishments. "So you just showed up to work for the last five years and only did exactly what you were told? There are another 100 people in line behind you, some of whom could actually tell me how they could be useful," she writes.</p>
<p>The best way is to <strong>highlight achievements with numbers</strong>. It's especially helpful to use numbers that have business meaning. An HR person doesn't need to be a techie to understand "saved company $2 million" or "reduced hours by 70%." Quantify your duties, too, such as number of people managed or number of projects led. Numbers do three great things, says Nicholson. They act as "slow down signs" to readers, they add credibility and uniqueness, and they show you understand and value business results. "Quantification is more challenging for programmers than, say, salespeople, but it's very do-able," he say. "I almost never see an IT r&eacute;sum&eacute; with enough numbers."</p>
<p>A related mistake is describing your organization rather than what you did personally. One recruiter discards r&eacute;sum&eacute;s that tell her all about the company where you you worked and what they produced, instead of describing what <em>you</em> did to contribute. "I see this more on r&eacute;sum&eacute;s with little experience in an attempt to make the resume bigger," she says. "When a r&eacute;sum&eacute; lists what the company does, what the application does and what the group was responsible for, one has to ask the question, 'What the heck did <em>you</em> do?'"</p>
<p>Do <strong>include an introduction</strong> in your r&eacute;sum&eacute;. Instead of jumping straight from name and contact information to chronological work experience, start instead with a title or header ("Senior Java Developer"), a compelling summary paragraph, and scan-able list of skills or core competencies, Nicholson says. Done well, the introduction gives readers context and makes them want to read more.</p>
<p><P>Don't make that list of buzzwords generic. Marsh Sutherland, president of <a href="http://waldenrecruiting.com">Walden Recruiting</a>, says technologies listed should include a self-rating of Beginner, Intermediate, and Expert and years of experience. Certainly, "5 years of J2EE" is more appealing than "J2EE," no? It's also helpful to include the year you last used the technology, says Sutherland.</p>
<p>Be sure to <strong>reconcile technologies you list in the summary to specific positions</strong> on your r&eacute;sum&eacute;. Each job description should include a "Technical environment included" section as the last bullet, listing all the technologies you worked with in that role, says Sutherland. If you <em>really</em> want to stand out, he says, include sample code; naturally, it should be well-documented with instructions and it should actually work. (I have to assume that this applies only when the submission process makes it possible to provide sample code; most of those annoying online application systems &mdash; which have you upload your r&eacute;sum&eacute; and then make you re-enter everything again &mdash; don't make it easy to upload any extras.)</p>
<p>We already know that HR pros and recruiters really love to see <a href="http://www.javaworld.com/community/node/3034">technology certifications</a>, especially from the vendor of the technologies. If you have a choice (which I think generally means, "an existing employer who'll pay for it," right?) go for certification from the vendor. "Brainbench certification is nice and better than no certification, but not as good as a certification from the technology vendor themselves," advises Sutherland.</p>
<p>One unique situation that the HR people barely touched on &mdash; somewhat surprisingly, to me &mdash; is the expertise a developer gains on her own. I've long been a proponent of teaching yourself new, marketable skills by getting involved in an open source community. In addition to helping to <a href="http://www.itworld.com/open-source/72374/ever-expanding-open-source-community">improve the world</a> in some way, you can gain skills worth marketing elsewhere. Want to learn a new language, add a new platform to your arsenal, take on a new kind of responsibility? Pick an open source project, and dive right in. I'm sure this is happening far more often than most recruiters realize (especially if you include your FOSS experience as a job, which I've seen often on LinkedIn). Yet the only specific advice I was given in this regard is "Separate your professional experience from your personal/academic experience." And even then, it was in a training and back-up-assertions context; the HR pro wrote, "Just because you took a single .Net class, you're still considered a Mainframe developer if that's what your experience is in." I dare say I could research another entire blog post on "how to present your open source experience in a r&eacute;sum&eacute;," especially as more developers successfully use the FOSS-gained skills in open source jobs.</p>
<p><em>You should <a href="http://www.twitter.com/estherschindler">follow me on Twitter</a></em>.</p>
    ]]></content>
  </entry>
  <entry>
    <title>How to Make HR Dump A Programmer&#039;s Resume</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3383" />
    <id>http://www.javaworld.com/community/node/3383</id>
    <published>2009-09-06T21:17:30-04:00</published>
    <updated>2009-09-11T18:17:48-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="employment" />
    <category term="interview" />
    <category term="job" />
    <category term="resume" />
    <summary type="html"><![CDATA[<p><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>We all like to think that applying for a job puts your r&eacute;sum&eacute; in front of your prospective new boss: a hiring manager who understands the technical background you carefully explained in your career summary. But most programmers apply for new jobs through the Human Resources (HR) department, which exists to eliminate candidates rather than to find them. If HR decides your background isn't right for the job, the hiring manager will never know about you.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><p>We all like to think that applying for a job puts your r&eacute;sum&eacute; in front of your prospective new boss: a hiring manager who understands the technical background you carefully explained in your career summary. But most programmers apply for new jobs through the Human Resources (HR) department, which exists to eliminate candidates rather than to find them. If HR decides your background isn't right for the job, the hiring manager will never know about you. Even when you <em>know</em> you have the job skills the company wants, you can be eliminated for arbitrary reasons.</p>
<p>Most guides to writing r&eacute;sum&eacute;s and CVs reasonably encourage you to write for the knowledgeable person with whom you'll interview: someone who can appreciate your brilliant achievements. This can be a particular problem for software developers because so much of the r&eacute;sum&eacute; is in-depth technology descriptions that a recruiter is unlikely to understand. A programmer easily can apply for a job whose duties are beyond a well-meaning HR pro's personal technical knowledge.</p>
<p>Obviously, the best strategy is to go around HR whenever you can, and eliminate the middleman. But when you're faced with a perfect-sounding job to which you can only apply by writing to <a href="mailto:something-or-other@craigslist.org">something-or-other@craigslist.org</a>, HR is unavoidable. So in a marketing sense there are two audiences, the staffing person and the manager, and you need to answer the concerns of the first before the second will hear about you.</p>
<p>Instead of continuing to complain about the situation, though, I decided to ask HR and staffing professionals how they eliminate you. That is: When an HR pro is looking at r&eacute;sum&eacute;s from software developers applying for programming positions, what makes the recruiter hit Delete without thinking twice? What items in a r&eacute;sum&eacute; makes them crumple up the paper (virtually) and throw it in the circular file? What makes them think, "What<em>ever</em> made you imagine <em>you</em> are qualified?!" A few dozen people responded to my query, and helped me learn how you can keep your r&eacute;sum&eacute; out of their trash bin. I don't promise you'll like this list of their criteria. But it doesn't matter if you agree with their perceptions; they are still between you and that job interview.</p>
<p>Let's start with the most obvious lesson: <strong>You need the buzzwords.</strong> Most HR professionals rely on a keyword matching process and an automated applicant tracking system &mdash; those tedious web forms you fill out. If you don't have good "key words," you won't show up on their radar as having the right experience.</p>
<p>These systems are understandably literal. A human might see "Paris" and recognize, "That's in France," but a search algorithm will not. So you have to be far more explicit than you think you ought to be. <em>You</em> know that J2EE experience counts as Java; an HR person who types "Java" into a r&eacute;sum&eacute; search system will only find that experience if "Java" is mentioned in your document.</p>
<p>Despite the expectation that you'll have the right list of technical qualifications, many HR professionals also want you to write in business terms and avoid technical jargon. Yes, I realize that appears to be contradictory advice, but it behooves you to find a balance. Sharon Blaivas, a former recruiter at Goldman Sachs who's now a resume writer for <a href="http://www.shakeupmyresume.com">shakeupmyresume.com</a>, says HR professionals want to see r&eacute;sum&eacute;s that are pleasing to the eyes and understandable &mdash; not "a bunch of techno babble thrown on a page from margin to margin making the reader fear that the candidate won't work well with non-technical people." Your r&eacute;sum&eacute; may never see paper, Blaivas says, but it should have a clean appearance and nice formatting.</p>
<p>However can you do both?! Another recruiter suggested you dumb things down a bit. That is, he said, "Create a resume that a layperson will understand. Yes, include the technologies used and maybe a bit about your methodology, but make sure it's readable to the point that a non-techie friend can get the gist of what you've accomplished in each job. Keep that tech-oriented r&eacute;sum&eacute; for the hiring manager to review."</p>
<p>Perhaps that more in-depth technical overview is suitable for a web-friendly page to which you can direct the hiring manager (should you be lucky enough to get past HR). Because, continued the recruiter, IT folks are notorious for long resumes&mdash;painfully long resumes. "Much of this is due to the project-based nature of their work. However, they need to show some discipline," he says. "A resume is not a CV. It's not a data dump. It's not a bio. <em>It's a marketing tool used to market YOU as a candidate</em>." Or as one recruiter once made clear to me: the job of your r&eacute;sum&eacute; is not to get you a job. It's to get you an interview.</p>
<p>The HR people are indeed looking for the <strong>academic background and certification</strong> "achievements" that irritate the heck out of techies who might have <a href="http://www.javaworld.com/community/node/2651">the right technical background without a college degree</a> or personally believe that <a href="http://www.javaworld.com/community/node/3034">vendor certifications don't accurately judge ability</a>. One HR pro listed the things he looks for, from higher to lower importance, as:</p>
<ul>
<li>Academic education</li>
<li>Technical experience</li>
<li>English level</li>
<li>Right language structure and sintax [<em>sic</em>]</li>
<li>CV arrangement</li>
</ul>
<p>But that's just the start. Here are more mistakes you can make in trying to get past the HR department:</p>
<p><P><strong>Misrepresenting how long you worked with a particular language or technology</strong>. Johnny C. Taylor, Jr, author of <a href="http://www.amazon.com/gp/product/0814413447?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0814413447">The Trouble with HR</a> cites software developers who'll emphasizing proficiency in a new programming language in a way that isn't credible. Just as you and I have seen job ads calling for five years of experience in a technology that hasn't existed for five years, some folks pad their r&eacute;sum&eacute;s in an equally dumb manner.</p>
<p><P>A little less obviously, developers sometimes claim technology expertise in their summary, Taylor says, but they fail to show any actual work experience with the language. For some recruiters, this is a major turnoff &mdash; one that'll get your application dumped immediately. If you list a technology in your technical summary, then you should be ready to pass a technical screen on that technology. <strong>Don't exaggerate experience</strong>, particularly with self-proclaimed labels. "Someone a year out of school and no prior experience calling themselves a test architect," for example, is a fast trip to the trash heap for at least one recruiter. Don't try to give vague arm-wave to get noticed, either. One hiring manager rejects applications with "lots of buzzwords that mean nothing," such as "familiar with the SDLC." She wrote, "<em>Which</em> SDLC do you mean and how does you're being familiar help me?" Don't use words like "familiar" because they are too mushy; does that mean you can recite back a list you memorized for an interview question or that you actually understand what activities are appropriate when? "I see this a lot on resumes with little experience in an effort to make the resume look bigger," the manager says.</p>
<p>Software developers need to learn the art of <strong>leaving out irrelevant skills.</strong> For example, Taylor says, a developer who proclaims proficiency in basic business applications such as Microsoft Word is working against herself. "A programmer I am interested in hiring should have enough relevant experience that padding a resume with trivial items is unnecessary," Taylor says.</p>
<p>That also means leaving out experience, such as the stint in high school where you worked at a retail job, when you've had more than ten years of experience. "Telling me about high school or college clubs, honors, and the like when you're a mid career professional is just silly," wrote one HR pro. "FORTRAN, COBOL, and other obsolete programming languages really make you question how strong the programmer is in object oriented best practices," said another.</p>
<p>None of the HR people I interviewed for this post said so directly, but long ago I was advised to leave off my r&eacute;sum&eacute; any technology that I didn't want to work with today. I may once have been a goddess of OS/2 system internals (well actually, yes I <em>was</em>), but if I'm not prepared to accept a job doing that today... leave it out.</p>
<p>Don't be irrationally loyal to a system or exhibit your pride in being an early technology adopter &mdash; not with the HR people, anyway. Submit a r&eacute;sum&eacute; in .doc rather than .docx or Open Office's .odt. If a recruiter can't open your file, I was advised, she's not going to try very hard to find a way to view it.</p>
<p>Here's three r&eacute;sum&eacute; items that will get one technical recruiter (at a 70 person firm in the Pacific Northwest) to hit the Delete key:</p>
<ul>
<li>Hasn’t worked in 9+ months without addressing reason why. Even in this economy the mid to senior level developers are finding jobs with only a few months gap. So unless you tell me right away why you haven’t been working (school, travel, etc) I am going to assume you aren’t very good.</li>
<li>Out of the country and looking to work remotely. I haven't found a client yet that is open to paying a fee to find them this type of candidate.</li>
<li>No experience in the language/tools relevant to the position. Missing some of the tools is fine, but if you are a 10+ year embedded C developer, my client won’t look at your r&eacute;sum&eacute; for a job requiring 5+ years of Java experience working on web apps.</li>
</ul>
<p>Some advice given by recruiters is certain to rub programmers &mdash; oh, excuse me, <em>software developers</em> &mdash; the wrong way. For example, Marsh Sutherland, president of <a href="http://waldenrecruiting.com">Walden Recruiting</a> feels the word "programmer" elicits old school mainframe programming. "Modern titles are software engineer and developer," Sutherland says. I'm not sure that most techies would agree (but then I just had a reader write a long diatribe about the difference between "journalist" and "reporter," making a distinction that nobody I know in the profession would recognize). But it's what the recruiter thinks that counts, because it's the recruiter's hand on the DELETE key.</p>
<p>More important, perhaps, is the language used in your r&eacute;sum&eacute; that's meant to appeal to the techie manager to whom you hope to report, not to the HR person who has to examine the r&eacute;sum&eacute;. One HR pro was ready to dump "silly job titles that are screaming to be noticed," such as "Web site dazzler," which "seemingly never get you noticed." Stephanie Krebs, who works at Sapphire Technologies, is also turned off by "programming guru" because she sees it as overselling; someone always knows more then you, Krebs says. (Perhaps the lesson here is to have a buttoned-down r&eacute;sum&eacute; for when you submit to an HR department, and the personable appeal-to-other-techie version for when you know you're applying directly to a technical manager.)</p>
<p>That's plenty of negative advice, isn't it? All sorts of things you should avoid doing. But what do HR professionals and job recruiters <em>want</em> to see on a programmer's r&eacute;sum&eacute;? We'll cover that in the second part of this series, next week.</p>
    ]]></content>
  </entry>
  <entry>
    <title>Taking Time for Appreciation: Jerry Weinberg</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3371" />
    <id>http://www.javaworld.com/community/node/3371</id>
    <published>2009-08-31T14:01:15-04:00</published>
    <updated>2009-08-31T18:06:08-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="agile" />
    <category term="Jerry Weinberg" />
    <category term="mentor" />
    <category term="software development lifecycle" />
    <category term="software testing" />
    <summary type="html"><![CDATA[<p>No matter where we are in our careers, we are influenced by other people. Sometimes the people who teach us do so consciously, one-on-one; we call these mentors. Others have a wider impact. We call them leaders.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>No matter where we are in our careers, we are influenced by other people. Sometimes the people who teach us do so consciously, one-on-one; we call these mentors. Others have a wider impact. We call them leaders.</p>
<p><a href="http://www.amazon.com/gp/product/0932633757?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633757"><img border="0" src="51RS6XYy07L._SL160_.jpg"></a><img src="http://www.assoc-amazon.com/e/ir?t=thegroovycorpora&amp;l=as2&amp;o=1&amp;a=0932633757" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" align="right" /><br />
I could probably write a whole blog post asking you, "Which books most influenced your programming or IT career?" Any maybe, one day, I will. But there's no doubt that my Top 5 would include Jerry Weinberg's <a href="http://www.amazon.com/gp/product/0932633013?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633013">Secrets of Consulting</a>, a book that that helped me get past programmer-think (in which all is logic and code) to explore the nature of giving advice for pay. In a series of easy-to-read anecdotes, he helped me get my own consulting practice off the ground in the late 80s, by teaching me how to deal with difficult clients, what to do when <a href="http://www.javaworld.com/community/node/3318">the client wants more than I thought I had agreed to</a>, and other business issues that didn't come naturally, at least not to me. I've interviewed him on a few occasions, such as <a href="http://www.cio.com/article/184000/The_Unfulfilled_Project_An_Interview_with_Jerry_Weinberg">The Unfulfilled Project</a>, and we've had a few spirited conversations in which Jerry has gently shaken my assumptions.</p>
<p>However, I'm far from the only person to be influenced by Jerry Weinberg, who's written books and articles on topics that range from computer systems and programming to education, problem solving, and writing. And, in a move that's remarkable for our "what have you innovated for me lately" industry, Dorset House recently published, <a href="http://www.amazon.com/gp/product/0932633757?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633757">The Gift of Time: Essays in Honor of Gerald M. Weinberg on his 75th Birthday</a>. You may want to take a look at it &mdash; even if you haven't encountered Jerry before &mdash; for two reasons. First, the Who's Who of contributors both shares useful lessons for software developers (I'll get to those in a moment). And also because it's a good thing, every so often, to acknowledge how much we have learned from other people... and thus to contemplate the ways in which we influence the people around us.</p>
<p>Jeez, that sounds so self-conscious. Would you listen better if I said: This is fun, thoughtful reading?</p>
<p>Because it is, at least in summary. These are not fannish love letters from some of the top names in our industry (such as <a href="http://www.satisfice.com/">James Bach</a>, <a href="http://estherderby.com/">Esther Derby</a>, and <a href="http://www.systemsguild.com/GuildSite/TRL/Tim_Lister.html">Tim Lister</a>). Most are standalone long-ish articles on topics that can help us do our jobs better, which just-so-happen to be inspired by Jerry. As with any collection of essays (or short stories), some will appeal more than others. A few didn't hold my interest, and I skipped ahead &mdash; but the good ones make the book worth the purchase price.</p>
<p>My favorite probably is Tim Lister's essay, "The Consultant's Consultant," who shared a consulting situation that was all too familiar to one I recently experienced (on the user side of the table). Lister's client had a big IT project that had been divided into three releases, spread out over a year or two. But the users "unreasonably" insisted on non-showstopper features being included in Release 1. When Lister researched the reasons why, it turned out that <a href="http://www.javaworld.com/community/node/3292">the corporate culture</a> put all emphasis and staffing on Release 1, then less and less priority on Releases 2 and 3. "They didn't believe that their Release 2 was coming any time soon, and they believed Release 3 was fiction," Lister writes. As a result, users fought to get as much into Release 1 as they could. Lister didn't find a magic bullet to solve the problem (I don't want you disappointed, looking for an answer that isn't there) but I liked his analysis of the problem and how/why a developer or consultant might find and address it.</p>
<p>I also enjoyed the anecdotal interplay in James Bach's story about his software testing exercise using playing cards, and how Jerry continually pushed the assumptions and rules. ("'There <em>are</em> four cards,' he replied with comic indignation. Then he pointed at a napkin on the table. 'I call that a card. . . . It looks like a card to me. It's made of paper. It's flat.'") Jerry opened himself to learning about potential variables and thus, says Bach, "He was practicing the first responsibility of a tester."</p>
<p>I've also long admired Esther Derby's sensible advice for IT managers; as an editor, I've enthusiastically assigned her articles like <a href="http://www.cio.com/article/123406/Stop_Demotivating_Me_">Stop Demotivating Me!</a>. For <em>A Gift of Time</em>, she wrote about congruent feedback, sharing advice about how to give feedback to the people you work with. Certainly, she was inspired by Jerry (who told her, "If you can tell a coworker that he has BO and he feels you've given him a gift, you can offer feedback about any situation") but Esther's advice is very much her own &mdash; and, as I've come to expect, thoroughly worthwhile.</p>
<p>Depending on your background, your current itch at work, or your temperament, you might be more engaged by different essays, such as Johanna Rothman's "Writing is the One Surefire Way to Avoid Writer's Block" or Naomi Karten's "The Wisdom and Value of Experiential Learning." But I do expect you'll like at least a few of these as much as I did. End result: This is a book worth reading, even if you've never heard of Jerry Weinberg.</p>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
    ]]></content>
  </entry>
  <entry>
    <title>Learning Job Interview Skills from Actors</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3341" />
    <id>http://www.javaworld.com/community/node/3341</id>
    <published>2009-08-24T13:52:22-04:00</published>
    <updated>2009-08-24T14:01:27-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="interviews" />
    <category term="job" />
    <summary type="html"><![CDATA[<p>People comfortably tell you that every job interview is an audition. Well, yeah, sure. But few people tell you how an actor gets past the audition to get the part. Here's a few lessons from a famous acting book that just might help.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>People comfortably tell you that every job interview is an audition. Well, yeah, sure. But few people tell you how an actor gets past the audition to get the part. Here's a few lessons from a famous acting book that just might help.</p>
<p>For one hot, humid summer in the late 1980s, while on a consulting contract, I sublet an apartment a few blocks from Harvard Square in Cambridge, Mass. The apartment had many virtues, but top among them was that the couple who ordinarily lived in the one-bedroom apartment were working actors; we got the place because they were off in New York state doing summer stock. The apartment was chock-full of books, floor to ceiling, on subjects far outside my techie knowledge, such as books of plays and acting techniques. I expanded my reading list quite a bit that summer. And in so doing, I learned a few valuable lessons that helped me in my career.</p>
<p>Among the books I pawed through was <a href="http://www.amazon.com/gp/product/0802772404?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0802772404">Audition: Everything an Actor Needs to Know to Get the Part</a> by Michael Shurtleff, who was casting director for lots of movies and Broadway shows you know. During a phone conversation with a friend, last week, I found myself explaining how Shurtleff's advice to actors &mdash; 12 "guideposts" &mdash; had helped me as a writer. But after re-reading the book, at a distance of 25 years, I realized how useful his advice is for people enduring the job interview process. Particularly software developers, I think, because programmers often prefer logic over emotion, and so much of the job search process is an emotional one. What else do you think, "We're looking for someone who will 'fit in'" means?</p>
<p>So I've pulled a few bits of advice out of <a href="http://www.amazon.com/gp/product/0802772404?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0802772404">Audition</a> that might help you as you search for a job or a <a href="http://www.javaworld.com/community/node/3104">contract position</a>. These are only a small sample, though. While much of the book probably isn't relevant for convincing someone of your Java expertise (such as how much attention to pay to stage directions), a surprising amount of the book is useful to anyone who's trying to "get the gig." As Bob Fosse wrote in the introduction, "After all, isn't a business interview an audition in a way? Isn't a first date? In today's world everything seems like some sort of long audition to me."</p>
<p>For example, Shurtleff tells actors not to worry about what the auditors want. (In this context, "auditors" are the people listening to the actor's scene reading.) "They may have Someone Glorious in mind, but that has to be eventually translated into the reality of a living, breathing human actor. It will probably be far from what the creators had in mind when they started out. It could be you." As evidence, Shurtleff explains that when he worked on the film, <a href="http://www.amazon.com/gp/product/B00079Z9VO?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00079Z9VO">The Graduate</a>, director Mike Nichols knew <em>exactly</em> what he wanted: "a new young James Stewart, tall, basketball player, Eastern Ivy League college-type fellow." You already know whom he chose, months later: Dustin Hoffman. To riff off Shurtleff's two morals: always interview for everything, if they allow you, even if you think you're wrong for it; and whomever the interviewers <em>say</em> they're looking for can change into someone totally opposite, if they think you're talented and interested and committed.
</p>
<p>He also has useful advice about nervousness. "Most actors come into the interview situation wearing a thick mask, spending their energies to protect themselves. It's rough interviewing someone who is determined to keep himself hidden. It's a lot harder to interview than it is to be interviewed. If you would keep <em>that</em> in mind &mdash; the rough job the interviewer has &mdash; you might be able to relax a bit more and be more helpful. Try a little empathy. ... Why don't you try being interested in the interviewer? I would sure help break the ice." That's certainly been true for me; the best gigs I've ever gotten happened after I really connected with the person with whom I interviewed, and I bet that's true for you, too. (I once spent an hour and a half on the phone in the initial phone call. My husband, who'd been in the other room, said, "That couldn't have been your interview. There was too much laughter." I got the gig; in addition to it being a great job, I became friends with my boss.) If you relax enough to get to know the people you'll be working with, you also have a better chance of discovering if <a href="http://www.javaworld.com/community/node/3292">this is a place you want to work</a>, not just a place from which you'd like to collect a check.</p>
<p>And, of course, there's the issue of persistence. If you think it's tough getting a job as a software developer, imagine how hard it is for actors, where only a tiny percentage can earn a living doing what they love most. (In my youth, I dated a Broadway actor, so I observed this close-up.) In his opinion, most actors fail not to lack of talent but because of a lack of drive or discipline, or they're literal rather than truly imaginative. Also, he says, actors are victimized by their limitations and prejudices, and are ruled by their negative side. People do argue awfully hard to keep their limitations. Personally, I'm amazed by how often someone won't even send in their r&eacute;sum&eacute; because they lack one item on the Wanted list; Mom taught me, "Let people do their <em>own</em> refusing." Shurtleff shared a story about the then-young Ben Vereen trying out for <a href="http://www.amazon.com/gp/product/B00004W5VC?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00004W5VC">Pippin</a> despite the fact that the original part was called "Old Man." Vereen turned in a sensational audition, Shurtleff says. "The role was enlarged and rewritten for Ben Vereen. He walked off with the show."</p>
<p>I'm not saying that the company will create a programming job that uses every one of your technical skills or exploits your management abilities. But if you decide not to apply for a job because <a href="http://www.javaworld.com/community/node/2651">it calls for a college degree you don't have</a>, you certainly won't get the position.</p>
<p>I could go on, and cite his anecdotes about how poorly Robert DeNiro interviewed and a way-too-long-to-quote story about Barbra Streisand's willingness to take a risk. But I think you'll enjoy reading the book on your own &mdash; even if you aren't looking for a job at all.</p>
    ]]></content>
  </entry>
  <entry>
    <title>Four Ways to Get Burned by a Computer Consulting Contract</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3318" />
    <id>http://www.javaworld.com/community/node/3318</id>
    <published>2009-08-16T22:23:53-04:00</published>
    <updated>2009-08-16T22:28:47-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="consulting" />
    <category term="contract" />
    <category term="contracting" />
    <category term="law" />
    <category term="legal" />
    <summary type="html"><![CDATA[<p><em>What lessons can you learn from these horror stories?</em></p>
    ]]></summary>
    <content type="html"><![CDATA[<p><em>What lessons can you learn from these horror stories?</em></p>
<p>Anyone who has spent any length of time as a computer consultant (either as an individual or as part of a programming team) has at least one sad tale of woe. Sometimes it's a clueless client; other times it's a dumb technical mistake you made yourself. But all too often, the developer's error is in the legal contract she signs. With the help of several people who painfully admit to a "learning experience," (with names omitted) today I'll share several ways a contract can go wrong. I'll also point out what could have been done differently &mdash; so that you, o best beloved reader, do not suffer the same ugly fate.</p>
<p>These anecdotes are related primarily for developers who are also computer consultants (or wondering if they <a href="http://www.javaworld.com/community/node/3104">dare to hang up their own shingle</a>), but they are equally relevant to programmers who write code for their company's internal use. Every time you read "contract," you can just substitute "agreement with your user."</p>
<p><strong>1. No graceful exit strategy.</strong> The first story is my own. Once, my two-person company had a contract with a then-major minicomputer company to write a custom QA application for a new hardware line. (This is before I became a computer industry journalist, obviously. It's long enough ago that I could write "major minicomputer company.") The contract was split into several phases, and was slated to last for seven or eight months. After a long contract negotiation in which the client got picky about a few dumb items (one of which would have had us working for free), we finally got to work. The first phase went fine. But during phase 2, suddenly things went awry. Literally, over the weekend, the client went from "This is great!" to "This isn't intuitive. Fix it." To make a long story short, we walked away, mystified and broke, since we'd budgeted for a solid six months of work from this job.</p>
<p>In my case, the universe was kind; years later, I found out the rest of the story. An ex-employee of the (now defunct) microcomputer company told us that the hardware line for which we were writing the app was canceled. The contract didn't give the company any way out except to reject the prototype in Phase 2. Otherwise, by the letter of the contract, they would have had to pay us for the entire six months of work. The client might have been honest with us (and we'd likely have negotiated with compassion) but I suppose they didn't think they could take the chance. To this day, I can't believe that we spent so much time on the contract without any other kind of exit clause. I learned to look for a clause that lets either party walk away in the case of unforeseen circumstances, with options that are fair to each party.</p>
<p><strong>2. Beware scope creep.</strong> Scott had a time and materials (T&amp;M) contract with a client who was a referral from a colleague. Before work began, they agreed on rates and the scope of the work, and he provided an estimate. Scott stayed within the estimate and scope and delivered on time. "When I presented the bill (which was actually 15% below the estimate), they offered a partial payment that was less than half," he says. "Being a one man shop, I accepted the payment, though advised them that that was not how I did business with small projects and that the balance would need to be paid off within 60 days. Then they expanded the scope, claiming they did not understand that they would not get all of these features that were never discussed at any level, and would not pay what they owed until they got it."</p>
<p>Scott's position got a lot uglier and finances headed south. At the end of the tale, he accepted a salaried position six months later at a 30% reduction in income.</p>
<p>Many woes are wrapped into the label "scope creep" but this particular horror story exhibits several. Most consultants I know expect some kind of down payment from a new-to-them client. At the very least, there should be a phased approach with interim releases, and payment made at the acceptance of each release. By requiring payments to be made at fixed stages, a consultant can limit the financial damage if something blows up. (If nothing else, you learn whether their idea of "Net 15" is measured in weeks rather than days. But getting paid is a different subject; I'll save that for another time, assuming you exhibit interest.)</p>
<p>Scott's situation also implies that the "scope of the work" was not adequately documented; the client may very well innocently but wrongly assumed features to be included because gosh, <em>he</em> thought of them. The phased delivery also gives the client an opportunity to make changes &mdash; to which the answer is always, "Why <em>certainly</em> we can do that. And here's how much extra it will cost you."</p>
<p><strong>3. Fixed price gone wrong, terribly terribly wrong.</strong> Bob was once co-owner in a small Bay Area custom software development firm. Initially, they made good money doing fixed-price contracts because their clients were all reasonable folks. "Then we got a client who wanted a Windows-to-Mac port of a GUI front-end for a CD-ROM-based database," he writes. "They claimed they couldn't provide a complete functional specification for the software, but they had a marketing feature list, and we had the Windows version to play with. So we agreed to match the functionality of the Windows version." Boy, was that a mistake. The Windows software had crazy, non-obvious features which they'd only discover when the client reported a test version didn't work. They lost their shirts on that project, and soon learned that any project with squishy scopes was a bad idea. "I decided to never do anything but T&amp;M again. Life is too short to argue about things like that," says Bob.</p>
<p>You can't blame a client for wanting a fixed price; none of us wants a big surprise, especially when budget approvals are part of the client's business process. But by my observation, fixed price contracts only work when you-the-consultant have a lot of control over the entire process. Ideally you know the client, the <em>real</em> scope of the project (don't depend on client assurances), and the project priorities (if the fixed price project takes longer than the time you budgeted, how will it impact your other commitments? by which I mean, the other clients who <em>do</em> pay on time and are waiting for you to serve them?).</p>
<p>It's hard to resist accusing the client of mal-intent (if not reproductive acts that are physically impossible), but what's funny-or-scary is that most of them simply operate out of computing and business innocence. As Bob says, "That client kept coming back off and on for almost a decade, wanting us to work the same way: no specs, fixed price, yadda yadda. And they just couldn't understand why we didn't want to do that again."</p>
<p><strong>4. Protect yourself from those who would steal from you.</strong> Mark, the practice VP for a small regional consulting firm in the midwest, negotiated a contract with a health care services firm to provide applications enhancements, security and related project management. "We had a rock-solid contract with the client and our consultants, including to not discuss rates, and mutual protections against hiring each others' staff," Mark tells me. But after a few months, his project too went from "Awesome job!" to "What's happening?!" over one weekend. In Mark's case, the problem was caused when the client attempted to hire two of his consultants directly (clearly a breach of contract), and one consultant divulged rates and costs. "We got paid for our work to that point, but the project was canceled when we refused to totally ignore their little indiscretion," Mark says.</p>
<p>There are, alas, endless variations on this theme. Bob, from the previous scenario, says that on two occasions people gave their confidential bids to competitors, who then undercut them. "From the first, I learned that a software design should never go into a bid, and if the client wants a design, it's a deliverable to be paid for at a very, very high rate," Bob says.</p>
<p>Howard, a consultant I've known online since the beginning of my consulting career 25 years ago, learned to look at his contracts for time limits, with a default action taken if nothing is done. For example, he was handed a contract that said all billing needed to be for approved timesheets. "I added a clause that said that if timesheet was not approved or rejected (with explanation) within 7 work days, then it was to be considered automatically approved." That clause would prevent someone from stonewalling the approval process to prevent Howard from getting paid; it also (in a more common and benign situation, but no less financially painful) covered the possibility of the approvers being on vacation or otherwise unavailable.</p>
<p>You can't think of everything. But one wonderful bit of advice I was given, around the time I met Howard, was to view the contract as "What to do when everybody wants to screw each other." Sweet new consultants blanch at such a thing; after all, we <em>like</em> the client, we would never want to hurt him! But my advisor from long ago pointed out that project problems never arise from what's in the contract; they come from what <em>isn't</em> there. A contract clause that says, "Client will pay for..." might be irritating but it won't make anybody angry (except at themselves for agreeing to such a stupid thing). It's the items that <em>nobody</em> agreed to in writing that cause angst. If the contract doesn't say who'll pay for the such-and-so, that's when the shouting starts &mdash; and the lawyers lick their lips.</p>
<p>There's four horror stories &mdash; and their lessons &mdash; to begin with. Feel free to add from your own experiences, to save some poor soul the pain you went through.</p>
    ]]></content>
  </entry>
  <entry>
    <title>Judging the Corporate Culture During the Job Interview</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3292" />
    <id>http://www.javaworld.com/community/node/3292</id>
    <published>2009-08-09T18:07:41-04:00</published>
    <updated>2009-08-12T19:18:16-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="culture" />
    <category term="interview" />
    <category term="job" />
    <category term="teamwork" />
    <summary type="html"><![CDATA[<p>You don't need me to tell you that your job satisfaction is based less on the tools you use and the skills you learn than it is on the team and company culture. But how can you tell, while you're going through the interview-and-offer process, if these are folks you want to hang out with?</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>You don't need me to tell you that your job satisfaction is based less on the tools you use and the skills you learn than it is on the team and company culture. But how can you tell, while you're going through the interview-and-offer process, if these are folks you want to hang out with?</p>
<p>The job-acquisition dance sometimes seems like it has two performances. There's a public, polished show in which everyone (both candidate and company) tries to make themselves look as attractive as possible, and at the same time there's also an undercurrent in which all the participants are trying to guess what the others are "really like." Sure, he claims to be a JQuery expert, an SEO god, and a bowling champion, but is he really? The company says it's dedicated to the welfare of its employees, blah blah blah. You wonder if they mean it.</p>
<p>When you're desperate for a job, <em>any</em> job, then maybe you feel like you don't have options. We all have to put kibble into the kitty bowl, after all. But when your straits are not quite so dire, and you can sensibly recognize that job interviews go two ways &mdash; though it surprises me how few people (especially software developers) keep that in mind &mdash; it's important to judge whether you'll fit into the company culture. You want a job that makes you excited to get up and go to work, don't you?</p>
<p>So I was particularly interested in reading <a href="http://www.cio.com/article/498642">8 Ways Job Seekers Can Assess a Prospective Employer's Corporate Culture</a>, written by my ex-colleague (and, I hope, friend forever) Meredith Levinson. Meredith interviewed Vanessa Hall, author of <a href="http://www.amazon.com/gp/product/1934572179?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1934572179">The Truth About Trust in Business</a> and, as always, she did a fine job at drawing out the author's opinions.</p>
<p>But really, I think Hall left entirely too much on the table. While I don't really disagree with anything she told Meredith, I think the advice on how to evaluate the company culture could stand to be far more granular. When it starts looking like you'll be offered the job, and you start to wonder if you'll say Yes, here's some of the things I'd consider. (Naturally, I'd start with several of the questions in <a href="http://www.javaworld.com/community/node/2745">28 Questions You Wish You Asked the Manager During the Job Interview</a> and, just for balance, read the comments on <a href="http://www.javaworld.com/community/node/2614">19 Ways to Know The Software Development Job Interview is Over</a> as a cautionary tale.)
</p>
<p><strong>Laughter</strong>. I assume that, at some point, you walked through the halls in the office. (If you only saw the HR rep's office or met managers in a conference room... I'd worry. If nothing else, it'd mean you couldn't judge the next point.) How often did you hear people laughing? Even when people are intent on doing their jobs and wholly lost in a warm creative fog, they smile when they interact with other people. Try to step back from how <em>you</em> felt in the interview situation and try to assess the mood. It's one of the few useful things you can do sitting in the lobby, waiting for the HR rep to arrive. Watch people. See if they're glad to be there... or if they look desperate and scared. If they are laughing with one another, and you see this several times, I'd start to feel good about the company.</p>
<p><strong>The office layout</strong>. Some people like to collaborate in big wide open spaces; others want a door that closes. (Me? I want a cat nearby. Now you know why I telecommute.) There's no one right answer for this &mdash; except that which makes you happy. It's an actual example of where "company fit" means what it says (and not "We just didn't like you" or "I can't believe you wore that dress to an interview."). I wouldn't judge the company culture too harshly based on the money spent on the office space; plenty of start-ups sensibly invest in their people rather than in deep pile carpet. But I'd glance at the walls in employee's offices and cubes. If it's stark and cold... well, that's a -1 for me.</p>
<p><strong>Evidence that the company works towards quality</strong>. I hope you asked other developers (or people at roughly the same level as you) during the interview: <a hef="http://www.javaworld.com/community/node/2836">When was the last time the company sent you to a conference? or paid for training?</a> (Listening to the way in which they answer the question is another way to judge the organization's emotional tone: resentful? grateful? matter-of-fact? What is it that employees take for granted?) Presumably you also asked about the tools you'd be working with... not just the favored programming language or IDE, but the <em>other</em> software that's intended to make you more productive, such as performance tuning tools, version control software, or whatever makes sense. The latter might include people. If everything about the programming job sounds spiffy but nobody is actually dedicated to software testing, you have a big fat clue about how much (or little) the organization cares about helping you create the best software possible.</p>
<p><strong>Evidence of collaboration and openness</strong>. With whom did you interview? Just the managers &mdash; none of the people who'd serve on the same team as you or <a href="http://www.javaworld.com/community/node/2500">who would report to you</a>? Sometimes it isn't possible to have full transparency in the hiring process (particularly if you're still working elsewhere and want to keep negotiations secret), but I'd look at whether the expectation is that team members' opinions matter. I believe that it was in <a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=thegroovycorpora&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633439">Peopleware</a> that DeMarco and Lister first recommended that a job candidate have lunch with the people she'd be working with. Certainly that's been useful in my own experience; it helps everyone decide if they want to spend at least 40 hours a week hanging out with these people... and laughing with them. (<a href="http://www.javaworld.com/community/node/3156">Playing Dungeons &amp; Dragons with the candidate</a> is optional, though.)</p>
<p>I'm sure that I'm leaving out other things you can do to really test the company culture. What would you suggest? Or, to put the question another way: If you ever had a bad job experience... what might you have asked or done ahead of time to avoid it? Let's see if we can save someone else from making a really bad mistake.</p>
    ]]></content>
  </entry>
  <entry>
    <title>Microsoft&#039;s Regular Expressions</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3279" />
    <id>http://www.javaworld.com/community/node/3279</id>
    <published>2009-08-04T13:56:02-04:00</published>
    <updated>2009-08-04T13:56:02-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="community" />
    <category term="jargon" />
    <category term="language" />
    <category term="microsoft" />
    <category term="teamwork" />
    <summary type="html"><![CDATA[<!--paging_filter--><p><strong>Programming communities and corporate culture naturally encourages the development of peculiar nomenclatures and in-the-know jargon. As a demonstration, here's several expressions and terms used only &mdash; or primarily &mdash; by people who work at Microsoft... and not used, really, by anybody else.</strong></p>    ]]></summary>
    <content type="html"><![CDATA[<!--paging_filter--><p><strong>Programming communities and corporate culture naturally encourages the development of peculiar nomenclatures and in-the-know jargon. As a demonstration, here's several expressions and terms used only &mdash; or primarily &mdash; by people who work at Microsoft... and not used, really, by anybody else.</strong></p>

<p>I've given more thought to my blog post from last week about <a href="http://www.javaworld.com/community/node/3266">the architecture of programming communities</a>. Although that post emitted a warning, I don't want to give the impression that it's a Bad Thing for people to create workable teams. I just want to highlight the ways in which the walls we build to help ourselves can sometimes block others out.</p>

<p>When people work together regularly, they naturally create shortcut expressions based on common experiences &mdash; and not just in programming. When I worked for a compiler optimization company, my boss and most of my dozen coworkers were also fans of <a href="http://www.arlo.net/">Arlo Guthrie</a>'s ballad, <a href="http://www.arlo.net/resources/lyrics/alices.shtml">Alice's Restaurant</a>. It was a function of our hippie background and the high per-capita Folk Musician population of Deer Isle Maine, I guess, but certainly we all knew most of the lyrics.</p>

<p>I'm not sure who started it, but as a conversational shortcut in meetings, company employees summarized, "I explained to the user all of the details that we have discussed at great length before, including bla-bla-bla..." (you know how those explanations can drone on) as, "I showed her the 27 8x10 color glossy photographs with circles and arrows and a paragraph on the back of each one explaining what each one was, to be used as evidence against us." Which itself was soon shortened to "circles and arrows." Thus, to this day, I'm apt to say (to those who'll understand, including that old boss who continues to be a friend), "When the client asked why his site had crashed, I gave him circles and arrows." When someone outside the circle (heh) understands that expression without me explaining it, I feel as though I've found a friend.</p>

<p>I've come to refer to these as "married-people macros;" I'm sure you and your spouse have a few of your own. But in our professional lives, it's those shortcut expressions that help us create communities with in-the-know jargon... and maybe (to a small but usually harmless degree) exclude those who aren't sure what the specialized term means.</p>

<p>And sometimes it's just a mark of corporate culture.</p>

<p>For example, Microsoft folks use "rich" more often than anybody else I've seen, from "a rich user interface" to "rich text format." I don't think I've seen a single Microsoft press release or tech presentation that missed out on the opportunity to use the <em>rich</em> term even when it adds no actual meaning. In fact, I've sometimes amused myself by substituting "high-cholesterol" or "with extra butter" while reading their press releases.</p>

<p>Some terms, I suspect, were either generated first at Microsoft or were made popular within the company... and then escaped. One of these may be the term "decks" for a collection of PowerPoint slides. I'm sure that I heard it first from Microsoft people, but now the expression has escaped into the wild. (I wish it'd escape <em>back</em>, but I do admit that presentations no longer uses actual overhead projectors. On the other hand, someone referring to a "deck" in a painful PowerPoint presentation suggests to me, "I could deck him..." which is a dangerous temptation I'd like to avoid.)</p>

<p>However, there are also some Microsoft terms are that linguistic curiosities. While nobody seems to imagine that Microsoft was the first to use the expression "eat our own dogfood" (i.e. use and rely on the technology we develop), as far as I know Microsofties (by which I mean company employees and those closely allied with them, such as business partners and MVPs) are the only ones I've encountered who use "dogfooding" as a verb. Similarly, others might use the expression "go down a rathole" (that is, "<a href="http://www.urbandictionary.com/define.php?term=rat-hole">to digress in an extensive way</a>") but, I am told, people at Microsoft use "rathole" as a verb.</p>

<p>In fact, one Microsoft employee confided, the Microsofties "verb" almost everything. There's also lots of words for shipping software, <a href="http://comics.com/speed_bump/2009-07-29/">as you can imagine</a>, many of which are verbed. For instance, I'm told, there's a large meeting towards the end of a product's release called "shiproom." "So we'll say something like 'Take this to shiproom and tell them we're not the long pole any more,'" my friend explained. "Long pole, by the way, is the team, group, or feature that will take the longest." Me, I thought it was what you were up the creek without. Or "on the critical path," in old-style project management lingo.</p>

<p>These are only a smidgen of Microsoft terms. One kind soul pointed me at <a href="http://cinepad.com/mslex.htm">The Microsoft Lexicon</a>, in case you want to put together your own trivia quiz.</p>

<p>I confess that I'm intrigued by this behavior largely because I love language and how it intersects with community. (How else could I use my most-of-a-Linguistics degree?) So I find it fascinating to watch how groups share knowledge, invent expressions, and then summarize them... not the least of which is a tendency to "verb the nouns" (even if specific examples irritate me) and to turn expressions into community macros. There's a master's thesis in this for someone, I betcha.</p>

<p>Last week, I pointed out that communities rarely take the time to gaze into their own navels to observe the effect of their behavior. I picked on Microsoft here, but not because there's anything specific to the company. I think most companies have their own expressions, and most programming communities develop their own jargon. What are some that <em>you've</em> encountered, in your own organizations?</p>    ]]></content>
  </entry>
  <entry>
    <title>There Goes the (Programming) Neighborhood</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3266" />
    <id>http://www.javaworld.com/community/node/3266</id>
    <published>2009-07-30T20:09:25-04:00</published>
    <updated>2009-07-30T20:09:25-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="career" />
    <category term="community" />
    <category term="online community" />
    <summary type="html"><![CDATA[<!--paging_filter--><p><strong>It's healthy and good for a software development community to take care of itself. But when the community begins to imagine that its experiences are just like those of people outside the community... it's time to worry.</strong></p>    ]]></summary>
    <content type="html"><![CDATA[<!--paging_filter--><p><strong>It's healthy and good for a software development community to take care of itself. But when the community begins to imagine that its experiences are just like those of people outside the community... it's time to worry.</strong></p>

<p>As a side effect of me writing about anything that touches on software development, I touch a lot of online communities. I may hang out in a Python group on IRC, I post in a .NET developers' Yahoo Group, I ask questions in a forum for professional QA testers, I lurk on <a href="http://www.itworld.com/development/73001/how-microsoft-made-php-suck-less-windows">PHP</a> discussions, I follow 1,400 people on <a href="http://www.twitter.com/estherschindler">Twitter</a>. One result is that I get a view of the "personalities" of each community, often a view from 30,000 feet. (Another result is that, with 60+ subscriptions in Yahoo groups alone, I do not actually have a life. But never mind that, now.)</p>

<p>Every development community has its own culture. Lots of elements are involved, starting with what I can only call a community's ambiance. Some developer communities are dispassionate and factual, others are chatty. Some are in-your-face confrontative, others actively greet strangers. To my mild surprise, not all communities are conscious of their own culture or even think about the way they present themselves. That is, an open source project might be anxious to attract more participants but never consider how it might &mdash; please forgive me for using the term &mdash; <em>market</em> itself to those who might be interested, or worry about what it may be doing to chase people away. Learning a community ambiance is like wandering through a strange-to-you neighborhood, especially when you're considering whether this is a place you might like to settle down. </p>

<p>Another element in this particular "neighborhood watch" is how often its residents venture elsewhere. That is, it can be a little too easy for a coding neighborhood to become a ghetto, or to build a moat, or to &mdash; oh, well, pick whatever analogy works for you. My point is that it's one thing for a community to support its members and to create a "neighborhood" in which all the residents are comfortable with one another. But it's another thing entirely for the development community to forget that their experience may not map to everybody else's.</p>

<p>For example, I recently corresponded with a very smart guy who happens to be quite involved in the Microsoft .NET community. The guy can make Visual Studio do things that its own creators wouldn't recognize. He is, as far as I can tell, a brilliant consultant who helps his clients make the most of their Windows-based applications. He knows everyone in the .NET universe... and I don't think he knows anybody outside it. Because when I suggested that, in a discussion about debugging JavaScript, he broaden his topic beyond Internet Explorer with Visual Studio (like, maybe mention <a href="http://getfirebug.com/">Firebug</a>?), this very smart man felt it was wholly unnecessary. Because, he said, IE is so dominant and so few developers would actually use Firefox for JavaScript programming that it really wasn't worth talking about. Say <em>what</em>? But honestly... in his .NET worldview, nobody uses Firefox or PHP or Java. Not because he's dumb (did I mention this guy is smart?) but because his community is so self-supporting he never has a motivation to wander down the road where the view is somewhat different.</p>

<p>This is emphatically not exclusive to the .NET community. I've seen it among <a href="http://advice.cio.com/esther_schindler/the_strange_case_of_the_ruby_development_community">Ruby</a> developers. I've watched open source developers reject anyone's choice of a proprietary solution as inherently evil, without any willingness to grok why people might come to a different conclusion than they did. (These same people complain that market research analysts show open source tools little respect, but when asked to participate in a survey they assume that "it's just someone trying to market to us.") The "I hang out only with the people who share my interests" false exclusivity is not specific to programming, either. I've watched wannabee science fiction authors assume that SF dominates book publishing (when actually it's only 4% of the book market); such assumptions leads to bad decisions (and very few book contracts).</p> 

<p>The problem with listening to only the people you agree with is that you don't learn what everyone else cares about. You don't find out what matters to other people... like, say, what matters to your users. There's a difference between eating your own dog food and eating your own bullshit.</p>

<p>When does a neighborhood become a ghetto? When you imagine that the rest of the world is like your ghetto. Or when you think the ghetto <em>is</em> the world.</p>    ]]></content>
  </entry>
  <entry>
    <title>The Development System You Really Want</title>
    <link rel="alternate" type="text/html" href="http://www.javaworld.com/community/node/3246" />
    <id>http://www.javaworld.com/community/node/3246</id>
    <published>2009-07-25T11:19:54-04:00</published>
    <updated>2009-07-25T11:19:54-04:00</updated>
    <author>
      <name>Esther Schindler</name>
    </author>
    <category term="cpu" />
    <category term="hardware" />
    <category term="operating system" />
    <summary type="html"><![CDATA[<!--paging_filter--><p><strong>Developers claim that their productivity is hampered by employers who force them to work on old, slow hardware. Just how old is the development system <em>you're</em> forced to use?</strong></p>    ]]></summary>
    <content type="html"><![CDATA[<!--paging_filter--><p><strong>Developers claim that their productivity is hampered by employers who force them to work on old, slow hardware. Just how old is the development system <em>you're</em> forced to use?</strong></p>

<p>A couple of years ago, CIO had a feature story called <a href="http://www.cio.com/article/185900/_Things_You_Can_Do_In_Minutes_to_Be_More_Successful_at_Work">20 Things in 20 Minutes</a> which listed short, tactical to-do items CIOs could take on to improve their organizations. Each CIO writer and editor (I was in the latter category at the time) was to supply one such item. After interviewing several developers and asking on discussion lists, I submitted three &mdash; and my favorite landed on the cutting room floor. I hate when that happens.</p>

<p>In short, said developers: 20 minutes is plenty of time to sign an equipment requisition to buy new hardware for the development staff. "Buy modern machines for developers. Buy graphics cards to allow dual monitors. Buy monitors," summarized one programmer. (And while you're at it, upgrade the Window 95 Pentium PC that's acting as the source code repository. A new print server would be a good idea, too.)</p><p>
<script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/1810636.js"></script><noscript>
<a href="http://answers.polldaddy.com/poll/1810636/">My work software development computer...</a><span style="font-size:9px;">(<a href="http://www.polldaddy.com">survey</a>)</span>
</noscript>
There was passionate consensus about this point, at least in one online developer community: Hardware is the easiest thing to fix, but apparently not the first thing that comes to mind for managers.</p>

<p>"The single most efficient way to improve quality is to increase productivity, and the single most important and efficient way to improve productivity is to give the engineers blazing fast computers and big, dual monitors," added a developer named Jon (I'm not sure when the statute of limitations on "you may quote me" runs out, so I'm coy with names here). "Developers have to deal with more user interfaces and manage more information than any computer users out there... To run all this stuff we need lots of RAM and CPU."</p>

<p>This surprised me. I was aware that Joel-on-Software had fast computers on his <a href="http://www.codinghorror.com/blog/archives/000666.html">Programmer's Bill of Rights</a> but I thought that was a baseline &mdash; not a wish list. Until that discussion a few years ago, I'd assumed that typical developers worked with the latest hardware because that's the way it's been at the Schindler bitranch. It's one positive side effect of <a href="http://www.javaworld.com/community/node/3104">spending years as a computer consultant and independent contractor</a>; you might have to buy the computer yourself, but at least you can prioritize the purchase when you decide it's important.</p>

<p>But I'm still not certain whether this is an epidemic or an isolated problem. After spending a week at the <a href="http://en.oreilly.com/oscon2009/">Open Source Convention</a>, I decided that based on the number of MacBooks, a casual observer would assume it was an Apple conference. I've certainly heard plenty of anecdotal evidence to argue that some developers, given the choice, would take an older iMac or a aged relic running the Linux distro of their choice, rather than the fastest PC running Windows. But many don't have a choice... and nobody even thinks to ask them how hardware might improve their productivity.</p>

<p>So just how irritated are you with the development hardware that your employer has chosen for you? What do you most wish they would change?</p>

    ]]></content>
  </entry>
</feed>
