<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Steve Rowe's Blog</title><subtitle type="html">Ruminations on Computing - Programming, Test Development, Management and More</subtitle><id>http://blogs.msdn.com/steverowe/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/steverowe/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-03-24T09:57:00Z</updated><entry><title>StackOverflow DevDays</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/10/22/stackoverflow-devdays.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/10/22/stackoverflow-devdays.aspx</id><published>2009-10-22T07:38:00Z</published><updated>2009-10-22T07:38:00Z</updated><content type="html">&lt;P&gt;I spent the day at &lt;A href="http://www.seattlesymphony.org/benaroya/" mce_href="http://www.seattlesymphony.org/benaroya/"&gt;Benaroya Hall&lt;/A&gt; for the 1st (annual?) &lt;A href="http://stackoverflow.com/" mce_href="http://stackoverflow.com/"&gt;StackOverflow&lt;/A&gt; &lt;A href="http://stackoverflow.carsonified.com/" mce_href="http://stackoverflow.carsonified.com/"&gt;DevDays&lt;/A&gt; conference.&amp;nbsp; Overall eight speakers took the stage on topics from .Net MVC to Python to the Google App Engine.&amp;nbsp; The &lt;A href="http://www.seattlesymphony.org/benaroya/plan/venue/recital.aspx" mce_href="http://www.seattlesymphony.org/benaroya/plan/venue/recital.aspx"&gt;room&lt;/A&gt; appears to hold just over 500 people and it was filled to capacity with programmers.&amp;nbsp; There were some vendors in attendance including Amazon.com, Fog Creek Software, and someone showing off &lt;A href="http://www.hexbug.com/" mce_href="http://www.hexbug.com/"&gt;HexBugs&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The day started off with a short video titled &lt;EM&gt;Scrumms&lt;/EM&gt; which was a funny spoof on life at Fog Creek and the StackOverflow &lt;A href="http://blog.stackoverflow.com/category/podcasts/" mce_href="http://blog.stackoverflow.com/category/podcasts/"&gt;podcast&lt;/A&gt;.&amp;nbsp; It was quite entertaining.&amp;nbsp; I hope they release it on the web after the conferences complete in a few weeks.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://joelonsoftware.com/" mce_href="http://joelonsoftware.com/"&gt;Joel Spolsky&lt;/A&gt; was the first speaker.&amp;nbsp; I always enjoy reading and listening to him.&amp;nbsp; This speech was not a disappointment.&amp;nbsp; He was as entertaining as ever.&amp;nbsp; The subject matter under discussion was that of design elegance.&amp;nbsp; He began by pointing out that software often gives the user too much choice.&amp;nbsp; Often times it interrupts the user’s work flow to ask a question most users are unprepared to answer.&amp;nbsp; Other times there are options pages with myriad options which no one could know enough to actually use.&amp;nbsp; What is a “trusted user” on GMail anyway?&amp;nbsp; He cited a study where one store put out a lot of varieties of jam (24?) for people to try.&amp;nbsp; Many did, but substantially fewer actually purchased than when the same store put out only a half dozen varieties.&amp;nbsp; People are intimidated when given too much choice.&amp;nbsp; Joel recommended the book,&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://www.amazon.com/gp/product/0060005696" mce_href="http://www.amazon.com/gp/product/0060005696"&gt;&lt;EM&gt;The Paradox of Choice&lt;/EM&gt;&lt;/A&gt;.&amp;nbsp; He then went on to talk about the simplicity offered by companies such as &lt;A href="http://37signals.com/" mce_href="http://37signals.com/"&gt;37 Signals&lt;/A&gt; whose products do only one thing, but do it well.&amp;nbsp; He argued that this isn’t the solution.&amp;nbsp; Customers will demand more features and to grow, a company must grow its feature set.&amp;nbsp; More sales leads to more features.&amp;nbsp; Choice must be offered then, but how to do it in a way that doesn’t alienate the customer?&amp;nbsp; The solution Joel offered up was to make sure the choices support what the user is doing.&amp;nbsp; The users should be modeled and choices aligned along the path of their behavior.&lt;/P&gt;
&lt;P&gt;Joel was followed by &lt;A href="http://www.hanselman.com/blog/" mce_href="http://www.hanselman.com/blog/"&gt;Scott Hanselman&lt;/A&gt; who gave an overview of the &lt;A href="http://www.asp.net/mvc/" mce_href="http://www.asp.net/mvc/"&gt;ASP.Net MVC&lt;/A&gt; framework.&amp;nbsp; This is a web framework built on top of the ASP.Net framework, but which exposes much more direct control to the programmer.&amp;nbsp; For instance, they now have direct control of their URL’s (yeah!).&amp;nbsp; Scott was an entertaining speaker although I think he was a bit too self-deprecating about Microsoft.&amp;nbsp; He spent most of the talk showing the audience various features in existing and upcoming Visual Studio products which make ASP.Net MVC programming easy.&lt;/P&gt;
&lt;P&gt;Next up was &lt;A href="http://www.rory.me/" mce_href="http://www.rory.me/"&gt;Rory Blyth&lt;/A&gt; talking about iPhone development.&amp;nbsp; He was an engaging speaker who obviously knows a lot about what he is doing.&amp;nbsp; I had never looked at iPhone or Objective C development before.&amp;nbsp; I can’t say I’m terribly impressed.&amp;nbsp; The tools like adequate, but aren’t as good as Visual Studio or even Eclipse.&amp;nbsp; Objective C looks like a mishmash of C and Smalltalk.&amp;nbsp; Rory described learning to develop for the iPhone as the Stockholm Syndrome where you eventually come to love your oppressor.&amp;nbsp; The iPhone is an attractive target to develop for from a business perspective (&lt;A href="http://gizmodo.com/5378390/the-app-store-effect-are-iphone-apps-headed-for-oblivion" mce_href="http://gizmodo.com/5378390/the-app-store-effect-are-iphone-apps-headed-for-oblivion"&gt;maybe&lt;/A&gt;), but the SDK doesn’t appear to be the reason people are flocking to it.&amp;nbsp; One highlight at the end was when Rory showed Novell’s &lt;A href="http://monotouch.net/" mce_href="http://monotouch.net/"&gt;MonoTouch&lt;/A&gt; which allows for C# development targeting the iPhone.&amp;nbsp; This looks like a slick environment even if it is a little pricey.&lt;/P&gt;
&lt;P&gt;Following Rory came Joel again with a sales pitch for FogBugs 7.&amp;nbsp; I have to say I was impressed with the empirical scheduling.&amp;nbsp; There is a new plugin called Kiln for code reviews which looks alright, but I think I prefer the UI from &lt;A href="http://www.codeplex.com/Malevich" mce_href="http://www.codeplex.com/Malevich"&gt;Malevich&lt;/A&gt; better.&amp;nbsp; For instance, the comments didn’t appear inline with the text when they were being made.&amp;nbsp; They did later when the submitter saw them though so perhaps I just missed something as Joel blazed through the UI.&amp;nbsp; If I were a startup, I would definitely consider using FogBugz to handle my planning and bug tracking needs.&lt;/P&gt;
&lt;P&gt;Lunch was catered by Wolfgang Puck and was reasonably good consider it was a conference and the whole thing only cost $99.&amp;nbsp; They divided up the tables into discussion topics (great idea!).&amp;nbsp; I went to a table about programming languages, but others included agile methods, startups, and a few I forgot.&lt;/P&gt;
&lt;P&gt;The first speaker after lunch was &lt;A href="http://codylindley.com/" mce_href="http://codylindley.com/"&gt;Cody Lindley&lt;/A&gt; from Ning who was talking about jQuery.&amp;nbsp; jQuery has been on my list of topics to learn about, but never made it to the top of said list.&amp;nbsp; It’s fascinating technology, especially considering I just read Crockford’s &lt;A href="http://oreilly.com/catalog/9780596517748/" mce_href="http://oreilly.com/catalog/9780596517748/"&gt;&lt;EM&gt;Javascript:&amp;nbsp; The Good Parts&lt;/EM&gt;&lt;/A&gt; recently and got a feel for the language as it was meant to be used.&amp;nbsp; For those that don’t know, jQuery is the most popular Javascript framework right now.&amp;nbsp; It runs on 35% of all Javascript pages on the web and 21% of all web pages of any kind.&amp;nbsp; It’s primary use is to make manipulating the DOM (the page structure) much easier.&amp;nbsp; Boiled down it lets a programmer easily select some portion of the page and apply an effect to it.&amp;nbsp; In implementation, it appears to be a Javascript function that wraps up a collection of page elements into a class which then provides methods for manipulating the set.&amp;nbsp; Cody used &lt;A href="http://jsbin.com/" mce_href="http://jsbin.com/"&gt;jsbin.com&lt;/A&gt; for his demo which appears to be an online javascript testing and debugging tool.&amp;nbsp; It looks very nice.&lt;/P&gt;
&lt;P&gt;Daniel Racha from Nokia was next up to talk about &lt;A href="http://qt.nokia.com/" mce_href="http://qt.nokia.com/"&gt;Qt&lt;/A&gt;&amp;nbsp;(pronounced "cute" not "Q-T").&amp;nbsp; This is a cross-platform UI toolkit and development platform recently purchased by Nokia.&amp;nbsp; It is also the basis of the K Desktop Environment (KDE) for Linux and is where Webkit originated.&amp;nbsp; Webkit is the rendering engine that powers Safari and Chrome.&amp;nbsp; Nokia’s plan is to use Qt as the basis for its phone app development story.&amp;nbsp; The technology and the tools are both mature and highly capable.&amp;nbsp; Daniel did a good job selling the merits of Nokia’s tool chain.&amp;nbsp; Considering the toolkit supports 6 platforms right now (Windows, Mac, Linux, plus several phone OS’s), I can see how this might be the way for cross-phone applications to be written.&amp;nbsp; Daniel also mentioned the Nokia N900 which apparently is completely open source to the point where end users could upload their own OS.&amp;nbsp; I can foresee 3rd party variants like those created for the Linksys routers.&amp;nbsp; This could be an interesting challenge to Apple’s iPhone strategy.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://twitter.com/twleung" mce_href="http://twitter.com/twleung"&gt;Ted Leung&lt;/A&gt; from Sun came to talk about Python.&amp;nbsp; This is another language I haven’t had time to learn yet.&amp;nbsp; His slides were terribly hard to read (purple on black—seriously?), but the content was good.&amp;nbsp; He gave a quick overview of the language basics and then talked about more advanced features like destructuring, generators (simple continuations), decorators, and extensions.&amp;nbsp; Python has definitely taken a lot from the world of functional programming.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dansanderson.com/" mce_href="http://www.dansanderson.com/"&gt;Dan Sanderson&lt;/A&gt; was next up and gave an introduction to the Google App Engine.&amp;nbsp; It looks like an interesting way to build out scalable web sites.&amp;nbsp; This is the competitor to Amazon’s S3 and Microsoft’s Azure.&amp;nbsp; It supports the Python and Java virtual machines and so sites can be implemented in Python, Java, or any language that targets the JVM (Clojure, Scala, JRuby, etc.).&amp;nbsp; With that kind of support it would seem an app programmed to it would be capable of being moved, but that would not be the case.&amp;nbsp; The app engine is a very different sandbox to play in.&amp;nbsp; The database is non-relational and doesn’t support SQL (or at least fully SQL), the filesystem is different, there is no direct network access.&amp;nbsp; In short, once an app is written to the App Engine, it won’t easily run anywhere else.&amp;nbsp; The environment looks intriguing, but you are putting your company’s fate into Google’s hands.&lt;/P&gt;
&lt;P&gt;The day ended with &lt;A href="http://www.cs.washington.edu/homes/seitz/" mce_href="http://www.cs.washington.edu/homes/seitz/"&gt;Steve Seitz&lt;/A&gt; from the University of Washington talking about some of the advances in 3D image extrapolation.&amp;nbsp; Steve is behind much of the technology that became &lt;A href="http://photosynth.net/" mce_href="http://photosynth.net/"&gt;PhotoSynth&lt;/A&gt;.&amp;nbsp; Steve’s talk was light on programming content but high on “Wow!” factor.&amp;nbsp; This was a great way to end the day.&amp;nbsp; I’m not sure my mind could have taken another heavy talk.&amp;nbsp; The stuff Steve showed us was mind blowing.&amp;nbsp; They are able to take regular photographs, process them, and recreate the 3D scene.&amp;nbsp; Not only that, but newer technology allows for a walkthrough of the site and even &lt;A href="http://grail.cs.washington.edu/rome/dense.html" mce_href="http://grail.cs.washington.edu/rome/dense.html"&gt;full texturing&lt;/A&gt;.&amp;nbsp; You can see it &lt;A href="http://grail.cs.washington.edu/rome/" mce_href="http://grail.cs.washington.edu/rome/"&gt;here&lt;/A&gt;.&amp;nbsp; The best is this one:&lt;/P&gt;
&lt;DIV style="PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 425px; PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; PADDING-TOP: 0px" id=scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ede5f0a3-ab39-4c03-8dfe-db87b6aa14d1 class=wlWriterEditableSmartContent&gt;
&lt;DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px" id=30d78192-7c55-4985-a7ab-e8bfab8cd937&gt;
&lt;DIV&gt;&lt;A href="http://www.youtube.com/watch?v=sQegEro5Bfo&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1" target=_new mce_href="http://www.youtube.com/watch?v=sQegEro5Bfo&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;IMG style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none" alt="" src="http://blogs.msdn.com/blogfiles/steverowe/WindowsLiveWriter/StackOverflowDevDays_14916/video5953daf864bf.jpg" onload="var downlevelDiv = document.getElementById('30d78192-7c55-4985-a7ab-e8bfab8cd937'); downlevelDiv.innerHTML = &amp;quot;&lt;div&gt;&lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&gt;&lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/sQegEro5Bfo&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1&amp;amp;hl=en\&amp;quot;&gt;&lt;\/param&gt;&lt;embed src=\&amp;quot;http://www.youtube.com/v/sQegEro5Bfo&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&gt;&lt;\/embed&gt;&lt;\/object&gt;&lt;\/div&gt;&amp;quot;;" galleryimg="no" mce_src="http://blogs.msdn.com/blogfiles/steverowe/WindowsLiveWriter/StackOverflowDevDays_14916/video5953daf864bf.jpg"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Overall the day was well spent.&amp;nbsp; I got to learn about a lot of cool new technologies and renew my excitement for programming.&amp;nbsp; Now I just have to pick one and find the time to learn it.&amp;nbsp; If the event takes place again next year, I definitely intend on going.&amp;nbsp; Thanks to Joel Spolsky and the folks at Carsonified for putting on such a great conference.&lt;/P&gt;
&lt;P&gt;For more, find other reviews on &lt;A href="http://meta.stackoverflow.com/questions/26873/devdays-reviews-seattle" mce_href="http://meta.stackoverflow.com/questions/26873/devdays-reviews-seattle"&gt;Meta.Stackoverflow&lt;/A&gt; or watch the &lt;A href="http://twitter.com/search?q=+%23devdays#search?q=%20%23devdays" mce_href="http://twitter.com/search?q=+%23devdays#search?q=%20%23devdays"&gt;Twitter stream&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.seattlesymphony.org/benaroya/ href="http://www.seattlesymphony.org/benaroya/" mce_href="http://www.seattlesymphony.org/benaroya/"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911170" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Programming" scheme="http://blogs.msdn.com/steverowe/archive/tags/Programming/default.aspx" /></entry><entry><title>Forging a Team Identity</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/09/30/forging-a-team-identity.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/09/30/forging-a-team-identity.aspx</id><published>2009-09-30T19:25:53Z</published><updated>2009-09-30T19:25:53Z</updated><content type="html">&lt;p&gt;For a group of coworkers to have a chance of becoming a team, they must share a common sense of purpose or identity.&amp;#160; Dave Logan in Tribal Leadership calls this a “Noble Cause.”&amp;#160; On small teams this often comes naturally.&amp;#160; Everyone is working on the same project or related set of features.&amp;#160; As teams become larger, their goals become more dissimilar and team identity becomes harder to forge.&amp;#160; It is up to the leader to forge this team identity.&lt;/p&gt;  &lt;p&gt;Having a unifying cause (whether noble or not) is important to get the most out of a team.&amp;#160; If people are all working toward a common goal, they will make the right compromises to do what is best for the team as a whole.&amp;#160; If there is no unifying cause, people will be working to optimize locally which is usually at odds with global optimization.&amp;#160; Each person will be trying their hardest, but if they are pulling is different directions, some of their effort will cancel out the effort of others.&amp;#160; Having a unifying cause does not guarantee that people work in concert, but it is certainly a prerequisite.&lt;/p&gt;  &lt;p&gt;How does one go about finding a unifying cause?&amp;#160; First look at the obvious candidates.&amp;#160; If the whole team is working on a particular product or feature area, just use that.&amp;#160; In my past I have unified teams around the concept of working on audio in Windows or on being the video team.&amp;#160; Sometimes there is no single feature to focus on.&amp;#160; In my last position I had 3 teams working for me.&amp;#160; Each had a distinct area to work on.&amp;#160; We were all part of the Windows organization, but we were such a small part that we couldn’t take that as our identity.&amp;#160; Each team even had its own identity, but as a group of leads, we didn’t.&amp;#160; What Joe was working on didn’t relate much to what Jane was working on.&amp;#160; I was convicted by &lt;a href="http://www.amazon.com/Tribal-Leadership-Leveraging-Thriving-Organization/dp/0061251305"&gt;Tribal Leadership&lt;/a&gt; and &lt;a href="http://www.amazon.com/Good-Great-Companies-Leap-Others/dp/0066620996"&gt;Good to Great&lt;/a&gt; that we needed a point of unification, but there wasn’t a product we has in common.&amp;#160; It was time to forge an identity rather than find one.&lt;/p&gt;  &lt;p&gt;The unifying principal I chose was becoming better managers together.&amp;#160; This is something we all had in common, being managers, and something we could help each other with.&amp;#160; Even if the technologies we were working on didn’t form a conceptual whole, our positions did.&amp;#160; Toward this end we made sure to have a lot of discussions about managing people.&amp;#160; We would discuss situations and how to handle them.&amp;#160; We started a weekly “book club” where we would read a chapter of a book each week and discuss it in our leads meeting (more on this in a future post).&amp;#160; It worked well.&amp;#160; The team began to gel work work together.&amp;#160; People began forming triad relationships rather than being dyadic.&amp;#160; That is, they started helping each other rather than merely reporting everything to me.&lt;/p&gt;  &lt;p&gt;It is important that a team, whether it be a team of ICs all working on the same feature or a group of leads reporting to a manager, have some common identity.&amp;#160; This in turns requires a goal or a unifying principal.&amp;#160; If there are no obvious candidates to be found, identity should be forged from something less obvious.&amp;#160; In the second case, it is easy to operate without a unifying goal, but things will run less smoothly.&amp;#160; Be &lt;a href="http://blogs.msdn.com/steverowe/archive/2009/07/01/be-intentional.aspx"&gt;intentional&lt;/a&gt; about ensuring each team has a common identity.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901380" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>Own the Feedback</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/08/04/own-the-feedback.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/08/04/own-the-feedback.aspx</id><published>2009-08-04T19:19:00Z</published><updated>2009-08-04T19:19:00Z</updated><content type="html">&lt;p&gt;Some time ago I was at a management training course. The group was divided into those who were managers of managers known in this course as M2s and those who were what I have been calling leads–that is managers of individual contributors–which they called M1s. I was part of the M2 group. The M1s were divided into groups of 10 or so and an M2 was assigned to each group as the Manager and another as merely an individual contributor. A couple of the M2s–myself included–formed the executive committee and were not involved in the working groups at all the first day. On the second day we changed things up and I wound up as an IC on a team. I knew I could not come into this group that didn't know me and act as the leader. It wasn't my role and it wouldn't be accepted. I tried really hard to play the supporting role. &lt;/p&gt;  &lt;p&gt;When I arrived, the group was in some trouble. They were in the middle of wordsmithing their mission statement (this on day 2!!). To make it worse, all 10 members were involved in this and it was becoming a marathon session. In an effort to help out, I made several suggestions and tried to ask questions to point them in the right direction. I didn't tell them how to act. They could freely take or leave my suggestions. At least, that is how I perceived it. &lt;/p&gt;  &lt;p&gt;At the end of the 2nd day there was a feedback session. Many of the members said something to the effect “I felt you were trying to take over the team.” My initial reaction was to challenge the validity of these statements. Not out loud of course, but internally. I had no intent in taking over. In fact I had been trying hard to avoid taking over. I carefully crafted my suggestions in such a way that they were not instructions, but just offerings of opinion that carried no weight of authority. If I had been actively avoiding taking over, these people must be in error in their judgement. &lt;/p&gt;  &lt;p&gt;When the M2s gathered I shared this experience with someone who had become a mentor to me. His sage advice was, “You have to own the feedback.” What he meant was that there had to be truth in there. Even if the feedback wasn't an accurate representation of reality–I was *not* trying to take over–it was an accurate representation of their perception of reality. Something about the situation and my actions had caused this perception. I could either accept that and look for the cause or I could reject that and learn nothing. &lt;/p&gt;  &lt;p&gt;I chose to accept the criticism and looked for the root cause of their perception. I was totally new to the situation. These people did not know me. Even though my suggestions were not intended as instructions, they were perceived that way because I was perceived as the new guy and new guys shouldn't act with authority so fast. In their minds I was the new hire and didn't understand the situation. I had built up no relationships, no human capital with them and thus had no implicity trust. I thus talked with more authority than someone in my position should have. It wasn't so much me but the position I held. I needed to act more in line with their expectations. I needed to build the relationship before giving advice. &lt;/p&gt;  &lt;p&gt;This analysis was born out later as people gave me the feedback that I had done less to try to take over as the session wore on. In reality, I had initially been rejecting their feedback and so hadn't changed. My actions were the same late on day 2 as they were early that day. The actions hadn't changed, but the perception had. I had built up some human capital and so my actions were being perceived differently. The specific takeaway is to know your perceived position and to act within it. Perception matters. It is important to build relationships before trying to affect change. &lt;/p&gt;  &lt;p&gt;The more general takeaway is to always own the feedback. When people say they perceive you in a particular way, that cannot be argued. The fact is, whether you intended it or not, you were perceived in that manner. The only two options are to accept the feedback and act on it or to ignore it and burn the relationship. The world is too small to go around cavalierly burning relationships. Owning the feedback means accepting that you did something to create the perception. It could be reality. It could have been that I really was trying to take over the group. Or it could be merely perceptual. I had acted in such a way so as to appear to want to take control even though I didn't. It is important to discern which of these is true because the solution is different in each case. &lt;/p&gt;  &lt;p&gt;This is advice I end up giving often at review time. Someone gets a tough message and wants to challenge it. “But I didn't do …” or “But that's not how it really happened.” These responses are not taking responsibility for the event. They are not examples of owning the feedback. The person proffering these responses will not fix the problem because they are externalizing blame for it. The true problem lies with someone else and so they have no responsibility or even ability to fix it. My response to this is consistent. The reality is that this is the perception. If they didn't do what they are accused of, then they did something to cause someone to think that they did. Whatever that was, they need to look for a way to address it. If not, they'll be getting the same review next year and at that point it will become a trend. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9856792" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>How to Interact with Your Team as a Manager</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/07/27/how-to-interact-with-your-team-as-a-manager.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/07/27/how-to-interact-with-your-team-as-a-manager.aspx</id><published>2009-07-27T17:49:09Z</published><updated>2009-07-27T17:49:09Z</updated><content type="html">&lt;p&gt;As one moves from being a lead (manager whose reports are individual contributors) to a manager (manager whose reports are leads), there is an important decision to be made about how to interact with your skip-level reports. That is, how should a manager handle his interactions with the individual contributors reporting to his leads. There are two ends of this spectrum and managers often gravitate to one end or the other. The first option is to bypass the leads and go directly to those on the front lines. The second is to route most interactions through the leads. Both have their advantages and disadvantages. Where to position yourself between these two ends of the spectrum is not an easy decision to make. &lt;/p&gt;  &lt;p&gt;If a manager decides to bypass her reports and go directly to the individual contributors (ICs), she has direct knowledge of how things are progressing. She develops a direct relationship with the ICs. Things are more likely to be done the way she wants. However, there are some significant downsides to this behavior as well. &lt;/p&gt;  &lt;p&gt;First, it is hard to scale to this level. The fact that the organization chose to have leads should indicate that the work is too big for one person to manage. If the manager can handle all of the ICs directly, the lead position is extraneous and harmful. The reality is that this manager is unlikely to have enough time to closely monitor the work all of the time. Her interaction with the team will then tend toward drive-by management. She will swoop in and give direction on a particular part of a project but then lose focus before the results of the direction become evident. This can lead to poor decisions being implemented and frustration among the individuals carrying out the instructions. &lt;/p&gt;  &lt;p&gt;Second, it can lead to discontent among the leads. They will have particular ways they want work done and a priority order for what they want done. Having their manager go directly to their reports means these instructions will be contradicted. This causes confusion among the ICs who will have conflicting priorities and goals. The lead will also feel his role being undermined by his manager. When she goes to his reports and gives them instructions, he is out of the loop and will begin to feel unnecessary or even frustrated. This can cause the lead to stop performing the duties of a lead and allowing the manager to do that work. As the manager is unable to give the same amount of attention, this often leads to a situation where no one is paying attention. &lt;/p&gt;  &lt;p&gt;What about the alternative? Routing work through the leads. When a manager wants her team to do something, rather than going to Fred the IC with instructions, she asks the lead to ask Fred to do the work. This allows for the lead to always be in the loop. It allows the lead to ensure that there is a clear message (see blog past on providing clarity) so that the IC only has one set of priorities. It also allows the manager to scale. Rather than having to check in on Fred's progress, she can just ask her lead in their 1:1 how things are going. The details of the work can be left to the lead and the manager need only bother with the end goals. This may sound good, but there are downsides as well. &lt;/p&gt;  &lt;p&gt;First, going through another person in communication always risks the message getting distorted. As anyone who played telephone in elementary school can attest, the more people that retransmit a message, the more it will change. In the elementary school game children are asked to sit in a line. The first child is given a message and asked to tell the next child in line. Each child in turn is to repeat what they heard to the next child. The final child will announce to the group the message he received. With rare exception, the final message is not even related to the initial one. &lt;/p&gt;  &lt;p&gt;Second, going through another person can limit the amount of feedback received. If Jane the manager tells her lead Marcus to have his team make the iWidget program interface with the new build process, there is some chance that Jane will not learn that this is more difficult than initially conceived. If Marcus does his job poorly, he may not relay the message to Jane. This leads to frustration on all fronts. Jane is upset because the project is taking too long. Fred the IC is upset because he is being asked to do the impossible. Marcus may even be frustrated because both his manager and his report are frustrated. &lt;/p&gt;  &lt;p&gt;The third and perhaps most insidious downside of this management approach is the lack of relationship that gets built. People will subconsciously distrust those who they do not have a relationship with. Their natural tendency is to distrust until they have reason to trust. The reason doesn't have to be large. It could just be seeing that the manager treats others fairly or having casual conversations which convey the sense that the manager is a “real person.” The result of this psychological phenomenon is that until a manager has built up social capital via relationships, she will not get the benefit of the doubt from her team. Subtly, the team will interpret ambiguous actions in a negative light. Asking for a code review will not be seen as a way to strengthen the team's coding skills but rather as a way to check up on people and “get them” if they aren't doing well enough. Mail sent asking about the status of a bug will be viewed as accusatory rather than merely inquisitive. The most insidious part is that the manager will probably never realize this is happening because she doesn't have the relationships that would provide the necessary feedback channel. &lt;/p&gt;  &lt;p&gt;In the past year I made the transition to manager and faced this exact quandary. My decision was to route most interaction through my reports. When I needed work done, I would ask the manager to have the work done instead of going directly to the report. I knew the downsides of not letting leads do their job and wasn't going to make that mistake. Instead, I made the mistake of being too distant. I built up relationships with my direct reports, but not as much with the teams reporting to them. Based on this experience, I will be trying a more mixed approach in the future. &lt;/p&gt;  &lt;p&gt;I still believe it is important not to bypass the leads when giving work instructions.&amp;#160; Yes, this has the telephone problem, but the consequences of avoiding that are too great.&amp;#160; At the same time, it is important to build a relationship with the individual contributors.&amp;#160; This means ensuring direct contact.&amp;#160; At the lower edge contact should be made at the individual level by wandering the halls and by skip-level 1:1s.&amp;#160; At the higher edge, contact should be made by sending out broad mails laying out high-level vision, by all-team meetings even if there is no business demand for them, and by occasionally attending your team leads' meetings.&amp;#160; The middle (direct business communication) should be left to the leads.&amp;#160; In initiating contact at the individual level for personal contact and at the vision level for business, you should generate enough “human capital” that the team will come to trust you and give you the benefit of the doubt.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9850049" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>Be Intentional</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/07/01/be-intentional.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/07/01/be-intentional.aspx</id><published>2009-07-01T20:33:50Z</published><updated>2009-07-01T20:33:50Z</updated><content type="html">&lt;p&gt;My old manager used to always say, “Be intentional.”&amp;#160; It took me a long time to comprehend exactly what he meant by this, but eventually I did and have come to appreciate the advice.&amp;#160; What he meant was to always make active, conscious decisions rather than just letting things happen.&amp;#160; It also means to verify things rather than assuming they are a certain way.&amp;#160; For example, if you don’t have enough time to do everything on your plate, think carefully about which items will not get done rather than just working on items in no particular order.&amp;#160; It should be your intent which specific items go undone.&lt;/p&gt;  &lt;p&gt;This is a good principle to act by.&amp;#160; All too often people think about what they *are* doing but don’t consider what they *are not* doing.&amp;#160; It is just as important to be conscious about what you are not doing as it is to be aware of what you are.&amp;#160; If you don’t actively choose that which is not done, it is likely that the wrong things will drop off your plate.&amp;#160; It is easy to be busy working on something that is important to the detriment of something that is really important.&amp;#160; It is best to make all decisions, both positive and negative, conscious ones.&amp;#160; I’ll often ask my team when something goes undone whether that was intentional or not.&amp;#160; If there is only time to do 3 items and there are 4 that should be done, I’m fine with the 4th being dropped.&amp;#160; It is a poor manager who is upset when the impossible isn’t accomplished.&amp;#160; I do, however, hold my team accountable for that 4th item being something they intend to not get done rather than whatever just happened to be left at the end of the day.&lt;/p&gt;  &lt;p&gt;I’ve seen this come up in testing features.&amp;#160; I recall a time when a report of mine was testing a particular feature with two aspects to it.&amp;#160; For good reasons he started working on the first part, a complex parser for device attributes.&amp;#160; Being complex, this took a long time to thoroughly test.&amp;#160; In fact, it was taking long enough that he was not going to be able to get to the second aspect of the feature at all.&amp;#160; I inquired whether this was really the right approach.&amp;#160; Did he think it was better to thoroughly test the parser and test the other part none or would it be better to test the parser to some level, then test the other aspect, and finally return (in the future) to cover the less important parts of the parser.&amp;#160; Upon reflection he decided it was a better idea to cover both to some extent than one fully and the other none.&amp;#160; The trouble here is that he wasn’t acting intentionally.&amp;#160; The test plan called for testing both aspects thoroughly.&amp;#160; The plan didn’t call for ignoring the second part.&amp;#160; It was just because of the unexpected difficulty of testing the parser that the second was going to be missed.&amp;#160; He needed to step back, re-evaluate, and decide intentionally rather than just letting events dictate what was going to be dropped.&lt;/p&gt;  &lt;p&gt;This principle is also good to apply when dealing with other people.&amp;#160; Instead of just assuming that the other party will do the right thing, being intentional means specifically outlining expectations of them.&amp;#160; It is easy to think you’ve told someone what to do without them realizing that you did.&amp;#160; Being intentional means verifying that your assumptions were communicated and following up later.&amp;#160; It means being explicit when handing work to another person.&amp;#160; Make sure they understand that it is your expectation that they now have the action item before you clear it from your to-do list.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9811509" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Other" scheme="http://blogs.msdn.com/steverowe/archive/tags/Other/default.aspx" /></entry><entry><title>Five Books To Read If You Want My Job</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/05/27/five-books-to-read-if-you-want-my-job.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/05/27/five-books-to-read-if-you-want-my-job.aspx</id><published>2009-05-28T03:03:52Z</published><updated>2009-05-28T03:03:52Z</updated><content type="html">&lt;p&gt;This came out of a conversation I had today with a few other test leads.&amp;#160; the question was, “What are the top 5 books you should read if you want my job?”&amp;#160; My job in this case being that of a test development lead.&amp;#160; At Microsoft that means I lead a team (or teams) of people whose job it is to write software which automatically tests the product.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.amazon.com/Behind-Closed-Doors-Management-Programmers/dp/0976694026"&gt;Behind Closed Doors&lt;/a&gt; by Johanna Rothman – One of the best books on practical management that I’ve run across.&amp;#160; 1:1’s, managing by walking around, etc.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/020161586X"&gt;The Practice of Programming&lt;/a&gt; by Kernighan and Pike– Similar to &lt;a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670"&gt;Code Complete&lt;/a&gt; but a lot more succinct.&amp;#160; How to be a good developer.&amp;#160; Even if you don’t develop, you have to help your team do so.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612"&gt;Design Patterns&lt;/a&gt; by Gamma et al – Understand how to construct well factored software.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/How-Break-Software-Practical-Testing/dp/0201796198"&gt;How to Break Software&lt;/a&gt; by James Whittaker – The best practical guide to software testing.&amp;#160; No egg headed notions here.&amp;#160; Only ideas that work.&amp;#160; I’ve heard that &lt;a href="http://www.amazon.com/How-We-Test-Software-Microsoft/dp/0735624259"&gt;How We Test Software at Microsoft&lt;/a&gt; is a good alternative but I haven’t read it yet.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.amazon.com/Smart-Gets-Things-Done-Technical/dp/1590598385"&gt;Smart, and Gets Things Done&lt;/a&gt; by Joel Spolsky – How great developers think and how to recruit them.&amp;#160; Get and retain a great team.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is not an exhaustive list.&amp;#160; There is a lot more to learn than what is represented in these books, but these will touch on the essentials.&amp;#160; If you have additional suggestions, please leave them in the comments.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9645166" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Testing" scheme="http://blogs.msdn.com/steverowe/archive/tags/Testing/default.aspx" /><category term="Programming" scheme="http://blogs.msdn.com/steverowe/archive/tags/Programming/default.aspx" /><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /><category term="Books" scheme="http://blogs.msdn.com/steverowe/archive/tags/Books/default.aspx" /><category term="Software Process" scheme="http://blogs.msdn.com/steverowe/archive/tags/Software+Process/default.aspx" /></entry><entry><title>Some Programming Languages to Consider Learning</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/05/12/some-programming-languages-to-consider-learning.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/05/12/some-programming-languages-to-consider-learning.aspx</id><published>2009-05-12T18:21:00Z</published><updated>2009-05-12T18:21:00Z</updated><content type="html">&lt;P&gt;Learning a new programming language can affect the way you think.&amp;nbsp; While most modern languages are &lt;A href="http://en.wikipedia.org/wiki/Turing-complete" mce_href="http://en.wikipedia.org/wiki/Turing-complete"&gt;Turing Complete&lt;/A&gt; and can theoretically all accomplish the same things, that’s not practically true.&amp;nbsp; Each language has its own strengths of expressiveness.&amp;nbsp; For instance, trying to write dynamically typed code in C++ is possible, but a pain in the neck.&amp;nbsp; You would have to implement your own type system to do so.&amp;nbsp; Each language makes certain things easy and other things hard.&amp;nbsp; Learning different languages then exposes you to different approaches.&amp;nbsp; Each approach provides a different way of thinking and a set of tools supporting that way of thinking.&amp;nbsp; What follows are some of the languages I’ve learned and what I think they provide.&amp;nbsp; This list is limited to languages I’ve studied in at least a little depth.&amp;nbsp; There are many more languages out there that may be useful.&amp;nbsp; If you have additional suggestions, please make them in the comments.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://cm.bell-labs.com/cm/cs/cbook/" mce_href="http://cm.bell-labs.com/cm/cs/cbook/"&gt;C&lt;/A&gt; – This is coding very close to the metal.&amp;nbsp; Learning it promotes an understanding of memory, pointers, etc.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.sbcl.org/" mce_href="http://www.sbcl.org/"&gt;Lisp&lt;/A&gt;/&lt;A href="http://www.plt-scheme.org/" mce_href="http://www.plt-scheme.org/"&gt;Scheme&lt;/A&gt; – Once you get past your parenthesis-phobia, it’s a very elegant language.&amp;nbsp; The big learnings here are treating code as data, &lt;A href="http://en.wikipedia.org/wiki/Metaprogramming" mce_href="http://en.wikipedia.org/wiki/Metaprogramming"&gt;metaprogramming&lt;/A&gt; (writing programs that themselves write programs), and recursion.&amp;nbsp; Lisp is also a dynamically-typed language.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://clojure.org/" mce_href="http://clojure.org/"&gt;Clojure&lt;/A&gt; – A variant of Lisp that runs on the JVM.&amp;nbsp; In addition to what you can learn from Lisp, it adds &lt;A href="http://en.wikipedia.org/wiki/Persistent_data_structure" mce_href="http://en.wikipedia.org/wiki/Persistent_data_structure"&gt;persistent data structures&lt;/A&gt; and &lt;A href="http://en.wikipedia.org/wiki/Software_transactional_memory" mce_href="http://en.wikipedia.org/wiki/Software_transactional_memory"&gt;transactional memory&lt;/A&gt;.&amp;nbsp; Persistent data structures are ones that *never* change.&amp;nbsp; Once you have a “pointer” to one, it will never change underneath you.&amp;nbsp; This makes parallel programming much simpler.&amp;nbsp; Clojure also is more of a functional language than Lisp/Scheme.&amp;nbsp; It is not purely functional, but allows for the functional style to be followed more easily.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.squeak.org/" mce_href="http://www.squeak.org/"&gt;Smalltalk&lt;/A&gt; – Much of modern programming originated in this language.&amp;nbsp; Modern GUIs are based on the Xerox Parc Smalltalk systems.&amp;nbsp; Object Oriented programming was first popularized in Smalltalk.&amp;nbsp; Extreme Programming, Agile, and Design patterns all found their initial formulations in Smalltalk.&amp;nbsp; In addition to learning about OO programming, Smalltalk is great to understand &lt;A href="http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html" mce_href="http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html"&gt;message passing&lt;/A&gt;.&amp;nbsp; This gives object-oriented code a different feel than the function call semantics of C++/Java/C#.&amp;nbsp; Smalltalk is also a dynamic language.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.perl.com/" mce_href="http://www.perl.com/"&gt;Perl&lt;/A&gt; – Perl was once known as the duct tape of the internet.&amp;nbsp; It ran everything.&amp;nbsp; It has since been surpassed (at least in blogosphere popularity) by other scripting languages like Ruby and Python.&amp;nbsp; The biggest thing to learn from Perl is regular expressions.&amp;nbsp; They are built into the core of the language.&amp;nbsp; Other languages support them but often as a library.&amp;nbsp; Even those that do support them in the syntax do not usually utilize them so pervasively.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx" mce_href="http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx"&gt;C#&lt;/A&gt;/&lt;A href="http://java.sun.com/" mce_href="http://java.sun.com/"&gt;Java&lt;/A&gt; – These languages both solve the same problems in almost the same ways.&amp;nbsp; They are a great place to learn object-oriented programming.&amp;nbsp; It is built in from the ground up.&amp;nbsp; The OO style is one of function calls and strong interfaces (which distinguishes it from Smalltalk).&amp;nbsp; These languages also have the largest accompanying libraries.&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9605228" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Programming" scheme="http://blogs.msdn.com/steverowe/archive/tags/Programming/default.aspx" /><category term="Learning to Code" scheme="http://blogs.msdn.com/steverowe/archive/tags/Learning+to+Code/default.aspx" /></entry><entry><title>Inbox Zero, Take Two</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/04/30/inbox-zero-take-two.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/04/30/inbox-zero-take-two.aspx</id><published>2009-04-30T20:04:41Z</published><updated>2009-04-30T20:04:41Z</updated><content type="html">&lt;p&gt;A year and a half ago I tried to get to “&lt;a href="http://blogs.msdn.com/steverowe/archive/2007/11/29/inbox-zero.aspx"&gt;Inbox Zero&lt;/a&gt;” and failed.&amp;#160; This is the idea that you get your inbox down to zero mails every day.&amp;#160; I’m making another run at it and this time have been a little more successful.&amp;#160; I’m not perfect, but I haven’t fallen off the horse yet either.&amp;#160; Here’s what I have found to work.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Let all interesting mail fall directly into the inbox.&amp;#160; Don’t use separate folders for stuff from your boss or an alias/list that is important.&lt;/li&gt;    &lt;li&gt;Move non-interesting mail into a separate folder by a rule.&amp;#160; I have rules to shunt off aliases I find merely interesting but not important into their own folders automatically.&lt;/li&gt;    &lt;li&gt;Read or skim every mail that is in your inbox.&amp;#160; For each, make one of the following decisions:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Respond.&amp;#160; Read it and take the appropriate action.&amp;#160; If you can do this in a minute or two, just do it.&lt;/li&gt;      &lt;li&gt;Delete it.&amp;#160; You have the information or it wasn’t interesting.&amp;#160; Either way, you don’t need to keep it around.&lt;/li&gt;      &lt;li&gt;Archive it.&amp;#160; You may need to refer back to it later, but you don’t need to take any action on it.&lt;/li&gt;      &lt;li&gt;Mark it for further reading.&amp;#160; It’s not critical to act on it, but too long to read now.&amp;#160; Put it in a folder to read later.&lt;/li&gt;      &lt;li&gt;Mark it for further action.&amp;#160; It will take longer than you have to respond, but a response is necessary.&amp;#160; Put it in a folder for later response.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Following these rules makes my inbox look something like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Inbox&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Action Required&lt;/li&gt;      &lt;li&gt;Archive&lt;/li&gt;      &lt;li&gt;Read Later&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Interests&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Various subfolders for the non-critical aliases I am part of.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;I also have a rule to move all mail sent to: or cc: me directly to my inbox.&amp;#160; This way mail intended for my eyes won’t get filtered into an “interests” folder.&lt;/p&gt;  &lt;p&gt;I have found this system simple enough to keep up with it.&amp;#160; It also means I no longer miss mails which got filtered into some folder I haven’t yet read for today.&amp;#160; I now see every interesting mail and am at least aware of it.&amp;#160; It also helps me keep track of the mails I really need to go back and respond to.&amp;#160; My old system was just to leave them unread, but this got unwieldy very quickly and I never made it back to most of them.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9580777" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Other" scheme="http://blogs.msdn.com/steverowe/archive/tags/Other/default.aspx" /></entry><entry><title>Don’t Worship at the Altar of Accuracy</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/04/27/don-t-worship-at-the-altar-of-accuracy.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/04/27/don-t-worship-at-the-altar-of-accuracy.aspx</id><published>2009-04-28T03:40:00Z</published><updated>2009-04-28T03:40:00Z</updated><content type="html">&lt;p&gt;Earlier today I found myself faced with a common management situation.&amp;#160; I had been sent an e-mail which showed that a piece of data we were using was inaccurate.&amp;#160; The specific issues was what percentage of a certain test run was automated.&amp;#160; We had said we were at 100% and it turned out there were a handful of tests that were being run on our behalf by someone else and those were not automated.&amp;#160; My initial response was to investigate how big the non-automated block of tests was, why it wasn’t included, etc.&amp;#160; Then I stopped and thought about it.&amp;#160; Even if the number were as large as reported, that number would be 10% of the total test suite.&amp;#160; That is almost certainly an over-exaggeration.&amp;#160; When we make the numbers more accurate, it probably slips to 1%.&amp;#160; Whether we are 90% automated, 99% automated, or 100% automated, does that change anything?&amp;#160; Is that number going to change what I ask of my team?&amp;#160; Probably not.&amp;#160; In all cases the items that are manual are intended to be that way.&amp;#160; I won’t stop running them or try to automate them.&amp;#160; All that I will gain by going through the process of making the number more accurate is a more accurate number.&amp;#160; Is there value in that?&amp;#160; I assert that the answer is no.&amp;#160; A number’s accuracy matters only to the extent that the difference will change behavior.&amp;#160; Within some range, different numbers won’t change behavior and so are not worth expending effort increasing the accuracy.&lt;/p&gt;  &lt;p&gt;This isn’t to say numbers don’t matter at all.&amp;#160; They do—but only when decisions will be made based on them.&amp;#160; Effort is not free.&amp;#160; Spending energy refining a value that is accurate enough means not expending that same energy on something that might bring more value to the team.&amp;#160; It isn’t hard to find something which brings more value because the value an increasingly accurate number brings is zero.&amp;#160; This is especially important to note as a manager.&amp;#160; A manager typically does not spend a lot of effort making data accurate.&amp;#160; He or she merely asks others to do so.&amp;#160; In this way the costs are hidden and thus the tradeoff not as apparent.&amp;#160; Beware the cost of obtaining accuracy for its own sake.&amp;#160; I know it is in our DNA as engineers.&amp;#160; Suppress your inner urges and don’t worship at the altar.&amp;#160; Get to good enough and stop.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9572429" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>Simple Management Tip:  Tracking 1:1 Conversations</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/04/22/simple-management-tip-tracking-1-1-conversations.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/04/22/simple-management-tip-tracking-1-1-conversations.aspx</id><published>2009-04-22T18:20:00Z</published><updated>2009-04-22T18:20:00Z</updated><content type="html">&lt;p&gt;Here’s a quick tip I’ve found very handy.&amp;#160; When doing 1:1’s with your team (you are doing these regularly, right?), take notes to keep track of the conversations from week to week.&amp;#160; I currently use a 5-tab notebook with one tab for each direct report.&amp;#160; Each person has their own section.&amp;#160; Each week when we meet, I take notes on the next page in their section.&amp;#160; This makes it really easy to refer back to last week’s notes and follow up on any ongoing issues.&amp;#160; Each week I circle the items I need to follow up on the following week.&amp;#160; This makes it trivial to pick them out.&amp;#160; Having one section per person means the previous week is only one page back.&amp;#160; I tried just keeping a continuous set of notes on everyone, but then finding the last time we talked could be difficult.&amp;#160; &lt;/p&gt;  &lt;p&gt;Another advantage of having each person in their own section is it provides a space for next week’s agenda.&amp;#160; During the week as things come up, I jot them down on the next week’s page.&amp;#160; Then when it comes time for the 1:1, I already have a list of items to follow up on.&amp;#160; This also helps stop my subconscious mind from dwelling on these items (ala Getting Things Done) because I know they will be handled.&lt;/p&gt;  &lt;p&gt;I have also seen OneNote used successfully for this purpose, but I prefer not to have a laptop between myself and the other person in our meetings.&amp;#160; It is a matter of taste.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9559818" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>Becoming a Manager:  Learning to Rely on Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/04/21/becoming-a-manager-learning-to-rely-on-data.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/04/21/becoming-a-manager-learning-to-rely-on-data.aspx</id><published>2009-04-21T20:12:23Z</published><updated>2009-04-21T20:12:23Z</updated><content type="html">&lt;p&gt;Having been a manager* for a while now, I’ve learned more about what it means and what changes it requires in thinking.&amp;#160; This installment of the “&lt;a href="http://blogs.msdn.com/steverowe/archive/2008/07/10/becoming-a-manager-losing-direct-control.aspx"&gt;Becoming a Manager&lt;/a&gt;” series covers the increasing reliance on abstract data that is required as you move up the ranks.&amp;#160; Everyone who is an IC knows that upper management demands lots of charts and data.&amp;#160; Sometimes this makes sense.&amp;#160; Other times we know it distorts the reality which is apparent on the ground.&lt;/p&gt;  &lt;p&gt;When I was a lead I managed by walking around.&amp;#160; I didn’t pay much attention to statistics.&amp;#160; Instead, I would regularly touch each of my team members.&amp;#160; I would have 1:1s, regular &lt;a href="http://blogs.msdn.com/steverowe/archive/2007/08/13/scrum-meetings-for-test.aspx"&gt;scrum meetings&lt;/a&gt;, and hallway conversations.&amp;#160; This allowed me to have a strong sense for what was going on in my team.&amp;#160; This worked great with 6 reports.&amp;#160; When I became a manager I tried to continue this same method of staying on top of what my team was up to.&amp;#160; The problem was, however, that I now had 20 reports.&amp;#160; It’s not possible to touch all of them regularly enough.&amp;#160; It is also a lot harder to keep the issues at play in 20 peoples’ daily work in one’s head.&amp;#160; Finally, most of these 20 had leads which stand in the org chart between myself and them.&amp;#160; Trying to manage by walking around undercuts these leads because now their reports have 2 managers, not one.&amp;#160; This is confusing for all involved.&lt;/p&gt;  &lt;p&gt;What about just touching my direct reports and getting a sense for the product from them?&amp;#160; This would seem to work, but is not terribly effective.&amp;#160; Each person reports differently and normalizing the information coming from each is difficult.&amp;#160; It becomes worse when people use the same words to mean different things.&amp;#160; When I try this technique, I almost always later find out that while I’m getting the same information from each, the results on the ground in each team differ greatly.&amp;#160; How then to get a normalized view of what is going on at the IC level in each team without going to each person to ask?&lt;/p&gt;  &lt;p&gt;The answer lies in gathering data across the team.&amp;#160; I’ve come to rely on the dreaded charts for much of my knowledge.&amp;#160; I have learned to take advantage of tools to track how the team is progressing in getting its work items done, how many bugs are active, what our pass rate is, etc.&amp;#160; This allows me to get a view at a glance of how we are progressing across several key metrics.&amp;#160; As long as I am gathering the right data, I can have an accurate view of how the team is doing.&amp;#160; Based on this data, I can know which areas are doing well and which ones need more personal attention.&lt;/p&gt;  &lt;p&gt;The key here is choosing the right metrics to measure.&amp;#160; The team will optimize for whatever it is I am measuring.&amp;#160; A wrong metric will distort behavior in undesirable ways.&amp;#160; I have found it is important to track only a few items.&amp;#160; A small number of items can be understood by all.&amp;#160; These do not describe everything about the team, but they can act as the proverbial canaries which point out trouble early.&amp;#160; I make sure everyone knows exactly what I am tracking.&amp;#160; Every one of my leads knows the queries I use to monitor things.&amp;#160; This allows them to point out flaws in my methodology and gives them transparency so there are no surprises.&amp;#160; It is also important to keep the metrics stable over time.&amp;#160; A different chart each week gives people whiplash.&lt;/p&gt;  &lt;p&gt;One point about using data to monitor a team:&amp;#160; you need to stay flexible in the use of the data.&amp;#160; The data is a rough facsimile of a real thing that needs to be done.&amp;#160; The data itself is not the goal.&amp;#160; I have seen too many managers confuse the data with reality.&amp;#160; This causes them to push for clean metrics even when this causes undesirable distortions in behavior.&amp;#160; If the data is showing a different state than reality, fix the metric, not the behavior.&amp;#160; Align the data with the team’s actions, not the other way around.&amp;#160; It is important to note that data hides a lot of things.&amp;#160; Relying solely on data is a surefire way to fail.&amp;#160; I still get out and walk around to validate the conclusion I’m drawing from the charts.&amp;#160; The data merely helps me know which areas to spend my limited time digging into deeper.&lt;/p&gt;  &lt;p&gt;It takes a while as a manager to become accustomed to viewing the world through the lens of spreadsheets and charts.&amp;#160; Just as it is difficult to &lt;a href="http://blogs.msdn.com/steverowe/archive/2006/03/09/547373.aspx"&gt;learn to trust others&lt;/a&gt;, it is difficult to learn to trust data.&amp;#160; It is even more difficult to learn when not to trust the same data. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;* Manager means having leads report to you.&amp;#160; A lead is someone who has only individual contributors reporting to you.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9559784" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>I'll be posting on Twitter occasionally</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/04/01/i-ll-be-posting-on-twitter-occasionally.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/04/01/i-ll-be-posting-on-twitter-occasionally.aspx</id><published>2009-04-01T20:55:00Z</published><updated>2009-04-01T20:55:00Z</updated><content type="html">As I surf the net I often run across articles of interest.&amp;nbsp; If I feel they warrant a comment, I'll post them on this blog, but most don't rise to that level.&amp;nbsp; I've decided to try using twitter as an outlet for such items.&amp;nbsp; If you want to see the articles I think are most interesting, feel free to follow me on twitter:&amp;nbsp; &lt;A href="http://twitter.com/steve_rowe"&gt;http://twitter.com/steve_rowe&lt;/A&gt;.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9527452" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Personal" scheme="http://blogs.msdn.com/steverowe/archive/tags/Personal/default.aspx" /></entry><entry><title>Review:  Peopleware</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/03/31/review-peopleware.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/03/31/review-peopleware.aspx</id><published>2009-03-31T20:24:53Z</published><updated>2009-03-31T20:24:53Z</updated><content type="html">&lt;p&gt;The book, &lt;a href="http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439"&gt;Peopleware&lt;/a&gt; by Tom DeMarco and Timothy Lister, comes highly recommended by Joel Spolsky and Jeff Atwood over at the Stack Overflow Podcast.&amp;#160; It is probably most famous for its repudiation of the idea that cubicles make a better work environment for programmers than offices.&amp;#160; There is a lot more to this book than just an attack on cube farms, though.&amp;#160; The book dates from another era of the technology industry.&amp;#160; It was first written in1987 with an update in 1999.&amp;#160; Most of the content ages very well though.&amp;#160; It carries a lot of sage advice that managers today would be smart to read.&amp;#160; Alas, the book appears to be out of print at present.&amp;#160; Check your local library.&amp;#160; That’s where I got mine from.&lt;/p&gt;  &lt;p&gt;The book begins with a discussion of people and shipping quality software.&amp;#160; Among the insights are that you can’t squeeze more than a certain amount of work out of people.&amp;#160; If one demands a lot of overtime, people will slow down, do more of their own things on your time, and otherwise use up the time that was supposed to be gained.&amp;#160; The authors make the argument that quality, if allowed to be driven by the team, will be higher than if driven from above.&amp;#160; Peoples’ innate sense of quality is probably higher than the user demands.&amp;#160; Based on these statements, the authors refute the notion that the only way to get work done is to set tight deadlines.&amp;#160; The idea that work grows to fill an allocated space is—they say—false.&amp;#160; I’m not sure I fully agree.&amp;#160; Work does expand to fit the allocated space.&amp;#160; The solution is not, however, to set insane deadlines to squeeze out the work.&amp;#160; Instead, the solution is to set a rational deadline and keep track of progress via frequent checkpoints (ala scrum).&lt;/p&gt;  &lt;p&gt;My favorite section is that one which talks about people.&amp;#160; The authors assert that great people are born, not grown.&amp;#160; That’s not quite true.&amp;#160; They are born with innate talents and then grown to greatness.&amp;#160; The key point though is that those born without the right abilities will never be great.&amp;#160; You can’t teach everyone to be a great programmer.&amp;#160; Sorry.&amp;#160; Because of this, and the difficulty in getting rid of someone once hired, it is important to set a high hiring bar.&amp;#160; It is better to hire and then retain the right people than to hire the average person and try to grow them into above average performers.&amp;#160; It’s also important to retain stars.&amp;#160; Invest in them.&amp;#160; &lt;/p&gt;  &lt;p&gt;Beyond individuals, teams are important.&amp;#160; The authors spend some time talking about what makes great teams work.&amp;#160; Unfortunately, they don’t give a formula for creating one.&amp;#160; No one seems to know how to do this.&amp;#160; Maybe some day we’ll figure it out, but for now the consensus seems to be that they just happen.&amp;#160; Managers may not be able to create a well jelled team, but they can certainly prevent one from happening.&amp;#160; The authors calls this “teamicide” and give several examples of behavior that causes it:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Defensive management – Managers must trust their teams.&amp;#160; Attempts to succeed despite their failure only poisons the environment.&lt;/li&gt;    &lt;li&gt;Bureaucracy – Paperwork and policies that are arbitrary and disrupt the work flow.&amp;#160; If management is more interested in paperwork than results, the team notices.&lt;/li&gt;    &lt;li&gt;Physical separation – People interact better when they sit near each other.&lt;/li&gt;    &lt;li&gt;Fragmentation of time – Give people only one top priority at a time.&amp;#160; &lt;/li&gt;    &lt;li&gt;Quality-reduced Product – Management cannot demand a shoddy product or the team will stop performing.&lt;/li&gt;    &lt;li&gt;Phony deadlines – Deadlines should be real (and realistic).&amp;#160; Fake ones to force out more work just cause people to check out.&lt;/li&gt;    &lt;li&gt;Clique control – Let people group up.&amp;#160; It’s called a team.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There’s a lot more in this book.&amp;#160; If you can find a copy, get it and read it.&amp;#160; There’s a lot here for every technology manager.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523408" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /><category term="Books" scheme="http://blogs.msdn.com/steverowe/archive/tags/Books/default.aspx" /></entry><entry><title>Spotting the "Uncoachables"</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/03/25/spotting-the-uncoachables.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/03/25/spotting-the-uncoachables.aspx</id><published>2009-03-25T22:35:00Z</published><updated>2009-03-25T22:35:00Z</updated><content type="html">&lt;P&gt;Interesting &lt;A href="http://blogs.harvardbusiness.org/goldsmith/2009/03/how_to_spot_the_uncoachables.html" mce_href="http://blogs.harvardbusiness.org/goldsmith/2009/03/how_to_spot_the_uncoachables.html"&gt;article&lt;/A&gt; from Harvard talking about how to spot people who can't be coached.&amp;nbsp; The author gives 4 symptoms to look for, but they basically boil down to one.&amp;nbsp; Does the person want to change?&amp;nbsp; If someone isn't interested in changing because they don't sense a problem, are burned out, or think everyone else is to blame, no amount of coaching will get them on the right track.&amp;nbsp; The author advocates walking away from these people.&amp;nbsp; That may be an easy option for a consultant, but it usually isn't for a manger.&amp;nbsp; Sometimes you can fire the person or encourage them to move on, but this isn't always possible.&amp;nbsp; Sometimes it isn't even desireable.&amp;nbsp; The uncoachable person may have high value in another aspect of their personality.&amp;nbsp; What then?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The only viable approach when someone doesn't perceive a reason to change is to modify their attitude.&amp;nbsp; You have a reason you want them to change.&amp;nbsp; Get them to recognize it.&amp;nbsp; Note, however, that their worldview is not necessarily yours.&amp;nbsp; What motivates them may not be what motivates you.&amp;nbsp; If someone is overly sure of themselves, telling them their actions offend other people probably won't help.&amp;nbsp; They won't care.&amp;nbsp; However, telling them their actions put in jeopardy a promotion or their project or their ability to make an impact may.&amp;nbsp; Determine what their motivating factors are and couch your discussions in terms of those values.&amp;nbsp; Then, once you have convinced them there is a reason to change, work on the change.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9508199" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /></entry><entry><title>Review:  The Effective Executive</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/steverowe/archive/2009/03/24/review-the-effective-executive.aspx" /><id>http://blogs.msdn.com/steverowe/archive/2009/03/24/review-the-effective-executive.aspx</id><published>2009-03-24T19:57:00Z</published><updated>2009-03-24T19:57:00Z</updated><content type="html">&lt;p&gt;I read &lt;a href="http://www.amazon.com/Effective-Executive-Definitive-Harperbusiness-Essentials/dp/0060833459"&gt;The Effective Executive&lt;/a&gt; by Peter Drucker because it was highly recommend on the &lt;a href="http://www.manager-tools.com/our-favorite-books"&gt;Manager Tools&lt;/a&gt; podcast.&amp;#160; Despite what its name may imply, it isn’t written to company executives.&amp;#160; Instead, Drucker defines an executive as anyone with decision making ability.&amp;#160; This certainly includes all managers within a modern technology company and most of the frontline staff as well.&amp;#160; Drucker outlines 4 major areas of concentration for becoming more effective.&lt;/p&gt;  &lt;p&gt;The first is your &lt;strong&gt;time&lt;/strong&gt;.&amp;#160; Here the advice boils down to measuring where you spend it.&amp;#160; Time is the one thing everyone has in the same quantity and you can’t get any more of it.&amp;#160; If you want to make effective use of your time, know where you spend it.&lt;/p&gt;  &lt;p&gt;Once you know where you spend your time, how do you decide where to apply it?&amp;#160; The next piece of advice involves making a &lt;strong&gt;contribution&lt;/strong&gt;.&amp;#160; Determine where you can most make a unique contribution to the organization and spend your time there.&amp;#160; Ask yourself, “What can I contribute?”&amp;#160; For the rest, try to delegate to others.&amp;#160; Set the bar high and determine what active contribution the position should be making.&lt;/p&gt;  &lt;p&gt;Next up is building on your &lt;strong&gt;strengths&lt;/strong&gt;.&amp;#160; This is very similar to &lt;a href="http://blogs.msdn.com/steverowe/archive/2009/02/23/now-discover-your-strengths.aspx"&gt;Now, Discover Your Strengths&lt;/a&gt;.&amp;#160; Drucker advocates hiring and rewarding people for their strengths, not their weaknesses.&amp;#160; I think he dismisses weaknesses a bit too cavalierly.&amp;#160; A significant weakness can overwhelm someone’s strengths.&amp;#160; It can make others view them negatively which can create a negative feedback loop.&amp;#160; However, his advice to focus hiring on strengths instead of a lack of weakness is on point.&amp;#160; People will accomplish a lot more in their area of strength than in a place where they are merely not weak.&lt;/p&gt;  &lt;p&gt;Finally, Drucker talks about making &lt;strong&gt;effective decisions&lt;/strong&gt;.&amp;#160; Toward this end he recommends concentrating on only one thing.&amp;#160; Have one focused initiative at a time.&amp;#160; Clearly define what the “boundary conditions” are.&amp;#160; By this he means understanding the specifications the decision must satisfy.&amp;#160; Build action into the decision.&amp;#160; A decision without action has no impact.&amp;#160; Measure the effectiveness of the decision.&amp;#160; This ensures not only that the decision was right, but that it stays right.&amp;#160; He also dedicates a whole chapter to making decisions not between right and wrong but between two courses of action neither of which is clearly right or wrong.&amp;#160; His advice here is essentially, argue both sides.&amp;#160; Don’t make the mistake of jumping on an early decision.&amp;#160; Instead, thoroughly vet each of the alternatives.&lt;/p&gt;  &lt;p&gt;Overall I found this a good book.&amp;#160; Perhaps not as good as the hype, but useful.&amp;#160; I found myself doubting the reviews during the first part of the book.&amp;#160; The advice seemed solid, but obvious.&amp;#160; The second part which discussed decision making, however, was much more useful.&amp;#160; I truly enjoy the last three chapters.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9503428" width="1" height="1"&gt;</content><author><name>SteveRowe</name><uri>http://blogs.msdn.com/members/SteveRowe.aspx</uri></author><category term="Management" scheme="http://blogs.msdn.com/steverowe/archive/tags/Management/default.aspx" /><category term="Books" scheme="http://blogs.msdn.com/steverowe/archive/tags/Books/default.aspx" /></entry></feed>