<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike Desjardins&#039; Series of Tubes &#187; career</title>
	<atom:link href="http://www.mikedesjardins.net/content/category/career/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikedesjardins.net/content</link>
	<description>freelance software developer consultant in portland, maine</description>
	<lastBuildDate>Wed, 02 Feb 2011 00:14:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Eight Rules of Conference Call Etiquette</title>
		<link>http://www.mikedesjardins.net/content/2008/09/eight-rules-of-conference-call/</link>
		<comments>http://www.mikedesjardins.net/content/2008/09/eight-rules-of-conference-call/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 20:29:00 +0000</pubDate>
		<dc:creator>Mike Desjardins</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[industry]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://mikedesjardins.us/wordpress/2008/09/eight-rules-of-conference-call-etiquette/</guid>
		<description><![CDATA[At my past few jobs, I&#8217;ve had to spend a lot of time on conference calls with developers and project managers. While I don&#8217;t profess to be a &#8220;conference call expert&#8221; (or, for that matter, an etiquette expert), I think there are some general ground rules for conference calls, and I&#8217;m going to deviate a [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mikedesjardins.us/blog/uploaded_images/conference-call-746961.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://mikedesjardins.us/blog/uploaded_images/conference-call-746944.jpg" alt="" border="0" /></a>At my past few jobs, I&#8217;ve had to spend a lot of time on conference calls with developers and project managers.  While I don&#8217;t profess to be a &#8220;conference call expert&#8221; (or, for that matter, an etiquette expert), I think there are some general ground rules for conference calls, and I&#8217;m going to deviate a bit from my usual Hibernate/JEE topics to itemize the ones that I think are important.</p>
<p>At my current job, I&#8217;m actually pretty lucky.  Almost all of us work remotely, so we&#8217;re pretty accustomed to how to behave in the ubiquitous con-call.  At a previous engagement, I wasn&#8217;t so lucky &#8211; I&#8217;ll omit their names to protect the guilty.</p>
<p>So here&#8217;s an arbitrary list from me, a random guy on the internet of questionable credentials, of what you should and shouldn&#8217;t do on a conference call.  Some of these probably seem really obvious, but I&#8217;m listing even the obvious ones because some people still break them:</p>
<p><span style="font-weight: bold;">1.) Use the Mute Button, especially on a speakerphone.</span> The most important reason for using Mute is to prevent echo-y feedback, particularly on speaker phones.  If you aren&#8217;t talking, please put your speaker phone on mute for the sake of everyone else listening.  Note that following this rule will invariably lead to the embarrassing situation where you start talking and don&#8217;t realize that you&#8217;ve left your phone on mute.  Don&#8217;t worry, we&#8217;ve all done it and we&#8217;ll all forgive you!<br /><span style="font-weight: bold;">2.) Introduce yourself when you enter the conference.</span>  Some conference systems will force you to state your name when you log in, and then the robo-operator will announce you when you join.  I actually find this to be quite jarring, especially when robo-operator interrupts what everyone is saying.  Better systems will play a quiet tone when people enter or leave the call.  Some, like one that a client had at my previous job, will do nothing at all.  This would allow people to lurk on the line unbeknownst to the participants, which is <span style="font-style: italic;">terribly</span> rude.  Likewise, if you enter a conference room while a conference call is already underway, announce yourself at the next free moment.  Ideally, the moderator of the conference will also take a moment to introduce everybody at the beginning of the call if there is a chance that everyone doesn&#8217;t know each other.  This is a <span style="font-style: italic;">great idea</span>.<br /><span style="font-weight: bold;">3.) Close the Door.</span>  It&#8217;s best to go to a closed room to join a conference call to eliminate background noise.  If you can go to such a place, do it.  Don&#8217;t join a conference call from, e.g., a street cafe or airport gate.  In doing so you risk a passing ambulance, street parade, or TSA threats to destroy unattended luggage interrupting the call.<br /><span style="font-weight: bold;">4.) Don&#8217;t use a mobile phone if you can help it.</span>  Occasionally you can get away with using a mobile for a con-call in a pinch.  But if it&#8217;s a super-important meeting where you are trying to make an impression or do something complicated, nothing will be more frustrating than a garbled, broken up, or dropped call.  Try to use a land-line if you can.<br /><span style="font-weight: bold;">5.) Don&#8217;t eat on the phone.</span>  I guess this is just a personal pet peeve of mine.  I can&#8217;t even listen to NPR if the announcer&#8217;s voice is all moist and saliva-sounding.  This is more important if you&#8217;re wearing a headset.<br /><span style="font-weight: bold;">6.) Have an agenda that everyone receives beforehand.</span>  This goes for all meetings, but it&#8217;s just as critical for a conference call. This helps you set expectations and stay on-topic during the call.<br /><span style="font-weight: bold;">7.) Get some screen-sharing software.</span>  Better yet, get some screen sharing software and test it out before the meeting.  With it, you can use something as simple as Notepad or TextMate as a virtual whiteboard.  For some reason, we never did this at my previous jobs.  We&#8217;ve done it at my current job and it works great.<br /><span style="font-weight: bold;">8.) Pick a good time for all participants. </span> This is particularly important if you&#8217;re working in different time zones.  Generally you can depend on developers being available between 10am and 4pm in their respective time zones &#8211; you can argue that programmers need to grow up and work regular business hours like everyone else.  But until the voodoo of deadline creation becomes a perfected science, software people will need to occasionally work late into the night or early in the morning to meet schedules.  Or (like anyone else) we may have daycare responsibilities and have to leave a little early.  So we stay flexible.  This means that if you&#8217;re working on, e.g., both coasts of the United States, your best bet is between 1pm and 3pm, eastern time.  If you&#8217;re working in the U.S. and the far east, you&#8217;re usually stuck with getting the U.S. participants to work early, and the others late in their workday.  Similarly between Europe and the U.S., the U.S. participants will probably need to be available late in the day, and the Europeans earlier.</p>
<p>What do you think?  Have I missed any conference call ground rules?</p>
<p><span style="font-style: italic;">Photo Credit: </span><a style="font-style: italic;" href="http://flickr.com/people/spcummings/">Stephen Cummings</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikedesjardins.net/content/2008/09/eight-rules-of-conference-call/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Holy crap &#8211; I like to write specs!</title>
		<link>http://www.mikedesjardins.net/content/2008/05/holy-crap-i-like-to-write-specs/</link>
		<comments>http://www.mikedesjardins.net/content/2008/05/holy-crap-i-like-to-write-specs/#comments</comments>
		<pubDate>Thu, 29 May 2008 01:30:00 +0000</pubDate>
		<dc:creator>Mike Desjardins</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://mikedesjardins.us/wordpress/2008/05/holy-crap-i-like-to-write-specs/</guid>
		<description><![CDATA[I had an amazing revelation at work last week. At my previous job, the company culture steadfastly clung to the waterfall model as the one true way to develop software. The model was imposed as a series of documents with cryptic, archaic acronyms for names. I actually had to draw a flowchart for my team [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mikedesjardins.us/blog/uploaded_images/84056948_6d0dcc5728-756703.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://mikedesjardins.us/blog/uploaded_images/84056948_6d0dcc5728-756670.jpg" alt="" border="0" /></a>I had an amazing revelation at work last week.</p>
<p>At my previous job, the company culture steadfastly clung to the waterfall model as the one true way to develop software.  The model was imposed as a series of documents with cryptic, archaic acronyms for names.  I actually had to draw a flowchart for my team to help them keep track of when each document was required in the life cycle of an enhancement request.</p>
<p>No code was changed in our code-base without a minimum of literally five separate documents, each usually spanning tens of pages.  Project managers at the company enforced the production of these documents in a near-religious deference to &#8220;the process.&#8221;  Each document was reviewed, often via conference call, to receive it&#8217;s &#8220;stamp of approval&#8221; (basically a C.Y.A. cross-check) among the affected teams (usually development, production support, professional services, client management, security, perhaps others).</p>
<p>It often felt as though I worked at a documentation company that happened to create software as a by-product.</p>
<p>It was in this atmosphere that I first started reading about so-called Agile methodologies.  Iterative prototyping, unit testing, and tight user/developer communications, their practitioners argued, were a more effective way to deliver software that met customer expectations.  Because specifications change, and users don&#8217;t know what they want, you&#8217;re already behind schedule by the time you get done with all of that front-end junk.</p>
<p>It all sounded so wonderful &#8211; too good to be true.  If only my company were more like that.</p>
<p>Now I&#8217;m at a new job.  There&#8217;s very little process here &#8211; it goes something like this: A nominal business analyst creates a document with a punch-list of specifications, and the developers go off and implement it.  That&#8217;s it.</p>
<p>You&#8217;d think I was in paradise!  I would be freed of the shackles of Microsoft Word, and I&#8217;d be able to churn out code as efficiently as possible.</p>
<p><span style="font-weight: bold;">What Really Happened</span><br />I soon discovered myself going in circles.  I&#8217;d spend a lot of time in front of the whiteboard drawing ERDs for the database, and then I wouldn&#8217;t know where to go next.  Start Object-Relational mapping?  Hmm&#8230; seems to soon for that.  The business model?  And what is the business model&#8230; what does it need to do?  And will the business model&#8217;s persistent data be adequately served by the data model on this white board?</p>
<p>Maybe I&#8217;ll just dive in and start implementing&#8230; Agile-style.  I guess that means I should start with the UI; how do I do the UI?  That&#8217;s what the user wants, right?  The spec says I need to do such-and-such&#8230; I know!  I&#8217;ll crate a UI, and wire it up to the model&#8217;s interface, and mock-out the actual implementation of the model!  So there&#8217;s really no ugly business model code to worry about.</p>
<p>So what should the model&#8217;s API&#8217;s be?  What parameters do I need to pass around to make this thing re-usable?  Will I end up needing to refactor the whole thing to support some relationship I haven&#8217;t considered yet?  Oh well.  Don&#8217;t worry about that for now.</p>
<p>And, by the way, the UI is just an admistrative, ancillary part of this project.  It&#8217;s actually a batch process that runs nightly which is configured via the UI.  The UI isn&#8217;t even technically necessary.  Am I putting the proverbial cart before the horse?  Hmmph &#8211; probably I shouldn&#8217;t start with the UI, then.</p>
<p>Hey &#8211; look at this whiteboard&#8230; an ERD&#8230; let&#8217;s work on that for a while!</p>
<p><span style="font-weight: bold;">What Works for Me</span><br />What was actually wrong with my old job was the sheer volume of documentation, and the ratio of useful information to the total number of pages.  That documentation was almost never for me &#8211; it was for <span style="font-style: italic;">other people</span> (although I still wonder how valuable it really was to other people).</p>
<p>Personally, I need something to ground the project.  I need a place to organize my thoughts.  For me, a &#8220;specification&#8221; isn&#8217;t a giant UML class diagram that I slavishly adhere to, and keep in sync with the code at all times.  It&#8217;s a place where I enumerate the affected components, discover how they interact, and itemize the work that needs to be done.  It&#8217;s where I validate that the thing I&#8217;m about to build is going to come somewhat close to meeting the user&#8217;s expectations.</p>
<p>Sometimes, I share the document with other people.  Sometimes I don&#8217;t.  But I&#8217;ve learned that personally, for me, I need a place to focus, and collect the pieces that need to interact, before I start writing.</p>
<p>For some reason, this was an amazing revelation to me.  My experience at my last job had led me to believe that I was firmly in the anti-documentation camp.  It turns out that, in my case, that wasn&#8217;t true at all. I need some documentation.  And I don&#8217;t think it&#8217;s true for everybody, either.  I&#8217;m sure there are people who are better at diving right in, and still others that want even more documentation than I do.</p>
<p>What works for you?<br /><span style="font-style: italic;">Photo Credit: </span><a style="font-style: italic;" href="http://www.flickr.com/people/effbot/">Fredrik Lundh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikedesjardins.net/content/2008/05/holy-crap-i-like-to-write-specs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More about motivation</title>
		<link>http://www.mikedesjardins.net/content/2008/04/more-about-motivation/</link>
		<comments>http://www.mikedesjardins.net/content/2008/04/more-about-motivation/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 12:45:00 +0000</pubDate>
		<dc:creator>Mike Desjardins</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://mikedesjardins.us/wordpress/2008/04/more-about-motivation/</guid>
		<description><![CDATA[I find myself writing about programmer motivation a lot. I think it&#8217;s because my career is at somewhat of a crossroads. I just got done reading a wonderful post at foundread.com by Carleen Hawn about motivation, and it was great to reflect on how it related to my situation. At my previous job, I was [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mikedesjardins.us/blog/uploaded_images/63661031_6e7e96da63-774642.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 281px; height: 211px;" src="http://mikedesjardins.us/blog/uploaded_images/63661031_6e7e96da63-774622.jpg" alt="" border="0" /></a>I find myself writing about programmer motivation a lot.  I think it&#8217;s because my career is at somewhat of a crossroads.  I just got done reading a <a href="http://foundread.com/2008/04/15/the-motif-of-employee-motivations-and-how-to-leverage-them/">wonderful post at foundread.com by Carleen Hawn</a> about motivation, and it was great to reflect on how it related to my situation.</p>
<p>At my previous job, I was rockstar superman-go-to-guy for the wireless billing system that I was working on.  I know that this sounds arrogant and boastful as hell. Admittedly, I was a bit of a programmer prima donna.  But when it came to knowledge of the inner-workings of our particular product, it at least <span style="font-style: italic;">felt</span> like I was the man.  Part of that was not only understanding the software, but understanding the business as well.</p>
<p>When that gig started to dry up, it became time to find new work, and I found myself at a local financial services company.  In doing so, I fell from my position of glory to &#8220;just another programmer.&#8221;  I was promised that I would someday get to the more prestigious position of architect again.  But that takes time &#8211; a lot of it.  Grokking the system that the guys here have spent years working has been more difficult than I thought it would be.  Understanding the business that we&#8217;re in is just as difficult, and it&#8217;s clear to me that <a href="http://mikedesjardins.us/blog/2008/03/anatomy-of-project-failure-corporate.html">understanding the business</a> is what&#8217;s important to ascend the ranks to an architects&#8217; role.</p>
<p>At my &#8220;new&#8221; job (I&#8217;ve been here for months, it&#8217;s hardly new anymore), I struggle sometimes with motivating myself.  After reading the aforementioned <span style="font-style: italic;">&#8220;The Motif of Employee Motivations</span>,&#8221; I think I understand why.  The role I crave is to be the guy that understands the business, and how the entire system meets that need.  I like being the guy who gets asked questions by the business analysts and the other engineers.  At my current job, I haven&#8217;t yet achieved that.  Being an impatient person by nature, it&#8217;s frustrating to see how far away the day will be that I attain that role.  And I&#8217;m not sure how to get there from here.</p>
<p>The thing that I find the most insightful is that this motivates me beyond just my career &#8211; it motivates me to blog, and it motivates me to work on my &#8220;side projects.&#8221;  I think it&#8217;s also what makes me dream of being an entrepreneur. </p>
<p>But actually knowing what motivates me now helps a lot.  Perhaps now I&#8217;m on my way to getting there.</p>
<p>Photo credit: <a href="http://www.flickr.com/people/paal/"><span class="RealName"><span class="fn n"><span class="given-name">Paal</span> <span class="family-name">Leveraas</span></span></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikedesjardins.net/content/2008/04/more-about-motivation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

