<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11426593</id><updated>2024-10-24T07:27:42.263-04:00</updated><title type='text'>Getting Software Done</title><subtitle type='html'>A blog about software development, and a bunch of other crap.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default?alt=atom&amp;redirect=false'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11426593.post-5517125837262036468</id><published>2008-01-26T09:03:00.001-05:00</published><updated>2008-02-17T09:45:23.875-05:00</updated><title type='text'>Requirements Anti-Pattern: That Can&#39;t Be All They Need</title><content type='html'>One anti-pattern in requirements gathering that I have seen... a habit of making up for incomplete or erroneous requirements by anticipating more than the user is asking for. It&#39;s a different kind of overbuilding.&lt;br /&gt;&lt;br /&gt;This seems to be an attempt to account for the fact that the requirements that have been gathered might not be accurate. We might have specified that a user can run something on-demand. Then, we might overbuild by allowing the user to schedule the process to run at a specified time in the future. We might further overbuild by allowing them to specify recurring intervals for the process to run. &lt;br /&gt;&lt;br /&gt;Instead of confirming the proper requirement was captured, you build to satisfy the requirement as you think it should have been captured. This is related to goldplating, but is more specifically accepting that your requirements gathering abilities are deficient, and so instead manufacturing requirements to meet your guess at what the requirement should have been.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/5517125837262036468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/5517125837262036468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/5517125837262036468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/5517125837262036468'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2008/01/requirements-anti-pattern-that-cant-be.html' title='Requirements Anti-Pattern: That Can&#39;t Be All They Need'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113837633112665620</id><published>2006-01-27T10:38:00.000-05:00</published><updated>2006-05-02T08:16:41.766-04:00</updated><title type='text'>Waterfall 2006 - International Conference on Sequential Development</title><content type='html'>I wonder if I can get my company to sponsor a trip to this conference:&lt;a href=&quot;http://www.waterfall2006.com/&quot;&gt;Waterfall 2006 - International Conference on Sequential Development&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113837633112665620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113837633112665620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113837633112665620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113837633112665620'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2006/01/waterfall-2006-international.html' title='Waterfall 2006 - International Conference on Sequential Development'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113657386585713383</id><published>2006-01-06T13:56:00.000-05:00</published><updated>2006-01-06T13:57:45.870-05:00</updated><title type='text'>Tennis or Bowling?</title><content type='html'>Some companies, for better or worse, leave the requirements-based testing of their internal-facing software to the end-users.&lt;br /&gt;&lt;br /&gt;Unless project management is clear about the responsibilities of the testers, you can run into a &quot;tennis&quot; situation.  This situation occurs when the tester believes their goal is to find something wrong with the product.  This is attractive to the end-user because it means that as soon as they find something they don&#39;t like, they can stop testing until the developer comes back with the problem fixed. After all, testing isn&#39;t their job, they have real work to do.&lt;br /&gt;&lt;br /&gt;What is needed instead is more like bowling.  The tester sets up the pins (test cases), and the developer knocks them down.  How pany pins are in a frame, and how many frames are in a game, etc, depends on your development lifecycle.&lt;br /&gt; &lt;br /&gt;Developers can sense when they&#39;re stuck playing tennis, but they sometimes describe it as shifting requirements.  There is a distinction to be made, however.  With requirements drift, you&#39;re still bowling, but they&#39;re moving the pins around on you, or adding pins to the frame.&lt;br /&gt;&lt;br /&gt;It is important to define responsibilities at the launch of the project (if not earlier), and to be clear about how the development lifecycle is going to be structured.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113657386585713383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113657386585713383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113657386585713383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113657386585713383'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2006/01/tennis-or-bowling.html' title='Tennis or Bowling?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113432365809880226</id><published>2005-12-11T12:53:00.000-05:00</published><updated>2005-12-11T12:54:18.100-05:00</updated><title type='text'>Requirements validation anti-pattern</title><content type='html'>One thing I have seen a lot of is validating requirements with a completed system.  This has been sometimes misnamed &quot;User Acceptance Testing&quot;.  &lt;br /&gt;&lt;br /&gt;This typically means that someone shortchanged requirements gathering, by making a guess at what the users need, and having the developers do it.  &lt;br /&gt;&lt;br /&gt;In its most pathological mode, &quot;User Acceptance Testing&quot; also suggests that the users are doing functional testing as well, and that developers do not need to test their product.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113432365809880226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113432365809880226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432365809880226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432365809880226'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/12/requirements-validation-anti-pattern.html' title='Requirements validation anti-pattern'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113432354683803671</id><published>2005-12-11T12:51:00.000-05:00</published><updated>2005-12-11T12:52:26.840-05:00</updated><title type='text'>Requirements Uncertainty Anti-Pattern</title><content type='html'>One strategy I have seen for &#39;managing&#39; requirements uncertainty is to hire permanent or contract developers so that they are available to respond to requirements changes.  I call this the &#39;embrace and extend&#39; anti-pattern.  Instead of minimizing the chances of this risk materializing, or limiting the effect of this risk in the event it does materialize, this approach accepts the maximum penalty for risk materialization from the outset, and actually encourages requirements changes.  Why do managers engage in this anti-pattern?  What are some alternatives?</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113432354683803671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113432354683803671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432354683803671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432354683803671'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/12/requirements-uncertainty-anti-pattern.html' title='Requirements Uncertainty Anti-Pattern'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113432320441259401</id><published>2005-12-11T12:43:00.000-05:00</published><updated>2005-12-11T12:46:44.426-05:00</updated><title type='text'>&quot;We&#39;re not a software shop.&quot;</title><content type='html'>Working as a developer in IT organizations, I hear this objection &quot;We&#39;re not a software shop&quot; come up a lot when people suggest things like using revision control, or writing down requirements, or formalizing change management.&lt;br /&gt;&lt;br /&gt;Saying that because we are not a software company, we can do a good job of developing software without employing the techniques of professional software developers is like saying that because I am not an athlete, I can win a triathlon without training.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113432320441259401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113432320441259401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432320441259401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113432320441259401'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/12/were-not-software-shop.html' title='&quot;We&#39;re not a software shop.&quot;'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-113042343275060718</id><published>2005-10-27T10:29:00.000-04:00</published><updated>2005-10-27T10:30:32.763-04:00</updated><title type='text'>Contentious Issues Aren&#39;t.</title><content type='html'>Often we will waste tremendous amounts of time debating a choice between alternatives.  Where to have lunch, how to implement a feature, how to model some data, blah, blah, blah, ad nauseum.&lt;br /&gt;&lt;br /&gt;Funny thing is, we usually don&#39;t get into debates like this unless there are compelling arguments on both sides of the issue.  The more heated the arguments, the more likely it is that either alternative provides near equal utility.&lt;br /&gt;&lt;br /&gt;In these cases, you might as well flip a coin.  Make an arbitrary decision; move on.&lt;br /&gt;&lt;br /&gt;Similary, don&#39;t bother defending the alternative you chose under such circumstances.  You made a choice because you had to, not because you had a clear superior alternative.  If you could have defended your alternative, the decision wouldn&#39;t have been arbitrary.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/113042343275060718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/113042343275060718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113042343275060718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/113042343275060718'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/10/contentious-issues-arent.html' title='Contentious Issues Aren&#39;t.'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-112921086857140683</id><published>2005-10-13T09:41:00.000-04:00</published><updated>2005-10-13T09:41:12.823-04:00</updated><title type='text'>Boing Boing: FIling system optimizes documents by use-frequency</title><content type='html'>This rather different approach to filing treats the file cabinet as a &quot;stack&quot;.  When you file something, you put it at the front of the shelf.  When you pull it to work with it, you return it to the front of the shelf when you&#39;re done.  This results in the files naturally moving to the back of the shelf if you&#39;re not working with them, and staying near the front of the shelf if you refer to them frequently. &lt;br /&gt;On the one hand, intriguing.  On the other hand, sounds an awful lot like the pile of folders I had on my desk before I learned to file things away.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/112921086857140683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/112921086857140683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112921086857140683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112921086857140683'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/10/boing-boing-filing-system-optimizes.html' title='Boing Boing: FIling system optimizes documents by use-frequency'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-112914461342807459</id><published>2005-10-12T15:13:00.000-04:00</published><updated>2005-10-12T15:22:21.020-04:00</updated><title type='text'>Two great online resources</title><content type='html'>&lt;a href=&quot;http://creatingminds.org&quot;&gt;CreatingMinds.org&lt;/a&gt; is a collection of creativity methods for generating and selecting ideas.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://changingminds.org&quot;&gt;ChangingMinds.org&lt;/a&gt; is a collection of persuasion methods.&lt;br /&gt;&lt;br /&gt;Both of these sites are maintained by David Straker, author of the cult classic &lt;a href=&quot;http://www.amazon.com/exec/obidos/redirect?path=ASIN/1555611427&amp;link_code=as2&amp;amp;amp;camp=1789&amp;tag=gettingsoftwa-20&amp;amp;creative=9325&quot;&gt;Rapid Problem Solving with Post-It Notes&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=gettingsoftwa-20&amp;l=as2&amp;amp;amp;o=1&amp;a=1555611427&quot; alt=&quot;&quot; style=&quot;border: medium none  ! important; margin: 0px ! important;&quot; border=&quot;0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/112914461342807459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/112914461342807459' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112914461342807459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112914461342807459'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/10/two-great-online-resources.html' title='Two great online resources'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-112912922248884236</id><published>2005-10-12T11:00:00.000-04:00</published><updated>2005-10-12T11:00:22.523-04:00</updated><title type='text'>i d e a * i d e a - How to Bubble Map - drawing your To Do the stress-free way -</title><content type='html'>Great idea for visualizing your to-do list in terms of how much mindshare each item has.  Could also be adapted for how Important or Urgent.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/112912922248884236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/112912922248884236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112912922248884236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/112912922248884236'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/10/i-d-e-i-d-e-how-to-bubble-map-drawing.html' title='i d e a * i d e a - How to Bubble Map - drawing your To Do the stress-free way -'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111835397583550279</id><published>2005-06-09T17:42:00.000-04:00</published><updated>2005-06-09T17:52:56.746-04:00</updated><title type='text'>Meeting folio</title><content type='html'>I&#39;ve been crazy busy lately.  What has it been, a month since I&#39;ve posted?  Here&#39;s a quick around-the-office hack to tide us over:&lt;br /&gt;&lt;br /&gt;Keep a padfolio with its own pad and pen, which you only use for meetings.  When you print out agendas or other materials to distribute, stick them in the folio so they&#39;ll be ready for your meeting.  &lt;br /&gt;&lt;br /&gt;You can also keep spare reading material there, to get to while you&#39;re waiting, in case of delays.  Having something to read or work on beats sitting, twiddling your thumbs.  &lt;br /&gt;&lt;br /&gt;You don&#39;t have to buy an expensive padfolio of &quot;rich, Corinthian leather&quot;, either.  I actually have 2 expensive padfolios that I received as gifts, but never used because I thought they made me appear a little too self-important.  I got a down-to-business, plastic, yet still presentable folio at the local office supply store for under $5.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111835397583550279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111835397583550279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111835397583550279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111835397583550279'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/06/meeting-folio.html' title='Meeting folio'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111515012631004372</id><published>2005-05-03T15:38:00.000-04:00</published><updated>2005-05-03T15:55:26.310-04:00</updated><title type='text'>More on the deck of revolving strategies</title><content type='html'>So, I mentioned in my &lt;a href = &quot;http://gettingsoftwaredone.blogspot.com/2005/04/high-octane-moron-revolving-workflow.html&quot;&gt;previous post&lt;/a&gt; that I have created a deck of index cards with different strategies for choosing what I&#39;m going to work on that day.&lt;br /&gt;&lt;br /&gt;I decided I would give this method a trial week.  So every morning this week, after I process my inbox, I look over my task list quickly to get an idea of everything I have to do in context.  Then, I flip through my strategies, and consider my energy level, focus, available time, and various pressures and priorities.  And then I pick a strategy.&lt;br /&gt;&lt;br /&gt;Then, I choose the tasks to work on that fit in with my strategy, and build a quick list of to-dos for the day.&lt;br /&gt;&lt;br /&gt;So far, it&#39;s working really well - I&#39;m impressed.  Here&#39;s what I think is going on for me:  By deciding up front what my overall strategy for the day will be, it is very easy to pick and choose exactly which tasks I&#39;m going to work on.  If I choose to work on Squeaky Wheels - I can stop hemming and hawing about whether I really ought to include some high-value stuff, too.  I&#39;ll get to that tomorrow - today I&#39;m oiling those squeaky wheels.  I know exactly which projects those are, and I&#39;ve made a choice to hammer on them for the rest of the day.  Planning is easy.&lt;br /&gt;&lt;br /&gt;Another thing - it doesn&#39;t come naturally to me to do a lot of task switching.  So, a strategy like &quot;Touch as many projects as possible&quot; is something I wouldn&#39;t naturally decide to do.  It just feels wrong.  Or it did, until yesterday.  &lt;br /&gt;&lt;br /&gt;Yesterday, I considered my priorities, and after looking at my deck of strategies, I surprised myself by deciding that &quot;Touch as many projects as possible&quot; would serve my needs best.  It was one of my most productive days in weeks.&lt;br /&gt;&lt;br /&gt;Today, I worked on Squeaky Wheels.  It served my needs.  Two of my coworkers commented on my high output today. &lt;br /&gt;&lt;br /&gt;I think I like this - we&#39;ll see how it holds up over time.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111515012631004372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111515012631004372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111515012631004372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111515012631004372'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/05/more-on-deck-of-revolving-strategies.html' title='More on the deck of revolving strategies'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111489171345254036</id><published>2005-04-30T16:08:00.000-04:00</published><updated>2005-04-30T16:22:26.930-04:00</updated><title type='text'>high octane moron: Revolving workflow strategies</title><content type='html'>I ran across the article below earlier in the week, and finally got around to playing with the idea a little bit last night:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.murtworld.com/2005/04/revolving-workflow-strategies.php&quot;&gt;high octane moron: Revolving workflow strategies&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In classic hipster style, I decided to print myself up a deck of &quot;daily strategy cards&quot;.  I&#39;m going to start playing with these as a means to quickly pick an organizing strategy to plan my work day.  &lt;br /&gt;&lt;br /&gt;I&#39;ve played with and added to the list of strategies, and this is what I have in my &quot;deck&quot; so far:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Touch as many projects as possible: Keep things moving.&lt;br /&gt;&lt;br /&gt;Lots of small tasks: Reduce the task list, work on low hanging fruit.&lt;br /&gt;&lt;br /&gt;Newest First: Get things started.&lt;br /&gt;&lt;br /&gt;Oldest First: Break through procrastination, maintain focus.&lt;br /&gt;&lt;br /&gt;Goal driven: Keep your activity congruent with your goals.&lt;br /&gt;&lt;br /&gt;Big chunks of time: Flow.&lt;br /&gt;&lt;br /&gt;High Value: Avoid the urgency trap.&lt;br /&gt;&lt;br /&gt;Most interesting: Stay engaged.&lt;br /&gt;&lt;br /&gt;Most guilt inducing: Work through your blocks.&lt;br /&gt;&lt;br /&gt;Squeaky Wheel&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Any other ideas for work strategies?</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111489171345254036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111489171345254036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111489171345254036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111489171345254036'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/04/high-octane-moron-revolving-workflow.html' title='high octane moron: Revolving workflow strategies'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111091904067219124</id><published>2005-04-11T16:00:00.000-04:00</published><updated>2005-04-11T16:13:25.203-04:00</updated><title type='text'>Writing better Transact-SQL code with good comments</title><content type='html'>So, I write IT software, and much of the time, that means I&#39;m dealing with Microsoft SQL Server. Funny thing about that... I&#39;ve worked with a lot of programmers over the years, good programmers... but it never ceases to amaze me how all of their good coding habits go out the window when they need to write some Transact-SQL code.&lt;br /&gt;&lt;br /&gt;Here are some tips to make life easier on yourself and those who will need to read and maintain the code you&#39;ve written, through effective and creative use of comments.&lt;br /&gt;&lt;br /&gt;Positive patterns:&lt;br /&gt;&lt;br /&gt;1.  Use descriptive comments&lt;br /&gt;&lt;br /&gt;Comments in code should always describe what the code needs to accomplish, rather than how the code functions.  For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    /* insert reward discount for referring a customer */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Rather than:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    /* execute insert on CustomerRewards table */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.  Use comments to clarify the structure of your code&lt;br /&gt;&lt;br /&gt;Structural comments can be used sparingly as part of a coding standard to introduce useful structure where the language elements do not provide enough. Some useful &quot;structure&quot; comments include using comments to &quot;name&quot; code blocks enclosed by BEGIN and END statements, such as:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    BEGIN /* customer record is new */&lt;br /&gt;    ...&lt;br /&gt;    END /* customer record is new */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Another kind of structure comment can add a &quot;THEN&quot; to the T-SQL IF statement:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    IF EXISTS&lt;br /&gt;        (&lt;br /&gt;        SELECT&lt;br /&gt;            *&lt;br /&gt;        FROM&lt;br /&gt;            CustomerDiscounts&lt;br /&gt;        WHERE&lt;br /&gt;            CustomerID = @CustomerID&lt;br /&gt;        )&lt;br /&gt;    /* THEN */&lt;br /&gt;        BEGIN /* customer has a discount */&lt;br /&gt;        ...&lt;br /&gt;        END /* customer has a discount */&lt;br /&gt;    ELSE&lt;br /&gt;        BEGIN /* customer does not have a discount */&lt;br /&gt;        ...&lt;br /&gt;        END /* customer does not have a discount */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Implementing the above structure for if statements particularly enhances readability where there is a long test expression IF clause, by clearly seperating the expression from the nominal case, just as the ELSE seperates the exception case from the nominal case.&lt;br /&gt;&lt;br /&gt;3.  Distinguish explantory comments from planning comments &lt;br /&gt;&lt;br /&gt;I recommend using /*...*/ style comments for anything meant to live on as comments in production code.&lt;br /&gt;&lt;br /&gt;For to-do notes, or pseudocode, both of which should be removed before the system moves into production, I recommend using &quot;--&quot; comments.  This makes them easy to find.&lt;br /&gt;&lt;br /&gt;4.  History comments&lt;br /&gt;&lt;br /&gt;I have never personally found these helpful, although capturing data about how often particular code is touched, and for what reasons, can be useful.  If they are used, they are best put in a footer to keep the routine declaration close to the code.&lt;br /&gt;&lt;br /&gt;5.  Summary comments&lt;br /&gt;&lt;br /&gt;A very brief header summary, which describes the requirements of the routine (but not the implementation) is useful. However, structured comments which include Author, Create Date, etc., offer very little value, IMHO.&lt;br /&gt;&lt;br /&gt;Comment Anti-Patterns:&lt;br /&gt;&lt;br /&gt;1.  Reduntant comments &lt;br /&gt;&lt;br /&gt;Comments that describe how, rather than what, are worse than useless.&lt;br /&gt;&lt;br /&gt;2.  Dead code &lt;br /&gt;&lt;br /&gt;Commenting out code which is no longer executed because of requirements or implementation changes.  This should be removed from the code.  If you need to see it later, you can get it out of your revision control system.&lt;br /&gt;&lt;br /&gt;3.  &quot;Paper-trail&quot; comments &lt;br /&gt;&lt;br /&gt;Eg. -- column added 2/2/1993 by JC&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;4. CYA comments &lt;br /&gt;&lt;br /&gt;Eg. -- This code will break when two customers try to buy the same product&lt;br /&gt;&lt;br /&gt;Comments like this give carte blanche to do almost anything, no matter how low quality.  This leads to better solutions not being sought out.&lt;br /&gt;&lt;br /&gt;If this is the only place risks and quality problems are captured, there is no opportunity to see them all together in order to prioritize fixes, or to see emerging patterns that require a pattern-based solution&lt;br /&gt;&lt;br /&gt;5.  Planning comments &lt;br /&gt;&lt;br /&gt;For positive patterns in planning comments, see number 3 above.  Negative planning comments include things such as &quot;need to implement xxx&quot; or &quot;should update to include xyz&quot;.  If this is the only mechanism for capturing technical needs, there is no visibility during planning activities, and there is no opportunity to see them all together in order to prioritize.&lt;br /&gt;&lt;br /&gt;Further reading:&lt;br /&gt;&lt;br /&gt;Steve McConnell&#39;s treatment of use of comments in &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0735619670/gettingsoftwa-20&quot;&gt;Code Complete&lt;/a&gt; is excellent.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111091904067219124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111091904067219124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111091904067219124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111091904067219124'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/04/writing-better-transact-sql-code-with.html' title='Writing better Transact-SQL code with good comments'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111318882437399343</id><published>2005-04-10T23:07:00.000-04:00</published><updated>2005-04-10T23:08:56.333-04:00</updated><title type='text'>Google Maps + Real Estate Listings = Wow</title><content type='html'>&lt;a href=&quot;http://www.paulrademacher.com/housing/&quot;&gt;So beautiful I almost cried&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And it uses listings from &lt;a href = &quot;http://www.craigslist.org/&quot;&gt;Craigslist&lt;/a&gt; - it&#39;s like somebody put chocolate in my frickin peanut butter.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111318882437399343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111318882437399343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111318882437399343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111318882437399343'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/04/google-maps-real-estate-listings-wow.html' title='Google Maps + Real Estate Listings = Wow'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111290078250561168</id><published>2005-04-07T14:48:00.000-04:00</published><updated>2005-04-07T15:06:22.506-04:00</updated><title type='text'>Google Maps: Yeah, me too.</title><content type='html'>Like &lt;a href = &quot;http://jgwebber.blogspot.com/2005/02/mapping-google.html&quot;&gt;seemingly&lt;/a&gt; &lt;a href = &quot;http://weblog.infoworld.com/udell/2005/02/23.html#a1184&quot;&gt;everyone&lt;/a&gt; &lt;a href = &quot;http://www.hyperorg.com/blogger/mtarchive/003869.html&quot;&gt;else&lt;/a&gt;, I continue to be somewhere between impressed and astounded by &lt;a href = &quot;http://maps.google.com/&quot;&gt;Google Maps&lt;/a&gt;, and now, with the recent addition of satellite photos, I can&#39;t hold it in any longer.&lt;br /&gt;&lt;br /&gt;My wife and I are currently house shopping.  Enough said.&lt;br /&gt;&lt;br /&gt;Well, maybe not quite enough.  I have a couple different options for viewing online real estate listings on the web.  They&#39;re disappointing.  The search criteria are restrictive and clunky.  &lt;br /&gt;&lt;br /&gt;Go to &lt;a href = &quot;http://maps.google.com/&quot;&gt;Google&lt;/a&gt;, find a location... Now do a local search, say for pizza.  Oh, my.  &lt;a href = &quot;http://www.realtor.com/&quot;&gt;Realtors&lt;/a&gt;, are you listening?  Give these guys a call!&lt;br /&gt;&lt;br /&gt;Or, perhaps give &lt;a href = http://libgmail.sourceforge.net/googlemaps.html&gt;these&lt;/a&gt; folks a call.  They are working with data from a local fire department to use Google Maps to display recent fire alarms in their area.&lt;br /&gt;&lt;br /&gt;Or &lt;a href = &quot;http://gmap.glenmurphy.com/&quot;&gt;these&lt;/a&gt; guys.  We are only scratching the surface, here.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111290078250561168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111290078250561168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111290078250561168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111290078250561168'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/04/google-maps-yeah-me-too.html' title='Google Maps: Yeah, me too.'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111238960038073137</id><published>2005-04-01T16:06:00.000-05:00</published><updated>2005-04-01T17:04:19.926-05:00</updated><title type='text'>Cenqua: The Commentator</title><content type='html'>&lt;a href=&quot;http://www.cenqua.com/commentator/&quot;&gt;This&lt;/a&gt; is exactly the productivity tool I&#39;ve been looking for. &lt;br /&gt;&lt;br /&gt;They sell nice &lt;a href=&quot;http://www.cenqua.com/pairon/&quot;&gt;chairs&lt;/a&gt;, too.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111238960038073137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111238960038073137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111238960038073137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111238960038073137'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/04/cenqua-commentator.html' title='Cenqua: The Commentator'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111092123527230393</id><published>2005-03-30T16:40:00.000-05:00</published><updated>2005-03-30T16:55:03.283-05:00</updated><title type='text'>Escaping the Email Black Hole</title><content type='html'>I thought I&#39;d take a moment to share my email &quot;system&quot;. This is the method I use to keep from becoming overwhelmed by the volumes of email I get, and also make sure that nothing important slips through the cracks and is missed.&lt;br /&gt;&lt;br /&gt;I&#39;ve cribbed heavily from David Allen&#39;s &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0142000280/gettingsoftwa-20&quot;&gt;Getting Things Done&lt;/a&gt; in putting this together for myself - if you try this out and like what you see, consider it a teaser for the complete time management system David describes in his book.&lt;br /&gt;&lt;br /&gt;On to my system...&lt;br /&gt;&lt;br /&gt;I have six mail folders.  The first two are &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Inbox&lt;/span&gt; &lt;/span&gt;and &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Sent&lt;/span&gt;.  Most email software gives you those by default.&lt;br /&gt;&lt;br /&gt;I have added four others:  &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Actions&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Reading&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Waiting&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;, &lt;/span&gt;and &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So my complete email folder list is:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Inbox&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Sent &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Actions &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Reading&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Waiting&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The key to this system, and to many other methods, is that the &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Inbox&lt;/span&gt; &lt;/span&gt;is always empty. Always. Whenever I check my email, the goal is to empty my &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Inbox&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How to empty the &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Inbox&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One by one, open each email.&lt;br /&gt;&lt;br /&gt;Can I delete the email immediately?  If yes, then I do so and move on.&lt;br /&gt;&lt;br /&gt;Can I deal with the email in the next minute or so?  If so, then I deal with it, and file the email in &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Otherwise, I file the email in one of my folders.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Actions&lt;/span&gt; &lt;/span&gt;is for mail that I need to respond to, or requires some action on my part.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Waiting&lt;/span&gt; &lt;/span&gt;is for mail I need to somehow follow up on, or wait for a response.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Reading&lt;/span&gt; &lt;/span&gt;is for things I want to read, but require no follow-up from me, and are not especially time-sensitive. This is the only folder I use &quot;rules&quot; to automatically sort mail into.&lt;br /&gt;&lt;br /&gt;Everything else gets filed in &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;.  Yikes!  How will I ever find it again???  More on this in a minute.&lt;br /&gt;&lt;br /&gt;There&#39;s one more folder in my system: &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Sent&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I treat the &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Sent&lt;/span&gt; &lt;/span&gt;folder just like my &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Inbox&lt;/span&gt;. I keep it empty. Quite a lot of the time, I can just file the email in &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;. But if I&#39;ve committed to further action, or delegated a task to someone else and want to maintain awareness and follow-up, I will file the email in &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Actions&lt;/span&gt; &lt;/span&gt;or &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Waiting&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ok, what about this filing everything in &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Saved&lt;/span&gt;? How can I organize all my email by project, or recipient, or month sent, or priority, or whatever other method I want to use?&lt;br /&gt;&lt;br /&gt;I used to spend time filing my email into different folders for different purposes, but I don&#39;t bother with that any longer since I started using a good search tool for my email. I&#39;ve been using &lt;a href=&quot;http://www.copernic.com/&quot;&gt;Copernic Desktop Search&lt;/a&gt;, and am very happy with it. I can always find anything I&#39;m looking for much faster than the bad old way, and I never have to maintain my filing system, or decide where something goes.&lt;br /&gt;&lt;br /&gt;If you like what you&#39;ve seen so far, check out David Allen&#39;s &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0142000280/gettingsoftwa-20&quot;&gt;Getting Things Done: The Art of Stress-Free Productivity&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111092123527230393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111092123527230393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092123527230393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092123527230393'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/escaping-email-black-hole.html' title='Escaping the Email Black Hole'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111219660244183383</id><published>2005-03-30T10:30:00.000-05:00</published><updated>2005-03-30T11:07:06.633-05:00</updated><title type='text'>Slacker Manager: Manager-chair philosopher</title><content type='html'>Brendon Connelly at &lt;a href=&quot;http://www.slackermanager.com/&quot;&gt;Slacker Manager&lt;/a&gt; offers &lt;a href=&quot;http://www.slackermanager.com/slacker_manager/2005/03/managerchair_ph.html&quot;&gt;these thoughts&lt;/a&gt; about the importance of having a philosophy of leadership or management, and particularly about his own philosophy. The bottom line, he says, is this: &quot;Model the behavior you&#39;re looking for and you&#39;ll start to see it&quot;.&lt;br /&gt;&lt;br /&gt;I couldn&#39;t agree more, particularly when it comes to attitude. If you bring a &lt;span style=&quot;font-style: italic;&quot;&gt;negative&lt;/span&gt; attitude to your leadership style - if you focus on what &lt;span style=&quot;font-style: italic;&quot;&gt;not &lt;/span&gt;to do, or what is &lt;span style=&quot;font-style: italic;&quot;&gt;wrong &lt;/span&gt;with things, or why someone&#39;s idea &lt;span style=&quot;font-style: italic;&quot;&gt;can&#39;t&lt;/span&gt; work - that attitude will permeate the people around you. If instead, you &quot;remove roadblocks&quot;, focus on what works - that will spread, too.&lt;br /&gt;&lt;br /&gt;If you&#39;re stuck in a negative frame of mind, then take a minute to shift gears. Try saying to yourself (or to the person you&#39;re talking to): &quot;Okay, those are some reasons this thing hasn&#39;t caught on yet. Let&#39;s think of some ways that we can make it work for us.&quot;</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111219660244183383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111219660244183383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111219660244183383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111219660244183383'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/slacker-manager-manager-chair.html' title='Slacker Manager: Manager-chair philosopher'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111092332571700022</id><published>2005-03-22T16:48:00.000-05:00</published><updated>2005-03-22T15:54:11.066-05:00</updated><title type='text'>Schedule Slippage and, um, Golf</title><content type='html'>Around the Boston area, golf is a seasonal activity (well, for most of us). With a couple days of good weather ushering in Spring&#39;s return, I&#39;ve been itching to hit the links again.&lt;br /&gt;&lt;br /&gt;I started playing a few years ago - and I&#39;m not very good, but it&#39;s a fun game. Par is usually around 72 strokes for an 18 hole course. I consider myself extraordinarily fortunate to break 100 strokes. Well, ok, I did it once. Alone. In the rain.&lt;br /&gt;&lt;br /&gt;So, a typical round of golf for me is to be about 2 strokes over for each hole. On a par 3 hole, I&#39;ll get a 5. On a par 4, I&#39;ll get a 6. I&#39;m thrilled when I make par for a hole - and occasionally I do. And then occasionally, it&#39;ll take me more than 2 strokes over par to get the ball into the cup.&lt;br /&gt;&lt;br /&gt;Still, ever the optimist, if after 3 holes, I&#39;m 6 over par, I&#39;ll estimate my final score at 78, because I assume I&#39;ll make par on the remaining 15 holes.&lt;br /&gt;&lt;br /&gt;Of course, I know that&#39;s not really what will happen. I&#39;ll probably get about a 106, because I&#39;ll probably be a similar amount over par on every single hole. And if by chance I make par (or even under par) on a hole or two, I&#39;ll probably make up for it by being even more over par on another hole.&lt;br /&gt;&lt;br /&gt;Ok, I&#39;ll stop talking in code now. This is a real-world problem with the usual approach to updating software project plans to account for slippage. (We lost a day? Add a day to our rosy optimistic schedule.)&lt;br /&gt;&lt;br /&gt;If after two months of a six month project, you&#39;re a month behind - I&#39;ve got news for you. You&#39;re probably on a 12 month project, not a seven month project.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111092332571700022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111092332571700022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092332571700022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092332571700022'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/schedule-slippage-and-um-golf.html' title='Schedule Slippage and, um, Golf'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111092327417912533</id><published>2005-03-22T13:00:00.000-05:00</published><updated>2005-03-22T11:49:13.016-05:00</updated><title type='text'>Good, Fast or Cheap Part II: So what?</title><content type='html'>So, despite the fact that the old rubrick &quot;Good, fast, or cheap: pick two,&quot; does nothing to help us improve our software devleopment efforts - why does it still resonate so much with us, as developers?  I think it&#39;s a refuge where we express our frustration with schedule and budget pressure that seems unreasonable to us, given that we need to produce software that works. &lt;br /&gt;&lt;br /&gt;Nonetheless the reality is that any software effort has to deliver within the constraints of time, budget and quality. What we should really be doing when we&#39;re faced with time and budget constraints that seem inadequate to the task, is to express that. If we are sincere, then the effort should be avoided to begin with - or negotiations need to be made which will produce a valued product within reasonable constraints.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111092327417912533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111092327417912533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092327417912533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092327417912533'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/good-fast-or-cheap-part-ii-so-what.html' title='Good, Fast or Cheap Part II: So what?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111107627285944351</id><published>2005-03-17T11:16:00.000-05:00</published><updated>2005-03-17T11:21:34.626-05:00</updated><title type='text'>Communication skills for software developers</title><content type='html'>In my previous post, I suggested that just improving communication skills could have a powerful effect on your efficiency in developing software. What was I talking about?&lt;br /&gt;&lt;br /&gt;Let&#39;s take meeting skills, for one. Software developers facilitate and participate in a lot of meetings. There are some skills you can bring to bear to make those meetings more effective.&lt;br /&gt;&lt;br /&gt;1.  Are you a good meeting scheduler?&lt;br /&gt;&lt;br /&gt;Do you prepare an agenda in advance, and distribute it to the participants, so that they know how they will be spending their time?&lt;br /&gt;&lt;br /&gt;Do you make it clear what results you want to achieve by the end of the meeting?&lt;br /&gt;&lt;br /&gt;Do you give participants suffient time to prepare for a meeting before holding it? Or do you grab a few people (or a single person) in the hallway while it&#39;s on your mind and just get their gut reactions?&lt;br /&gt;&lt;br /&gt;Do you make sure to invite everybody who has something valuable to contribute, or has a say in decision-making? Otherwise you may find yourself revisiting everything again later.&lt;br /&gt;&lt;br /&gt;2.  Are you a good meeting facilitator?&lt;br /&gt;&lt;br /&gt;Do you follow the scheduled agenda?&lt;br /&gt;&lt;br /&gt;Do you make sure everyone gets a chance to provide their input, and assure nobody dominates the meeting (especially yourself)?&lt;br /&gt;&lt;br /&gt;Do you steer people back to the topic at hand when they get off track?&lt;br /&gt;&lt;br /&gt;3.  Are you a good meeting recorder?&lt;br /&gt;&lt;br /&gt;Do you make sure to accurately capture important information and decisions? Do you confirm with the group that you&#39;ve done so before moving on?&lt;br /&gt;&lt;br /&gt;Do you write legibly on whiteboards and flipcharts?  Do you use them at all?&lt;br /&gt;&lt;br /&gt;Do you provide complete meeting notes to those who attended the meeting, and to other interested parties?&lt;br /&gt;&lt;br /&gt;There are other, more specific skills and tools you might bring to a brainstorming session, or a requirements gathering session, or a decision-making session.&lt;br /&gt;&lt;br /&gt;As you become better at conducting good meetings, you&#39;ll find that you spend less time on them, and the results are more valuable.&lt;br /&gt;&lt;br /&gt;Interested in learning more about effective meetings?  Try &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0425138704/gettingsoftwa-20&quot;&gt;How to Make Meetings Work: The New Interaction Method&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111107627285944351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111107627285944351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111107627285944351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111107627285944351'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/communication-skills-for-software.html' title='Communication skills for software developers'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11426593.post-111092324307536756</id><published>2005-03-15T16:46:00.000-05:00</published><updated>2005-03-16T11:51:59.430-05:00</updated><title type='text'>Good, Fast or Cheap: BS Alert</title><content type='html'>You&#39;ll hear a lot of developers talk about the old saw: &quot;You can have software good, fast, or cheap: pick two&quot;. Now, given an unchangeable set of people, processes, and technology, that might hold true. However, the reality is, you can have things better, faster, and cheaper, simply by improving the efficiency of your approach. That usually boils down to just improving the way you conduct the activities of software project management, and the specific activities that contribute to creating the software. Even just improving communication skills can have a dramatic effect on software project efficiency.&lt;br /&gt;&lt;br /&gt;The other issue with this good/fast/cheap BS is that it implies once you&#39;ve picked the two you care about, you can stop worrying about how to achieve the other one, and that is simply not true. You can&#39;t ignore quality, time, or expense - these are all constant considerations.&lt;br /&gt;&lt;br /&gt;Similarly, it suggests that by throwing money, or time, or bugs(!) at a system, you can get the other two factors to go up, and again that is absolutely not true.&lt;br /&gt;&lt;br /&gt;So the response this always gets from me is:  That&#39;s an interesting observation... so what?&lt;br /&gt;&lt;br /&gt;There are always real-world business constraints on time, quality, and expense. The real blood and guts of the matter is this: What is your capability to produce a given project within those constraints? The only way to improve your capability is to improve your efficiency.&lt;br /&gt;&lt;br /&gt;A side effect when you improve your efficiency is that you improve on all three indices - better quality, shorter turnaround, and lower costs.</content><link rel='replies' type='application/atom+xml' href='http://gettingsoftwaredone.blogspot.com/feeds/111092324307536756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/11426593/111092324307536756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092324307536756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11426593/posts/default/111092324307536756'/><link rel='alternate' type='text/html' href='http://gettingsoftwaredone.blogspot.com/2005/03/good-fast-or-cheap-bs-alert.html' title='Good, Fast or Cheap: BS Alert'/><author><name>Chris</name><uri>http://www.blogger.com/profile/02330401953456265387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>