<?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: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-6879713809807167982</id><updated>2012-02-16T14:03:59.489-08:00</updated><title type='text'>Diary of a Software Manager</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-2576555733793258582</id><published>2011-11-22T07:21:00.000-08:00</published><updated>2011-11-22T07:21:20.495-08:00</updated><title type='text'>Stickman System</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;If the terms 'Use Case diagram' and 'XKCD' both mean nothing to you, then neither will this (but I recommend finding out about one of them).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-blDPgfk8T7k/Tsu70puX6cI/AAAAAAAAADg/OTAxSbs3onA/s1600/BasicStickman.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-blDPgfk8T7k/Tsu70puX6cI/AAAAAAAAADg/OTAxSbs3onA/s1600/BasicStickman.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-2576555733793258582?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/2576555733793258582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/11/stickman-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/2576555733793258582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/2576555733793258582'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/11/stickman-system.html' title='Stickman System'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-blDPgfk8T7k/Tsu70puX6cI/AAAAAAAAADg/OTAxSbs3onA/s72-c/BasicStickman.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-4848802329462659519</id><published>2011-09-12T14:04:00.000-07:00</published><updated>2011-09-12T14:04:37.375-07:00</updated><title type='text'>Social Media: It's Time to Open Up</title><content type='html'>I've decided this geeky post is almost&amp;nbsp;palatable&amp;nbsp;by the normal people over at my other blog so I've posted it there:&amp;nbsp;&lt;a href="http://fenchurchepiphany.blogspot.com/2011/09/social-media-its-time-to-open-up.html"&gt;http://fenchurchepiphany.blogspot.com/2011/09/social-media-its-time-to-open-up.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-4848802329462659519?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/4848802329462659519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/09/social-media-its-time-to-open-up.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/4848802329462659519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/4848802329462659519'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/09/social-media-its-time-to-open-up.html' title='Social Media: It&apos;s Time to Open Up'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-1889240371135521317</id><published>2011-06-27T12:58:00.000-07:00</published><updated>2011-06-27T12:58:24.928-07:00</updated><title type='text'>Android in Pictures</title><content type='html'>On approaching a new framework or technology (or indeed system) it is the &lt;i&gt;poor &lt;/i&gt;engineer who eschews the documentation; it is the &lt;i&gt;good &lt;/i&gt;engineer who studies it diligently; and it is the manager who ... just looks at the pictures. &amp;nbsp;For as&amp;nbsp;the old adage goes:&amp;nbsp;&lt;i&gt;a diagrammatic abstraction using graphical notation is worth a thousand words&lt;/i&gt;. &amp;nbsp;Or something like that. &amp;nbsp;And cliche though it may be, true it nonetheless is.&lt;br /&gt;&lt;br /&gt;Being the simpleton that I am (is there a design pattern for that? - see I'm getting confused again), I've always been a strong advocate of pretty pictures. &amp;nbsp;And here I don't necessarily mean the use of formal notation for detailed design, but something at a much higher level. &amp;nbsp;When I first get involved in a project, it may take me a while to get my little brain around all the big concepts involved, and nothing cements the process better than getting it all down in a good doodle. &amp;nbsp;Done well, this doodle can become something else. &amp;nbsp;It can become the first port-of-call for anyone joining the team - a&amp;nbsp;&lt;i&gt;way-in&lt;/i&gt;&amp;nbsp;diagram. It serves to set the scene - capturing, as it does, some grand context or high level view of a system (or a fundamental component therefore).&lt;br /&gt;&lt;br /&gt;There is no magic formula for arriving at such a masterpiece. &amp;nbsp;But when you have one you'll know. &amp;nbsp;It will chime with everyone on the team, and thereafter copies of it will be seen strewn about on people's desks for months to come, with notes and annotations scrawled upon it. &amp;nbsp;It will often be the focal point of discussion or the starting point of meetings. &amp;nbsp;It will become familiar to everyone. &amp;nbsp;People will grow comfortable with it and be put at ease when it fades in as the opener to an otherwise&amp;nbsp;daunting&amp;nbsp;PowerPoint presentation.&lt;br /&gt;&lt;br /&gt;Such a diagram need not conform to any formal notation, like UML. &amp;nbsp;Dare I say, it&amp;nbsp;&lt;i&gt;should&lt;/i&gt;&amp;nbsp;not conform. &amp;nbsp;It must be a renegade. &amp;nbsp;To get your message across at this level it needs to employ a lexicon that is accessible to everyone, from hardcore coder to programme manager. &amp;nbsp;And the diagram needs to be as visually stimulating as possible without detracting from the content. &amp;nbsp;As such, there is no notation that supports its genesis, any more than there is a notation for creating a still-life or a seascape. &amp;nbsp;Every situation will warrant a different style and there is no substitute for being creative, dare I say artistic. &amp;nbsp;Yes, even the paintbrush is a valuable tool in the software manager's armoury.&lt;br /&gt;&lt;br /&gt;But enough of the pretext. &amp;nbsp;I have recently be exploring the Android architecture to evaluate its applicability to larger industry. &amp;nbsp;Being the 'good engineer' that I am, I actually &lt;i&gt;read &lt;/i&gt;the documentation, which, on the whole is very good. &amp;nbsp;But, as is often the case, I felt that the &lt;i&gt;way-in&lt;/i&gt; diagram was missing. &amp;nbsp;And is indeed not to be found anywhere on the web. &amp;nbsp;There are an awful lot of references to the Android OS architecture diagram, as shown &lt;a href="http://en.wikipedia.org/wiki/File:Diagram_android.png"&gt;here&lt;/a&gt;. &amp;nbsp;This is, no question, useful, but what would have been even moreso was a diagram depicting the&amp;nbsp;architecture&amp;nbsp;of an &lt;i&gt;application&lt;/i&gt;. &amp;nbsp;So, in its absence, I thought I'd cobble one together. &amp;nbsp;It's not much and there is probably much room for improvement, but it's a start.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-GJ_aYkMBpVQ/TgjNUlZoe-I/AAAAAAAAACM/PfOOsk6_DCg/s1600/AndroidArch.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="375" src="http://3.bp.blogspot.com/-GJ_aYkMBpVQ/TgjNUlZoe-I/AAAAAAAAACM/PfOOsk6_DCg/s400/AndroidArch.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Android Application Architecture&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Note, that most of the coupling has been&amp;nbsp;omitted&amp;nbsp;to save it becoming a tangled mess. &amp;nbsp;I won't put many words to it. &amp;nbsp;Read the&amp;nbsp;&lt;a href="http://developer.android.com/guide/topics/fundamentals.html"&gt;Android Application Fundamentals documentation&lt;/a&gt;&amp;nbsp;and it should all make sense. &lt;br /&gt;&lt;br /&gt;Okay, if you really haven't got time, here's a &lt;i&gt;very &lt;/i&gt;rushed precis. &amp;nbsp;An Activity is effectively the logic running a single screen in an Android application. &amp;nbsp;The featured application has two Activities and therefore two screens. &amp;nbsp;Screens are defined in XML. &amp;nbsp;The XML schema for defining screen layouts contain elements for all the widgets you'd expect to find in a UI toolkit. &amp;nbsp;Layouts for Dialogs (which are shown in front of screens) can also be defined in XML. Activities can create and show Dialogs dynamically. Thematic elements (such as fonts and colours)&amp;nbsp;can be&amp;nbsp;separated&amp;nbsp;from layout by defining them in separate XML files, as&amp;nbsp;hierarchical&amp;nbsp;styles analogous to CSS.&lt;br /&gt;&lt;br /&gt;Capability that needs to run when no screen is being displayed is achieved using a Service. &amp;nbsp;An Activity can register for updates from a Service via a Broadcast&amp;nbsp;Receiver.&lt;br /&gt;&lt;br /&gt;Transitory&amp;nbsp;packets of data can be passed between Activies and Services as Intents (not shown). For data that needs to be shared throughout the lifetime of an application, one solution is via a singleton class which exposes public accessors to static data. &amp;nbsp;Similarly, common logic can be encapsulated in singleton classes and accessed statically. &lt;br /&gt;&lt;br /&gt;Persistence is provided by ContentProviders which wrap up access to either the file system, an SQLite database or the web.&lt;br /&gt;&lt;br /&gt;So there we go, my trivial contribution to the Android movement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-1889240371135521317?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/1889240371135521317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/android-in-pictures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/1889240371135521317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/1889240371135521317'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/android-in-pictures.html' title='Android in Pictures'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-GJ_aYkMBpVQ/TgjNUlZoe-I/AAAAAAAAACM/PfOOsk6_DCg/s72-c/AndroidArch.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-6847123536496817352</id><published>2011-06-21T09:07:00.000-07:00</published><updated>2011-06-21T09:10:28.516-07:00</updated><title type='text'>Mobilising your Army</title><content type='html'>&lt;div class="TextBookBody"&gt;A significant task during the mobilisation phase of a programme involves the mobilising of a team - which is not nearly as fun as it sounds. &amp;nbsp;Often, within larger organisations, many of the names destined for a programme will already be in the frame, maybe those who worked on a bid/assessment phase of the programme, or resources from other parts of the business.&amp;nbsp;(This may be a blessing or a curse - depending on who those names are). &amp;nbsp;However, if you are charged with mobilising the team from scratch then you need to start considering this real quick. &amp;nbsp;It won't matter how good your pivot tables are for your end-of-month progress report, if you haven't got any people then there ain't gonna be no progress to report. (Yes, yes, double negatives, I know). So, even metrics spreadsheets must take a back seat if you haven't got a team.&amp;nbsp;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;Building the right team takes time. &amp;nbsp;If you are planning to grow, say, a twenty-strong development team then you'll need to start thinking about this a good three months before full-tilt development is due to begin.&amp;nbsp; If it’s due to being tomorrow, then your first job is to announce to senior management a three month slip.&amp;nbsp; Good luck with that.&lt;br /&gt;&lt;br /&gt;But remember, in your hast a very very important lesson: it is better to get the right person, four weeks hence, than the wrong one tomorrow, even on a programme of only fifty-two weeks. &amp;nbsp;Hell, even on a programme of only twelve weeks!&amp;nbsp;&amp;nbsp;I would comfortably state that productivity variance between a good and a bad engineer can be, say fourfold - easily. &amp;nbsp;And this might be the case in an average organisation.&amp;nbsp; But, in fact, the extremes are so much worse they can't even be expressed as a ratio. &amp;nbsp;I can quote multiple cases of engineers who exhibited &lt;i&gt;negative &lt;/i&gt;productivity.&amp;nbsp; That is, they absorbed more time in management and/or undoing their work, than they actually produced.&amp;nbsp; So, do not take recruitment lightly, and do not fall into the trap of some senior management in counting one body as one body. &amp;nbsp;Not all bodies are equal - as well we know from reading Cosmo.&lt;br /&gt;&lt;br /&gt;I will not talk about recruitment or interview techniques - that is a black art all of its own. &amp;nbsp;And I certainly won't pass comment on what makes a good software engineer. I know what's good for me! But I will single-out one class of engineer for special mention, because, well, they are special, and so often are overlooked as such. &amp;nbsp;Test engineers. &amp;nbsp;When it comes to building a solid well-rounded team, the lesson here is obvious (yet seemingly easy to ignore): &amp;nbsp;Test engineers &lt;i&gt;must &lt;/i&gt;be test engineers.&lt;br /&gt;&lt;br /&gt;Possibly one of the closest things to an accepted axiom in the software world is that testing is essential. Moreover I would say that the considered implementation of robust testing principles is fundamental to the success of a programme (and so will be discussed later). &amp;nbsp;As such, the testing function is just as important as the development function -&amp;nbsp;if not moreso. &amp;nbsp;But, here's the rub, very few engineers actually like (or want) to do it. &amp;nbsp;For this reason, often weaker or junior engineers get put in testing roles. &amp;nbsp;This is a mistake. &amp;nbsp;Testing is a specialism. &amp;nbsp;So, particularly for your test team lead, you need someone who &lt;i&gt;understands &lt;/i&gt;testing, who 'gets' it, and - vitally - who &lt;i&gt;likes &lt;/i&gt;doing it. &amp;nbsp;This is the only way you will get value out of your test function. Passionate testers are a rare find. If your firm doesn't have anyone that fits this bill, recruit - hire an expensive contractor if you have to. &amp;nbsp;It &lt;i&gt;will &lt;/i&gt;pay. I promise.&lt;br /&gt;&lt;br /&gt;Which brings me to my next topic. &amp;nbsp;To contract ... or not to contract? That is the old chestnut of a debate&amp;nbsp;I shall re-ignite shortly. Just as soon as I've dug my bunker...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-6847123536496817352?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/6847123536496817352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/moblisation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6847123536496817352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6847123536496817352'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/moblisation.html' title='Mobilising your Army'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-6100899140634044088</id><published>2011-06-15T08:55:00.000-07:00</published><updated>2011-06-15T08:55:07.158-07:00</updated><title type='text'>Tis Seasonal to be Jolly ... Unproductive</title><content type='html'>&lt;div class="TextBookBody"&gt;As I stated in an earlier post, my original intention was to document the tasks of a hypothetical software project against a 12-month timeline Jan through to Dec. If I were to do this of course then before getting into the day-by-day basics, immediately there would a lesson to learn.&amp;nbsp;And that is, never ever plan to complete a programme at Christmas.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Planning for the most critical stage of your project to coincide with your resource pool being decimated by festive absenteeism is planning to fail from day one.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;At least, this is the case for &lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;UK&lt;/st1:place&gt;&lt;/st1:country-region&gt; and many other countries.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Elsewhere, it may be summer that will result in your most emaciated team.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;It may be both that are troublesome. T&lt;/span&gt;he message here is beware seasonal variations and resource profiles lumpier than the turkey gravy. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;If there are external reasons that a deadline is on say December 24&lt;sup&gt;th&lt;/sup&gt; then you have two options.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Preferably convince your programme management and stakeholders to shift it out by a month or two. &amp;nbsp;But, if the date is truly an immoveable object, then plan to finish a month sooner and resource accordingly, and aggressively try to stick to it.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;This last part is important. &lt;/span&gt;Don’t let anyone in your team, especially yourself, develop the mindset that this extra month is ‘slack’.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; There is no slack. &amp;nbsp;&lt;/span&gt;Try to cast the December date from your mind, because your team will be fogged with festival glee, largely absent in mind, if not entirely in body.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-6100899140634044088?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/6100899140634044088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/tis-seasonal-to-be-jolly-unproductive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6100899140634044088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6100899140634044088'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/tis-seasonal-to-be-jolly-unproductive.html' title='Tis Seasonal to be Jolly ... Unproductive'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-4417716591081967229</id><published>2011-06-06T07:25:00.000-07:00</published><updated>2011-06-06T07:25:38.486-07:00</updated><title type='text'>What is a Software Manager?</title><content type='html'>Most large software programmes will employ a software manager and a software architect.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;It is wrong to assume that these roles are anything but wholly interdependent.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;In fact it is foolhardy to believe that you can be a manager without being an architect or an architect without being a manager.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;How can a manager define work packages, estimate development costs or plan a development schedule without understanding how the pieces fit together?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;How can an architect design a solution without understanding the constraints of time, budget and human resources?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;In fact, in my experience, the success of software development programme relies on a strong relationship between manager and architect, to the extent that they are largely interchangeable.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;You must never rely on one person with all the answers.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;When your manager’s on leave who’s going to keep the team in check?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;When the architect is offsite who’s going to answer design queries? &amp;nbsp;Maybe against the perceived wisdom of organisation&amp;nbsp;hierarchies, I have found that running a programme with two people at the top&amp;nbsp;of roughly equal seniority, and largely overlapping responsibilities, produces the most effective results. &amp;nbsp;Personally, I need someone to bounce ideas off and to validate (or rubbish) my decisions. &amp;nbsp;Some people (like all the contestants on The Apprentice), will see this as weak leadership. &amp;nbsp;But seeing this as a weakness is a weakness in itself, because being responsive to other people's views is a fundamental strength of a good leader.&lt;br /&gt;&lt;br /&gt;On the last three major programmes I have worked on, there has been a natural manager/architect pairing, and it worked extremely well in all cases. &amp;nbsp;In this regard it's worth considering the parallels that can be drawn with the practice of &lt;a href="http://en.wikipedia.org/wiki/Pair_programming"&gt;Pair Programming&lt;/a&gt;&amp;nbsp;and the flat management structure suggested by the agile development method, &lt;a href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;Extreme Programming&lt;/a&gt;, and the benefits thereof. &amp;nbsp;Of course, you don't have to set up your structure like this to be successful, and indeed the size of your team may only warrant one person to perform both roles. &amp;nbsp;But for anyone who argues that pair leadership can never work then just consider Page/Brin or Gates/Allen. &amp;nbsp;They did okay.&lt;br /&gt;&lt;div class="TextBookBody"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;Turning more specifically to the role of the Software Manager - this will change over the lifecycle of a programme as depicted in the graph below (very roughly).&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fpKEOte1WlA/Tezc_rBvbSI/AAAAAAAAACI/IUc_Kv99zaM/s1600/graph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="257" src="http://4.bp.blogspot.com/-fpKEOte1WlA/Tezc_rBvbSI/AAAAAAAAACI/IUc_Kv99zaM/s400/graph.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt; mso-ansi-language: EN-GB; mso-bidi-language: AR-SA; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-GB;"&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;There are a few things to note.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Firstly, yes, you will be overloaded at the start of the programme.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;There is virtually nothing you can do about it - there are just so many things to get started that you will need a hand in. &amp;nbsp;But if you get those first couple of months right then you will afford yourself time to put your feet up at the end.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;(Of course, this is when senior management will start calling on your time for other programmes, so keep your head down).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;The second point to note is that if you are the kind of software manager who knows his/her stuff then you will spend much of your effort – say up to 80%&amp;nbsp;–&amp;nbsp;in the early phase involved in the architectural design.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;During this phase the team size will be small&amp;nbsp;–&amp;nbsp;architects and team leads.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Coordination of them should be minimal but you must get involved in as many design discussions as possible.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Remember, if you are going to be held accountable for the development of this system, you sure as hell should want to be involved in major architectural aspects of its design.&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;Towards the end of the programme you will mostly be just keeping developers in check, tracking work packages and allocating bugs to be fixed.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;But don’t believe for a minute that you won’t be involved in architectural decisions right up to the end.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;During system integration and testing things will crop up that no one ever thought about that you will have to make a decision on in quick time.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;So you must have the system in your head.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;The intention for this blog is to be more about the What than the How.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;About what to do when and not how to do it.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;But as it is about software managers it will encroach more into the how for the managerial aspects than the architectural.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;That is, it may go into some detail regarding how to perform a work-package estimation but not how to do UML modelling. &amp;nbsp;(Lots has been written on the latter already).&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;What to do in week one will follow in future posts, but the point to take away now is: just because you have the word 'manager' in your title do not think you can distance yourself from the architecture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-4417716591081967229?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/4417716591081967229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/what-is-software-manager.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/4417716591081967229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/4417716591081967229'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/06/what-is-software-manager.html' title='What is a Software Manager?'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-fpKEOte1WlA/Tezc_rBvbSI/AAAAAAAAACI/IUc_Kv99zaM/s72-c/graph.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-6157859816994971864</id><published>2011-05-31T03:24:00.000-07:00</published><updated>2011-05-31T03:24:44.459-07:00</updated><title type='text'>A Case of Mistaken Agility</title><content type='html'>There is a word that seems to be cropping up with ever greater frequency in my particular corner of the software world. &amp;nbsp;That word is: Agile. &amp;nbsp;This is odd, because my particular corner consists&amp;nbsp;predominantly of lumbering mission-critical systems. &amp;nbsp;A place where agility rarely treads.&amp;nbsp; Yet, from upper-management, recruitment consultants and job specs alike, I'm hearing/seeing the word the 'Agile' a lot. &amp;nbsp;I can't explain the recent surge of popularity - maybe a hard-hitting marketing salvo from the Agile Marketing Board - but I can't help being concerned that a lot of the interest is built upon a misunderstanding. &amp;nbsp;Specifically, one that confuses the two quite different sentiments of 'being more agile' and 'using an Agile development methodology'. &amp;nbsp;They are not the same thing. &amp;nbsp;I fear the confusion arises because this is the first significant software movement with an overtly positive name. &amp;nbsp;You don't, for instance, hear many project managers saying, 'oh, I think we need to be more Iterative' - or Extreme, or Waterfall(!). &amp;nbsp;But, Agile, hey - who wouldn't want to be more agile? &amp;nbsp;Well, in fact, despite its positive (and, admittedly, apt) name, it is only suitable for a subset of projects, just like any other methodology. &amp;nbsp;Agile methods promote an environment that copes well with change, and that sounds great, but in doing so it promotes a culture that &lt;i&gt;invites &lt;/i&gt;change. &amp;nbsp;And this is the crux, because in general, change is the death of many a project and it should be a&amp;nbsp;eschewed in all but those cases where it is entirely unavoidable.&lt;br /&gt;&lt;br /&gt;To understand where Agile fits we need to look at the bigger picture. &amp;nbsp;You can think of all development methodologies as on a continuum from predictive to adaptive. &amp;nbsp;The further you move from the predictive end of the continuum, the less formal planning and process is employed. &amp;nbsp;Agile methodologies fall at the adaptive end, so they can say less about what will happen in the future, but they are better equipped to deal with change. &amp;nbsp;Take a moment to read the Agile&amp;nbsp;manifesto:&lt;br /&gt;&lt;blockquote&gt;We are uncovering better ways of developing&amp;nbsp;software by doing it and helping others do it.&amp;nbsp;Through this work we have come to value:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Individuals and interactions&lt;/b&gt; over processes and tools&lt;br /&gt;&lt;b&gt;Working software&lt;/b&gt; over comprehensive documentation&lt;br /&gt;&lt;b&gt;Customer collaboration&lt;/b&gt; over contract negotiation&lt;br /&gt;&lt;b&gt;Responding to change&lt;/b&gt; over following a plan&lt;/blockquote&gt;That is, while there is value in the items on&amp;nbsp;the right, we value the items on the left more.&lt;/blockquote&gt;Glossing over the tragically ill-formed opening sentence (and trust me I'm having to hold myself back here), let's consider each of these statements in turn:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Individuals and interactions&lt;/b&gt;&amp;nbsp;over processes and tools. &amp;nbsp;I can quote many occasions that process (and tools to enforce that process) are merely a substitute for good engineers, so in essence I agree with this sentiment. &amp;nbsp;But in practice it may be&amp;nbsp;foolhardy to assume that every member of your team is such a high-calibre and well-rounded engineer that they will only ever do the right thing. &amp;nbsp;Maybe the Googles of this world can afford to assemble such a team, but generally it is unlikely. &amp;nbsp;Consider carefully how little process you can afford to do away with. &amp;nbsp;Are you really not going to employ a change-management or code review process/tool just because you trust your guys?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Working software&lt;/b&gt;&amp;nbsp;over comprehensive documentation. &amp;nbsp;Obviously, the former is more valuable than the latter. &amp;nbsp;Stating it in a manifesto is at best bland, but at worst it engenders a culture that considers documenting software as not important. &amp;nbsp;It is important. &amp;nbsp;Ask someone who has been asked to upgrade a 15-year-old system consisting of one million lines of code. &amp;nbsp;But the real point here is that no compromise is actually necessary. &amp;nbsp;With model-driven development the software and the documentation can be one and the same thing. &amp;nbsp;Why should this not be a tenet in the manifesto instead?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Customer collaboration&lt;/b&gt;&amp;nbsp;over contract negotiation. &amp;nbsp;Customer collaboration throughout the development life-cycle is essential, but if your project is being funded by an external customer then you &lt;i&gt;must &lt;/i&gt;have a contract specifying at least the key user requirements. &amp;nbsp;Sure, the holy-grail is to sign a contract on an hourly-rate basis, where customer collaboration (and indeed procrastination) is just money in the bank, but that's why contracts are rarely drawn up this way and only between the friendliest of companies. &amp;nbsp;I've seen companies lose millions over woolly contracts. &amp;nbsp;In the real world it would be suicide to overlook the value of a solid contract with the promise of some jolly fun customer collaboration down the road.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Responding to change&lt;/b&gt;&amp;nbsp;over following a plan. &amp;nbsp;Having the ability to respond to change is unquestionably beneficial, but suggesting that change is valued more highly than a plan is a little suspect. &amp;nbsp;There is no world in which regular change will result in a more efficient outcome than following a plan (and having no change). &amp;nbsp;Change is absolutely inevitable, I accept that. &amp;nbsp;But it should be minimised where possible rather than welcomed. &amp;nbsp;The key, as with everything, is balance - knowing what elements are reasonably stable with high confidence and so knowing at what level of detail to plan.&lt;br /&gt;&lt;br /&gt;Despite my misgivings in the wording of the manifesto, I am not against Agile development methods in general. &amp;nbsp;But it is vitally important to be aware that such methods are only ever going suit a subset of projects. &amp;nbsp;Agile methods may work well with small co-located teams (&amp;lt;10) of high-skilled senior members, but the more the structure varies from this, the less chance an Agile method is going to have of achieving greater agility, with a lower-case 'a'. &amp;nbsp;In addition, I would argue that Agile methods are most suited to the development of products for a mass market rather than for projects with a small number of defined stakeholders.&lt;br /&gt;&lt;br /&gt;As with all disciplines which offer extreme views, the right answer for any given scenario is almost always somewhere in the middle. &amp;nbsp;With this is mind I intend to propose what I have named the Balanced Methodology, and I shall detail this over coming posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-6157859816994971864?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/6157859816994971864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/05/case-of-mistaken-agility.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6157859816994971864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/6157859816994971864'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/05/case-of-mistaken-agility.html' title='A Case of Mistaken Agility'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6879713809807167982.post-5416189397830859949</id><published>2011-05-25T07:18:00.000-07:00</published><updated>2011-05-25T14:11:33.193-07:00</updated><title type='text'>The Diary of a Software Manager</title><content type='html'>&lt;div class="TextBookSection"&gt;Some time ago I had the idea that I would write a book about software management, to persist into a more concrete form the gems of wisdom gleaned from my experiences over the last decade in the software world. As much for me as anyone else - lest I ever forget. &amp;nbsp;The idea was for the book to be structured like a diary of a theoretical 12-month software project.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;It would state, month-by-month, each activity that must take place and each artifact that must be created in order for the programme to run to completion successfully: on time, on budget and with minimum headaches.&lt;span style="mso-spacerun: yes;"&gt; &amp;nbsp;It would act as a step-by-step guide and checklist for any manager embarking on a software project. &amp;nbsp;And as t&lt;/span&gt;he principles covered would be general, so the stages it refers to would be scaleable.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If a programme was to run for 24-months then you could simply double the length of the each of the phases detailed in the book.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;This is still the plan, but I figured that along the way I would also post the content here in a more haphazard format, should anyone be interested enough to read and comment on it. &amp;nbsp;Hopefully you will find something of use.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="TextBookSection"&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;But before all of that, why should you care what I have to say about the art of software development?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Well, by way of convincing you, let me first make you aware that I am an actual &lt;i style="mso-bidi-font-style: normal;"&gt;real&lt;/i&gt; fully-instantiated software manager.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I am not an abstract-thinking head-in-the-clouds pure-virtual academic.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;After my computer science degree I went straight into industry and have been there ever since.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I started out as a developer, soon became a team lead, then architect and manager.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I have led the development of numerous large-scale systems, between 18 and 30 months in duration, with team sizes up to 30 people.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;And so far, they have all been 'successful'.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;And by successful I mean they have been completed in-line with the schedule and budget that &lt;i&gt;I&lt;/i&gt; devised on &lt;i&gt;my&lt;/i&gt; day one – not the schedule and budget imagined by project management during the bid phase, which in some cases can be quite a creative work of art.&lt;/div&gt;&lt;div class="TextBookBody"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="TextBookBody"&gt;Let me make clear that I attribute no success to any exceptional ability on my part - and those who know me can vouch for that - but simply to two factors.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Firstly, being lucky enough to be told how to do things properly early in my career; and secondly, being blessed with a basic dose of common sense.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I can do nothing to bestow upon you the latter, but I can at least help you out with the doing things properly bit. &amp;nbsp;I hope you enjoy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6879713809807167982-5416189397830859949?l=diaryofasoftwaremanager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diaryofasoftwaremanager.blogspot.com/feeds/5416189397830859949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/05/diary-of-software-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/5416189397830859949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6879713809807167982/posts/default/5416189397830859949'/><link rel='alternate' type='text/html' href='http://diaryofasoftwaremanager.blogspot.com/2011/05/diary-of-software-manager.html' title='The Diary of a Software Manager'/><author><name>Paul J. Newell</name><uri>http://www.blogger.com/profile/00764555815852365420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://3.bp.blogspot.com/_s5gMpu9bxxc/S2NupHqVLJI/AAAAAAAAAAk/WMJVwX2nDBw/S220/Me2.jpg'/></author><thr:total>0</thr:total></entry></feed>
