<?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-9636166</id><updated>2011-07-29T04:41:39.550+10:00</updated><title type='text'>with pants comes dignity</title><subtitle type='html'>this is the ramblings, complaints, thoughts and observations of a confused and opinionated individual</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default?start-index=101&amp;max-results=100'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>103</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9636166.post-2710228765213667975</id><published>2007-10-09T00:02:00.000+10:00</published><updated>2007-10-09T00:11:11.260+10:00</updated><title type='text'>How Agile and PRINCE2 Can Play Nicely Together</title><content type='html'>I'm involved in the "How PRINCE2 and Agile can play nicely together" presentation that will be given at the next &lt;a href="http://withpantscomesdignity.blogspot.com/2007/10/prince2-and-agile-round-2.html"&gt;Prince2 and Agile Meeting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm really excited by this.  Yes, excited.&lt;br /&gt;&lt;br /&gt;I know you think that I'm nuts and yes, you're probably right, but this is one of the issues that faces Agile developers in a government department. &lt;br /&gt;&lt;br /&gt;We have to appease the gods of process and control - that's where PRINCE2 comes in.  Upper management love the way that they feel like they're in control.&lt;br /&gt;&lt;br /&gt;And if we can convince them that Agile is not a dirty word and will work with a governance method like PRINCE2, then we may just be able to bring new concepts into the area.&lt;br /&gt;&lt;br /&gt;That way, everyone's happy. &lt;br /&gt;&lt;br /&gt;And that can only be a &lt;strong&gt;&lt;em&gt;good thing&lt;/em&gt;&lt;/strong&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2710228765213667975?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2710228765213667975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2710228765213667975' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2710228765213667975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2710228765213667975'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/10/how-agile-and-prince2-can-play-nicely.html' title='How Agile and PRINCE2 Can Play Nicely Together'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-583020363264042099</id><published>2007-10-08T23:57:00.000+10:00</published><updated>2007-10-09T00:02:38.790+10:00</updated><title type='text'>PRINCE2 and Agile, Round #2</title><content type='html'>The next PRINCE2 and Agile interaction meeting will be on Wednesday night at Wizard Solutions, 15 Barry Drive Turner, starting at 6pm.&lt;br /&gt;&lt;br /&gt;This month there will be some small presentations on the way that PRINCE2 and Agile methods can play nicely together and what documentation from PRINCE2 is similar/different to documents in Agile methods.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://au.groups.yahoo.com/group/agilecanberra/message/38"&gt;this&lt;/a&gt; for more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-583020363264042099?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/583020363264042099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=583020363264042099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/583020363264042099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/583020363264042099'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/10/prince2-and-agile-round-2.html' title='PRINCE2 and Agile, Round #2'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-7562781894935183190</id><published>2007-09-13T22:35:00.000+10:00</published><updated>2007-09-13T22:55:46.793+10:00</updated><title type='text'>let me at them!</title><content type='html'>I was at a workshop with the business today.  I spent over 2 hours presenting material on:&lt;br /&gt;- what we've been doing,&lt;br /&gt;- what we are about to do,&lt;br /&gt;- prioritising coarse grained requirements,&lt;br /&gt;- discussing a particular chunky concept, and&lt;br /&gt;- gathering new requirements.&lt;br /&gt;&lt;br /&gt;It was brilliant.  I really enjoy these kind of things.&lt;br /&gt;&lt;br /&gt;We started getting the business involved in a more agile development way and showing them how great things can be achieved faster and easier than they imagined (or are used to).  All it takes is motivated people and the ability/authority to communicate.&lt;br /&gt;&lt;br /&gt;As an example, a requirement that was suggested today, should be further analysed and delivered to production within about a month.&lt;br /&gt;&lt;br /&gt;I know that according to &lt;a href="http://www.poppendieck.com/index.htm"&gt;Mary Poppendieck &lt;/a&gt;that &lt;a href="http://www.isixsigma.com/dictionary/Cycle_Time-217.htm"&gt;cycle time &lt;/a&gt;should be improved, but it's the best I can do right now!&lt;br /&gt;&lt;br /&gt;The best comment I received today was from a BA on our team said that she thought I would make a great BA.  I take that as a compliment as I like to bust the preconceived ideas about what a developer is.  (Damn stereotypes)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-7562781894935183190?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/7562781894935183190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=7562781894935183190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7562781894935183190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7562781894935183190'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/09/let-me-at-them.html' title='let me at them!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-3034522546046729505</id><published>2007-09-13T22:23:00.000+10:00</published><updated>2007-09-13T22:35:05.125+10:00</updated><title type='text'>Report on the Agile and PRINCE2 Meeting</title><content type='html'>That was a fantastic start to the discussion of this topic.&lt;br /&gt;&lt;br /&gt;We had some &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; experienced PRINCE2 people, including the person who brought PRINCE2 to Australia.&lt;br /&gt;&lt;br /&gt;We also had some experienced Agile people there too.  (Agile is younger than PRINCE2, and I don't want to start a competition!)&lt;br /&gt;&lt;br /&gt;The discussion was very constructive and both parties were interested in seeing why and how they can interact.  From the initial conversation, I can't see how with a little tweaking it can't be achieved.&lt;br /&gt;&lt;br /&gt;We intend to break into small groups and look at particular issues and spend some time working out how they can be overcome.&lt;br /&gt;&lt;br /&gt;I would like to thank Rowan who did most of the organising and Lawrie for coaxing the PRINCE2 guys to come along.  Great Stuff!&lt;br /&gt;&lt;br /&gt;There is more information on the Agile Canberra Group page at &lt;a href="http://http://au.groups.yahoo.com/group/agilecanberra/"&gt;this link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-3034522546046729505?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/3034522546046729505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=3034522546046729505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3034522546046729505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3034522546046729505'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/09/report-on-agile-and-prince2-meeting.html' title='Report on the Agile and PRINCE2 Meeting'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-29342064052063579</id><published>2007-09-10T23:41:00.000+10:00</published><updated>2007-09-10T23:52:19.673+10:00</updated><title type='text'>PRINCE2 and Agile - the meeting</title><content type='html'>On Wednesday 12th September at 6pm at &lt;a href="http://www.wizardis.com.au/corporate/CompanyProfile.html"&gt;Wizard Solutions&lt;/a&gt; Building in Civic, we will be having a meeting to discuss how PRINCE2 and Agile processes may better interact.&lt;br /&gt;&lt;br /&gt;I'm excited by this kind of thing.  I really enjoy talking about software development and ways to make it better.&lt;br /&gt;&lt;br /&gt;I'm hoping to discuss how a structured project management process, &lt;a href="http://www.prince2.com/whatisp2.html"&gt;PRINCE2&lt;/a&gt;, can interact with a process that is more flexible.  We have some very experienced PRINCE2 practitioners and trainers coming along, so it should be great.&lt;br /&gt;&lt;br /&gt;I hope that all can walk away with a better understanding of what each is trying to achieve and find ways to work with each other, rather than against.&lt;br /&gt;&lt;br /&gt;If you want to come along, then please contact me by commenting on this post and I'll send you the details.&lt;br /&gt;&lt;br /&gt;I will post up any exciting outcomes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-29342064052063579?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/29342064052063579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=29342064052063579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/29342064052063579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/29342064052063579'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/09/prince2-and-agile-meeting.html' title='PRINCE2 and Agile - the meeting'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-1516749178141898657</id><published>2007-08-06T22:18:00.000+10:00</published><updated>2007-08-06T22:33:22.660+10:00</updated><title type='text'>PRINCE2 vs Scrum</title><content type='html'>I was at 1 day overview of PRINCE2 today. It was interesting.  Much better than I expected.  The trainer was very good and he showed interest in the business aspect and the delivery as much as the process.  Previously, I had viewed PRINCE2 as process focused, I.E. if I tick this box, then my project must succeed. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://withpantscomesdignity.blogspot.com/2007/04/certified-scrummaster.html"&gt;I am a certified Scrummaster&lt;/a&gt;.  I wanted to better understand PRINCE2 so that it will be easier to see how the two play together.&lt;br /&gt;&lt;br /&gt;Essentially, both frameworks/processes want the same thing:  Successful delivery of projects to the customer/business.  They have a few differences in their approach, but I think that this can be worked out.&lt;br /&gt;&lt;br /&gt;I'm going to keep in contact with the trainer, as the Agile SIG that I'm involved in is also keen to get this sorted.  He was also interested in this issue.&lt;br /&gt;&lt;br /&gt;Oh, and I'm still an agile fan, but we need to determine how we can still function in a more process driven framework.  I can't see PRINCE2 disappearing in the short term...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-1516749178141898657?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/1516749178141898657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=1516749178141898657' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1516749178141898657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1516749178141898657'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/08/prince2-vs-scrum.html' title='PRINCE2 vs Scrum'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-8734865661528964983</id><published>2007-06-24T23:19:00.000+10:00</published><updated>2007-06-24T23:23:32.829+10:00</updated><title type='text'>bye mitch</title><content type='html'>I read tonight that &lt;a href="http://notgartner.wordpress.com/2007/06/23/melbourne-based-again/"&gt;Mitch has moved to Melbourne&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I used to see Mitch every so often around the Canberra and at local geek events and I'm sorry to see him go.&lt;br /&gt;&lt;br /&gt;I wish him well in Melbourne.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-8734865661528964983?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/8734865661528964983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=8734865661528964983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/8734865661528964983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/8734865661528964983'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/06/bye-mitch.html' title='bye mitch'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-7855058564272702773</id><published>2007-06-14T23:22:00.000+10:00</published><updated>2007-06-14T23:32:05.245+10:00</updated><title type='text'>Rewarded?</title><content type='html'>I lent a colleague one of my &lt;a href="http://withpantscomesdignity.blogspot.com/2007/03/code-complete-second-edition.html"&gt;recommended&lt;/a&gt; books a while ago - &lt;a href="http://cc2e.com/"&gt;Code Complete &lt;/a&gt;by Steve McConnell.  He returned it today with five $1 &lt;a href="http://www.nswlotteries.com.au/scratchies/index.html"&gt;scratchies&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Thanks Dave.  Much appreciated, but unnecessary. &lt;br /&gt;&lt;br /&gt;I'm more than happy to lend my books in the hope that it improves their knowledge and they may do the same for myself or others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-7855058564272702773?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/7855058564272702773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=7855058564272702773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7855058564272702773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7855058564272702773'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/06/rewarded.html' title='Rewarded?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-1583610998211627035</id><published>2007-06-03T00:17:00.000+10:00</published><updated>2007-06-03T00:25:56.648+10:00</updated><title type='text'>special thanks</title><content type='html'>I must give special thanks to &lt;a href="http://community.softteq.com/blogs/nick/"&gt;Nick Randolph&lt;/a&gt;.  I asked a question during his session at Code Camp Oz 2007 and he promised to send me a book as he didn't have any with him.&lt;br /&gt;&lt;br /&gt;I have recently received the promised book.  I'm impressed that he bothered. &lt;br /&gt;&lt;br /&gt;It is much appreciated, but wow, bothering to remember to send me a book - some guy who interrupted a presentation, especially one requiring postage to the other side of the country! &lt;br /&gt;&lt;br /&gt;I'm not sure that I would have, given the effort required.   Obviously he's a better man than I.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-1583610998211627035?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/1583610998211627035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=1583610998211627035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1583610998211627035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1583610998211627035'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/06/special-thanks.html' title='special thanks'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-3074046996314207387</id><published>2007-06-03T00:03:00.000+10:00</published><updated>2007-06-03T00:17:28.400+10:00</updated><title type='text'>end of an era</title><content type='html'>Several long standing members of our team left on Friday.&lt;br /&gt;&lt;br /&gt;Shaun.  What can I say about Shaun?  He supported me when others wouldn't.  I doubt that I would have had the opportunities I've had without him.  I owe him many thanks.  I learnt a lot from working with him.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://paulmckee.blogspot.com/"&gt;Paul&lt;/a&gt;.  What can I say about Paul?  I can say that he hates plurals and doesn't like grammar.  But he is an excellent team leader and has the respect of many.  Yes, including me.  He's gone to Brisbane for a change.  Good luck.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eddiedebear.blogspot.com/"&gt;Eddie&lt;/a&gt;.  What can I say about Eddie?  I can say that his knowledge is formidable.  He was the go-to guy for the Dev team.  I'm sorry to see him go, but it was his time.  I wish him well.&lt;br /&gt;&lt;br /&gt;Geoff.  GT, you were not here long, but you were well liked.  I was amazed to find out that you were in a Disco band.  Good stuff.  I hope that you enjoy your new job and I look forward to working with you again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will miss them all.  They were a great bunch of guys.  I wish them well in the new endeavours, and look forward to crossing paths with them again.&lt;br /&gt;&lt;br /&gt;There are several others leaving at the end of June.  I'll leave the teary farewells for them until then.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-3074046996314207387?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/3074046996314207387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=3074046996314207387' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3074046996314207387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3074046996314207387'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/06/end-of-era.html' title='end of an era'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-3194347284674222630</id><published>2007-04-27T23:32:00.000+10:00</published><updated>2007-04-27T23:44:06.745+10:00</updated><title type='text'>Certified ScrumMaster</title><content type='html'>I am now a Certified &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ScrumMaster&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-family:courier new;"&gt;w00t!&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;I returned from the two day course in Sydney tonight.  I wholly recommend that if you're interested in Scrum that you attend a course like this. &lt;br /&gt;&lt;br /&gt;What did I learn?  Lots - and it's great to interact whilst learning.  I had read the book and have been trying to get something like Scrum implemented for a while now.   But to be able to talk with those that have is refreshing.&lt;br /&gt;&lt;br /&gt;(And no, I didn't receive any gifts or payments for this recommendation.  In fact, I had to fund the entire cost myself, including losing 2 days pay!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-3194347284674222630?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/3194347284674222630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=3194347284674222630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3194347284674222630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3194347284674222630'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/04/certified-scrummaster.html' title='Certified ScrumMaster'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-2372418339166877477</id><published>2007-04-12T23:13:00.000+10:00</published><updated>2007-04-12T23:28:48.939+10:00</updated><title type='text'>Certified Scrum Master Training</title><content type='html'>I'm off to the &lt;a href="http://www.scrumalliance.org/courses/102-certified-scrummaster"&gt;Scrum Master Training&lt;/a&gt; in Sydney to get &lt;a href="http://www.scrumalliance.org/CSM_description/"&gt;Certified&lt;/a&gt;!.&lt;br /&gt;&lt;br /&gt;Should be good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2372418339166877477?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2372418339166877477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2372418339166877477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2372418339166877477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2372418339166877477'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/04/certified-scrum-master-training.html' title='Certified Scrum Master Training'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-2158344075657026738</id><published>2007-04-12T23:05:00.000+10:00</published><updated>2007-04-12T23:13:14.273+10:00</updated><title type='text'>after code camp 2007...</title><content type='html'>I really enjoyed &lt;a href="http://www.codecampoz.com/"&gt;Code Camp 2007&lt;/a&gt;.  It's great to go to a conference where everyone is keen and is obviously committed to their career, demonstrated by being  prepared to spend a weekend of their free time to attend.&lt;br /&gt;&lt;br /&gt;Big thanks to &lt;a href="http://msmvps.com/blogs/greglow/"&gt;Greg Low&lt;/a&gt; and &lt;a href="http://notgartner.wordpress.com/"&gt;Mitch Denny&lt;/a&gt;.  Fantastic work.&lt;br /&gt;&lt;br /&gt;As an aside, we were asked to leave the venue as clean as we found it and so I collected about half of the Readify pamphlets for the up coming &lt;a href="http://www.readify.net/Default.aspx?tabid=254"&gt;WPF session&lt;/a&gt; in Sydney that had been placed on each chair.&lt;br /&gt;&lt;br /&gt;As a joke, the guys from my work have been placing those very same pamphlets on my seat at work whenever I get up form my desk.  This has been going on since we got back.  I'm amazed that they are so committed to the joke.  The funny thing is - I bet they get tired of it before I do...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2158344075657026738?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2158344075657026738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2158344075657026738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2158344075657026738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2158344075657026738'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/04/after-code-camp-2007.html' title='after code camp 2007...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-8735882259692388184</id><published>2007-03-25T23:12:00.000+10:00</published><updated>2007-03-25T23:16:07.204+10:00</updated><title type='text'>repeating myself</title><content type='html'>I want to repeat the contents of this &lt;a href="http://withpantscomesdignity.blogspot.com/search?q=repeat"&gt;post&lt;/a&gt;, but that would be breaking rule #1.&lt;br /&gt;&lt;br /&gt;Seriously, I am amazed that there isn't a ruler poised above the knuckles of every developer that raps down whenever they duplicate code.  Naughty, naughty, naughty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-8735882259692388184?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/8735882259692388184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=8735882259692388184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/8735882259692388184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/8735882259692388184'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/repeating-myself.html' title='repeating myself'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-2423537085739245155</id><published>2007-03-25T23:07:00.000+10:00</published><updated>2007-03-25T23:12:04.097+10:00</updated><title type='text'>Code Camp!</title><content type='html'>It's less than a week to &lt;a href="http://www.codecampoz.com/"&gt;Code Camp 2007&lt;/a&gt;.  I'm really looking forward to this years event.&lt;br /&gt;&lt;br /&gt;I have been to the last two and really enjoyed myself.  If you thinking of going, then I recommend that you do.&lt;br /&gt;&lt;br /&gt;Hope to see you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2423537085739245155?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2423537085739245155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2423537085739245155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2423537085739245155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2423537085739245155'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/code-camp.html' title='Code Camp!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-4650802936607572488</id><published>2007-03-21T23:35:00.000+11:00</published><updated>2007-03-25T23:06:55.530+10:00</updated><title type='text'>why pipelining?  (response to Andreas)</title><content type='html'>&lt;a href="http://defensiveprogrammer.blogspot.com/"&gt;Andreas&lt;/a&gt; added a comment to about this &lt;a href="http://withpantscomesdignity.blogspot.com/2007/01/comment-about-design-by-contract-by.html"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The question was why would you pipeline?&lt;br /&gt;&lt;br /&gt;Perhaps a definition is in order - I define this as encapsulating the conditional call check inside the function to:&lt;br /&gt;- reduce duplication of code&lt;br /&gt;- to remove the possibility that the check is not made before the function is called and&lt;br /&gt;- ensure that the function is only executed when appropriate&lt;br /&gt;&lt;br /&gt;I noted that this was different to Design by Contract (DbC), as in DbC if you fail the preconditions, then the application will throw an exception.&lt;br /&gt;&lt;br /&gt;Consider this code, without Pipelining:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public partial class Form1 : Form&lt;br /&gt;{&lt;br /&gt;    public Form1()&lt;br /&gt;    {&lt;br /&gt;        InitializeComponent();&lt;br /&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;    private void OKButton_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        string cleanText = string.Empty;&lt;br /&gt;        if (removeCheckbox.Checked)&lt;br /&gt;        {&lt;br /&gt;             cleanText = ReplaceUnderscoresWithSpaces(sampleTextBox.Text);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        System.Windows.Forms.MessageBox.Show(string.Format("Cleaned text: {0}", cleanText));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private string ReplaceUnderscoresWithSpaces(string p)&lt;br /&gt;    {&lt;br /&gt;        return (p.Replace("_", " "));&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This, rewritten with pipelining would be as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public partial class Form1 : Form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public Form1()    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        InitializeComponent();    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;    private void OKButton_Click(object sender, EventArgs e)&lt;br /&gt;    {       &lt;br /&gt;        &lt;strong&gt;string cleanText = ReplaceUnderscoresWithSpaces(sampleTextBox.Text, removeCheckbox.checked);&lt;/strong&gt;&lt;br /&gt;       &lt;br /&gt;        System.Windows.Forms.MessageBox.Show(string.Format("Cleaned text: {0}", cleanText));   &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    private string ReplaceUnderscoresWithSpaces(string p, &lt;strong&gt;bool execute&lt;/strong&gt;)&lt;br /&gt;    { &lt;br /&gt;        &lt;strong&gt;string temp = p;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;        if (execute)&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;        {&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;            temp = p.Replace("_", " ");&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;        }&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;        return (temp);&lt;/strong&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em&gt;(Changes in bold)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span &gt;Now, forgetting the simplicity of this example (and some of the other minor issues), it shows that:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span &gt;- the function identifies what it needs to execute, &lt;/span&gt;&lt;br /&gt;- the conditional is inside the function, not dispersed throughout the code&lt;br /&gt;- there is less complexity in the calling code&lt;br /&gt;- the conditions of execution are in the function&lt;br /&gt;&lt;br /&gt;But this technique is only useful for functions that do not have a side effect if they are not executed.  I only do this when it's necessary to do so.  But it's still a nice technique to remove duplication and clean up the calling code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-4650802936607572488?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/4650802936607572488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=4650802936607572488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/4650802936607572488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/4650802936607572488'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/why-pipelining-response-to-andreas.html' title='why pipelining?  (response to Andreas)'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-3757080138868698167</id><published>2007-03-19T23:25:00.000+11:00</published><updated>2007-03-19T23:32:35.782+11:00</updated><title type='text'>Code Complete, Second Edition</title><content type='html'>I've &lt;a href="http://withpantscomesdignity.blogspot.com/2005/05/best-book-ever.html"&gt;posted&lt;/a&gt; about this &lt;a href="http://cc2e.com/"&gt;book&lt;/a&gt; before. &lt;br /&gt;&lt;br /&gt;I bring it up because a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;colleague&lt;/span&gt; asked me about it, or I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;mentioned&lt;/span&gt; it, I can't remember - it doesn't really matter.&lt;br /&gt;&lt;br /&gt;He said that he'd been told it was a good read. &lt;br /&gt;&lt;br /&gt;I absolutely recommend this book to everyone in the software development industry.&lt;br /&gt;&lt;br /&gt;It's a fantastic grounding on lots of topics that developers and others may not have considered.&lt;br /&gt;&lt;br /&gt;There's two things I must say about this book:&lt;br /&gt;1.  It will take a while - stick with it.&lt;br /&gt;2.  Read it and then move on.  As I said - it's a great grounding, but you need to keep reading other books after this one.  It's just a good one to have read, or be going to read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-3757080138868698167?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/3757080138868698167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=3757080138868698167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3757080138868698167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3757080138868698167'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/code-complete-second-edition.html' title='Code Complete, Second Edition'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-2760200168458625049</id><published>2007-03-19T23:18:00.000+11:00</published><updated>2007-03-19T23:25:09.642+11:00</updated><title type='text'>Patterns of Enterprise Architecture</title><content type='html'>I finished "Patterns of Enterprise Architecture" yesterday.  It's very good and definitely worth a read. &lt;br /&gt;&lt;br /&gt;I know, most don't read these kind of books cover to cover, but I like to amass all of the knowledge I can, in the hope that a little sticks so the next time I see an issue or an opportunity, I have more options...&lt;br /&gt;&lt;br /&gt;Which book next, I hear you ask?  Well, I'm 24.4% through "Agile Software Development - Principles, Patterns and Practices".  This is a great book, bringing together lots of Agile and programming concepts into one place.  I'm really enjoying this one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2760200168458625049?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2760200168458625049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2760200168458625049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2760200168458625049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2760200168458625049'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/patterns-of-enterprise-architecture.html' title='Patterns of Enterprise Architecture'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-1151793447701618549</id><published>2007-03-17T00:08:00.000+11:00</published><updated>2007-03-17T00:39:07.367+11:00</updated><title type='text'>reply to start choppin</title><content type='html'>My &lt;a href="http://withpantscomesdignity.blogspot.com/2007/03/stupid-stupid-stiupid.html"&gt;last post&lt;/a&gt; got two comments!  So far, that's the best ever.  (Pity one was deleted.)&lt;br /&gt;&lt;br /&gt;But I'm not sure that I didn't cause confusion.  Sorry.&lt;br /&gt;&lt;br /&gt;To clarify, I was talking about programming languages.  Not written languages.&lt;br /&gt;&lt;br /&gt;If you read Start Choppin's comment you'll see what can happen without capitalisation in English.  (Superb example, by the way.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Careful, I've entered rant mode now...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I cannot think of a good reason to have case sensitivity in &lt;strong&gt;&lt;em&gt;any&lt;/em&gt;&lt;/strong&gt; programming language.  If you have a good reason, then please let me know.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Rant mode off.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;One reason I was given today was that the developer wanted to name the variable the same as the class, but only differ in case.  For example (in C# syntax):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Link link;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where &lt;span style="font-family:courier new;"&gt;Link&lt;/span&gt; was the class name and &lt;span style="font-family:courier new;"&gt;link&lt;/span&gt; is the name of the variable.&lt;br /&gt;&lt;br /&gt;OK, seems a sensible reason.  Except that it's bad form to name your variable the same as the class.  Why, let's just say one word.  Confusion.  Much Better to name it something appropriate:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Link nextPageLink;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;&lt;strong&gt;&lt;em&gt;We can't have descriptive programming!  No, that's toooo sensible.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But if this is your only argument for case sensitivity and you must call your variables the same as the class, then why can't the compiler know what you're referring to based upon it's context.  Even VB6 could handle this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And, the real point of &lt;a href="http://withpantscomesdignity.blogspot.com/2007/03/stupid-stupid-stiupid.html"&gt;my post&lt;/a&gt; was that we do things in software development that make it harder than it needs to be.  Case sensitivity is just one example. &lt;br /&gt;&lt;br /&gt;Another would be choosing to use an Object Orientated database instead of a relational database.  (Can't wait to see the comments about that statement!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-1151793447701618549?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/1151793447701618549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=1151793447701618549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1151793447701618549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1151793447701618549'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/reply-to-start-choppin.html' title='reply to start choppin'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-708882713237257406</id><published>2007-03-15T21:57:00.000+11:00</published><updated>2007-03-15T22:00:04.857+11:00</updated><title type='text'>stupid, stupid, stiupid!</title><content type='html'>I will &lt;strong&gt;&lt;em&gt;never&lt;/em&gt;&lt;/strong&gt; understand the need of case sensitivity in a language.&lt;br /&gt;&lt;br /&gt;I'm sure that because C had it, everyone else who thinks that their "serious" language must have it as well.&lt;br /&gt;&lt;br /&gt;I refuse to like having something in a language/application that enables me to make mistakes and have it next to impossible to notice.&lt;br /&gt;&lt;br /&gt;Stupid, stupid, stupid!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-708882713237257406?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/708882713237257406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=708882713237257406' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/708882713237257406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/708882713237257406'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/stupid-stupid-stiupid.html' title='stupid, stupid, stiupid!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-5578414481769283339</id><published>2007-03-11T14:40:00.000+11:00</published><updated>2007-03-11T14:44:12.966+11:00</updated><title type='text'>back of my t-shirt</title><content type='html'>I've &lt;a href="http://readify.net/Default.aspx?tabid=256"&gt;ordered a t-shirt&lt;/a&gt; for &lt;a href="http://www.codecampoz.com/"&gt;Code Camp Oz, 2007&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On the back I've put something that's a bit obscure.  Those that know me will know that that's exactly me favourite kind of joke.&lt;br /&gt;&lt;br /&gt;So, if you see me and don't understand it, then check out this &lt;a href="http://www.ahajokes.com/crt124.html"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-5578414481769283339?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/5578414481769283339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=5578414481769283339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/5578414481769283339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/5578414481769283339'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/back-of-my-t-shirt.html' title='back of my t-shirt'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-141182755241444027</id><published>2007-03-04T11:33:00.000+11:00</published><updated>2007-03-04T11:38:41.357+11:00</updated><title type='text'>amazing!</title><content type='html'>I posted &lt;a href="http://withpantscomesdignity.blogspot.com/2007/02/something-to-do.html"&gt;here&lt;/a&gt; about the lack of a particular feature in VS 2005.  Turns out that it's already there, but turned off by default.  (Thanks &lt;a href="http://neovolve.com/Default.aspx"&gt;Rory&lt;/a&gt; for pointing it out!)&lt;br /&gt;&lt;br /&gt;I'm not sure why - everyone I've talked to about this thought it should be turned on by default.&lt;br /&gt;&lt;br /&gt;I was going to crack open the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IDE&lt;/span&gt; extensibility area to add it myself, but it's already done.&lt;br /&gt;&lt;br /&gt;I wonder how many other useful features are "hidden" in VS 2005/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TFS&lt;/span&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-141182755241444027?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/141182755241444027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=141182755241444027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/141182755241444027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/141182755241444027'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/03/amazing.html' title='amazing!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-1876877060886512397</id><published>2007-02-28T23:44:00.000+11:00</published><updated>2007-03-01T00:17:05.363+11:00</updated><title type='text'>my opinion</title><content type='html'>&lt;a href="http://www.codinghorror.com/blog/archives/000781.html"&gt;This is funny&lt;/a&gt; - &lt;a href="http://notgartner.wordpress.com/2007/02/28/passion-vs-bleh/"&gt;Mitch has commented on this as well&lt;/a&gt;. (In fact, that's where I found it from. Thanks Mitch.)&lt;br /&gt;&lt;br /&gt;I agree, there seems to be a real lack of skilled programmers.&lt;br /&gt;&lt;br /&gt;But I'm not talking about those that are particularly skilled in a particular language, or those that know how to do tricks - like the swapping values without using a temp variable (2nd comment on on that post).&lt;br /&gt;&lt;br /&gt;I talking about the developers who:&lt;br /&gt;- can work in a team&lt;br /&gt;- can self manage&lt;br /&gt;- are thorough and meticulous&lt;br /&gt;- complete tasks to, well, completion&lt;br /&gt;- know how to dissect issues&lt;br /&gt;- know how to measure progress&lt;br /&gt;- know development concepts, like patterns, coupling, code structure, etc&lt;br /&gt;- are interested in their career&lt;br /&gt;- and know and understand development processes (and the point of it)&lt;br /&gt;&lt;br /&gt;But unlike the attitude in that post and comments of just terminating those that don't reach the bar, I'm looking for those that:&lt;br /&gt;- have the right attitude&lt;br /&gt;- want to improve&lt;br /&gt;- want to participate&lt;br /&gt;&lt;br /&gt;Because then you can work with them so that they will improve and in return will help you improve as well.&lt;br /&gt;&lt;br /&gt;I remember what it's like to not realise what I didn't know and not know how to find out. That's not a fun place to be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-1876877060886512397?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/1876877060886512397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=1876877060886512397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1876877060886512397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/1876877060886512397'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/my-opinion.html' title='my opinion'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-4639922941537682156</id><published>2007-02-28T23:35:00.000+11:00</published><updated>2007-02-28T23:44:45.420+11:00</updated><title type='text'>website vs phone</title><content type='html'>A friend just had a new addition to their family. Exciting news.&lt;br /&gt;&lt;br /&gt;My wife instructed me to send them flowers. Wives are good for remembering important stuff like that. So I found a local florist website and decided to use that rather than ring them up.&lt;br /&gt;&lt;br /&gt;After about 10-15 minutes of having to fill out address and credit card information and select a suitable bunch of flowers, the deal was done. But it was a lot of effort.&lt;br /&gt;&lt;br /&gt;If I had called them it would have taken about 2 minutes.&lt;br /&gt;&lt;br /&gt;I've learned my lesson - next time I will just call them.&lt;br /&gt;&lt;br /&gt;There are some things that don't translate well onto the web - having to be precise with address details, rather than just asking them to deliver to a particular hospital is an example.&lt;br /&gt;&lt;br /&gt;I guess if they had automated the method of choosing the target location using common locations, then it may have been easier?&lt;br /&gt;&lt;br /&gt;I think my point is, you shouldn't just translate a business &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;transaction&lt;/span&gt; to the web without considering the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;usability&lt;/span&gt; aspect. There's no benefit in using this particular website over ringing the florist directly, in fact, it's a disincentive.&lt;br /&gt;&lt;br /&gt;Silly, really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-4639922941537682156?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/4639922941537682156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=4639922941537682156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/4639922941537682156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/4639922941537682156'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/website-vs-phone.html' title='website vs phone'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-930157311675568800</id><published>2007-02-28T23:15:00.000+11:00</published><updated>2007-02-28T23:35:01.471+11:00</updated><title type='text'>something to do...</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_W-0a3skqpAw/ReV2tn4U-KI/AAAAAAAAAAU/C9GfUBc3NGU/s1600-h/wish+vs2005.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5036562284455196834" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_W-0a3skqpAw/ReV2tn4U-KI/AAAAAAAAAAU/C9GfUBc3NGU/s400/wish+vs2005.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I was using VS 2005 yesterday with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TFS&lt;/span&gt; and I was searching for some code using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CTRL&lt;/span&gt;+SHIFT+F. You know, find in files. Very handy tool.&lt;br /&gt;&lt;br /&gt;I double clicked one of the results and the file and the location in the code was loaded. Great.&lt;br /&gt;&lt;br /&gt;But then I wanted to locate the file in the 100+ projects in the solution explorer.&lt;br /&gt;&lt;br /&gt;So, right click on the tab for the file, but there's no option to highlight and show the current file the Solution Explorer. So I grabbed the closest team mate and had a rant.&lt;br /&gt;&lt;br /&gt;He agreed with me. This would be useful.&lt;br /&gt;&lt;br /&gt;So, my next task is to write an add-in or similar to make this work.&lt;br /&gt;&lt;br /&gt;But, if you know of something or someway to do this already, then please let me know. Thanks!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-930157311675568800?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/930157311675568800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=930157311675568800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/930157311675568800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/930157311675568800'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/something-to-do.html' title='something to do...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_W-0a3skqpAw/ReV2tn4U-KI/AAAAAAAAAAU/C9GfUBc3NGU/s72-c/wish+vs2005.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-7233559555560318202</id><published>2007-02-22T23:51:00.000+11:00</published><updated>2007-02-23T00:00:00.326+11:00</updated><title type='text'>fantastic</title><content type='html'>I tasked a team member with solving a problem today.&lt;br /&gt;&lt;br /&gt;I defined the problem and the requirements, and provided some ideas I thought may solve the issue, but said that he should think of anything else that would also work.&lt;br /&gt;&lt;br /&gt;About an hour later he came back with a simple solution that I hadn't thought of.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Fantastic!&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I love it when people show their creativity and come up with new ideas.&lt;br /&gt;&lt;br /&gt;I believe that you have to set goals for people and let them have the freedom to surprise you. This helps them gain confidence in themselves and add value to the organisation they otherwise may not have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-7233559555560318202?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/7233559555560318202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=7233559555560318202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7233559555560318202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/7233559555560318202'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/fantastic.html' title='fantastic'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-2852486218168145810</id><published>2007-02-16T23:44:00.000+11:00</published><updated>2007-02-17T00:53:53.236+11:00</updated><title type='text'>peer reviews</title><content type='html'>I had a interesting discussion with some team members today - they wanted to know why I wasn't &lt;strong&gt;&lt;em&gt;enforcing&lt;/em&gt;&lt;/strong&gt; peer reviews before allowing check-ins.&lt;br /&gt;&lt;br /&gt;Let me state four things first:&lt;br /&gt;1. I really, really like peer reviews. They are good for many reasons, including code quality, transferring knowledge, cross checking and keeping developers aware that someone else will be reading their code.&lt;br /&gt;2. I think that code quality is very important. Especially the structure of the code. &lt;a href="http://withpantscomesdignity.blogspot.com/2005/12/reducing-cost-of-change.html"&gt;I have posted about this before&lt;/a&gt;.&lt;br /&gt;3. We work in an iterative process where code lines are built twice a week, so there are opportunities to change before the final build.&lt;br /&gt;4. Peer reviews are still carried out - they may just not be before the initial check-in.&lt;br /&gt;&lt;br /&gt;So now, let me explain why I don't enforce them before the initial check-in:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It's very important to get the changes to test as soon as possible.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- Irrespective of everything else, the most important thing is to get the changes to test. The sooner it's in test, the sooner you'll find if the solution is correct, let alone if the code is high enough quality. And the sooner it's available to show to the customer, the sooner they can confirm that you're on the right track, or for them to refine the goal.&lt;br /&gt;- It's important to keep developers focused on delivering. We've all been in refactoringits, where you just need to refactor one more function... If you have to get it to test, then it helps to keep you on track.&lt;br /&gt;- It's rare that I find critical issues in peer reviews. If I do find them, then I address them and the reason behind them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Most developers write adequate code.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- Most professional developers write adequate code. By that, I mean that it will function correctly and not have obvious issues.&lt;br /&gt;- In order to improve someones skills takes time and effort and most importantly, a drive from the student to &lt;strong&gt;&lt;em&gt;want&lt;/em&gt;&lt;/strong&gt; to learn. Jamming a bunch of standards down someones throat is not the best way to improvement.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Improvement will come over time.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- Hopefully your developers are improving their skills. This is something that tends to happen. Even if it's just experience with the language or it's features, they are improving. And a lesson learnt the hard way tends to stick.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Current knowledge&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- You and your team have a certain amount of knowledge right now. This will change over time and you will find that what you thought was very important right now, turns out to be less so. So, you can't be too focused on certain issues.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Understand your team members.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- If you know your team mates' strengths and weaknesses, then you know what to look out for. You'll know that Jim* is great with c#, so he's generally pretty good. So it's less of a risk to not get to his peer review before check-in. (* Not his real name)&lt;br /&gt;- You might know that Joe* is new to the team and the code base, so you'll need to keep an eye on him. (* Not his real name)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;You can't change people.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- Well, not much. Just accept that.&lt;br /&gt;- But they can change themselves. If they're in the right state of mind, then you can help them. And if they &lt;strong&gt;&lt;em&gt;want&lt;/em&gt;&lt;/strong&gt; to change and understand why then it's easy. This is the best scenario you could want.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It's an unwritten requirement.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- This is a bit of a cop out, but, it's not a stated requirement. And yes, it should be. But if you can point me in the direction of something that I can use as a good metric, then let me know. (Don't suggest lines of code, or even cyclomatic complexity. These have their place, but not here.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It'll probably come back from test.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- this is not a bad thing (unless it's too frequent), but you probably will have an opportunity to change it and test it again.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Peer Reviews don't have to be the only place where code is reviewed.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- There's no reason why you can't get a team mate to check over your work at any time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It's not all about the code.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;- This one might sound strange, but trust me, once you remove the blinkers that developers tend to wear, you will see that code quality isn't the most important thing. But it's damn close.&lt;br /&gt;- Delivery of quality results for the business are paramount. If this means that the solution is acceptable, but the code &lt;em&gt;should&lt;/em&gt; be refactored, but isn't, then so be it.&lt;br /&gt;&lt;br /&gt;Oh, one more thing. I believe that I've found the right balance for the current team and requirements that I have to work within. If things don't work as well as I'd like, then they get changed. Continuous review and feedback.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, if you work in an environment where the quality of the code is paramount, like medical software, or missile systems, then these suggestions are not for you. Enforce your peer reviews relevant to your process.&lt;br /&gt;&lt;br /&gt;Does anyone want to comment on this? C'mon, you know you want to...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-2852486218168145810?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/2852486218168145810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=2852486218168145810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2852486218168145810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/2852486218168145810'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/peer-reviews.html' title='peer reviews'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-3085763247590288668</id><published>2007-02-15T22:29:00.000+11:00</published><updated>2007-02-15T23:01:08.419+11:00</updated><title type='text'>safety</title><content type='html'>Consider the following &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT title FROM books WHERE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;isbn&lt;/span&gt; = '0-321-12742-0';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;This could be written with parameters as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT title FROM books WHERE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;isbn&lt;/span&gt; = :&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;isbn&lt;/span&gt;_value;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-family:courier new;"&gt;:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;isbn&lt;/span&gt;_value&lt;/span&gt; is the parameter in that statement. You can then supply a value for that. (How you supply the value depends upon your Oracle client. (This is not the important bit))&lt;br /&gt;&lt;br /&gt;The great thing about the second &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; statement is that to Oracle it looks identical each time it's executed, irrespective of the actual value associated with the parameter.&lt;br /&gt;&lt;br /&gt;So if that second &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; statement is executed frequently, Oracle will find it in the cache and therefore will not parse it again. This can have real performance gains.&lt;br /&gt;&lt;br /&gt;But this is not the main reason I like parameters. Oh, yes, performance is important, but there's something else that they do.&lt;br /&gt;&lt;br /&gt;Consider this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SQL&lt;/span&gt; statement:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT first_name FROM employees WHERE last_name = :&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;LastName&lt;/span&gt;_Value;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this statement, the &lt;span style="font-family:courier new;"&gt;:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;LastName&lt;/span&gt;_Value&lt;/span&gt; is the parameter.&lt;br /&gt;&lt;br /&gt;If you supplied a value of "Smith" to this parameter, then the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt; would find all employees that have a surname of Smith. Good.&lt;br /&gt;&lt;br /&gt;If I supplied a value of "O'Connor", it would find all employees that have a surname of O'Connor. Good. &lt;em&gt;Hang on&lt;/em&gt;, it worked with a sting value that had an apostrophe in it!&lt;br /&gt;&lt;br /&gt;If the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SQL&lt;/span&gt; statement had been constructed in Code and the value substituted then the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;SQL&lt;/span&gt; would have been:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT first_name FROM employees WHERE last_name = 'O'Connor';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that would have failed. This can happen in PROD. That makes you look bad.&lt;br /&gt;&lt;br /&gt;So the &lt;strong&gt;&lt;em&gt;GOOD&lt;/em&gt;&lt;/strong&gt; thing that parameters gives you is safety against time bombs in code. You will never have to worry about apostrophes in data again!&lt;br /&gt;&lt;br /&gt;Note: It's not recommended to use parameters when the comparison between the field and the parameter is the LIKE statement. In that case it's better to use literal values. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;EG&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT first_name FROM employees WHERE last_name &lt;strong&gt;LIKE&lt;/strong&gt; '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Smi&lt;/span&gt;%';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;But then, you'll have to deal with those damned apostrophes again. Oh well...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-3085763247590288668?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/3085763247590288668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=3085763247590288668' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3085763247590288668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/3085763247590288668'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/safety.html' title='safety'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117085329159655534</id><published>2007-02-07T23:34:00.000+11:00</published><updated>2007-02-08T00:06:34.716+11:00</updated><title type='text'>communication, coupling and stuff...</title><content type='html'>You may have noticed that I like reading technical books.&lt;br /&gt;&lt;br /&gt;Why? Because:&lt;br /&gt;- I like it.&lt;br /&gt;- I'm interested in my work and they are a great source of information.&lt;br /&gt;- I find reading on a screen harder than from a book.&lt;br /&gt;- They don't require power and you can take them (almost) anywhere.&lt;br /&gt;&lt;br /&gt;But I think that there's a better way.&lt;br /&gt;&lt;br /&gt;I like the idea of learning via rich media and flexibility. What does this mean?&lt;br /&gt;&lt;br /&gt;I'm thinking video, either on the web or on DVD, that really describes and demonstrates the important techniques and concepts of software development. And it should provide a method to further pursue information, if you need to. So it may start talking/showing concepts at a high level and you can then delve into them further, if you need to. So in this way it's not linear like a book, but relative to the understanding of each consumer.&lt;br /&gt;&lt;br /&gt;So as an example we could talk about coupling.&lt;br /&gt;&lt;br /&gt;Loose coupling is good, right? Depends.&lt;br /&gt;&lt;br /&gt;Lets use buses and trucks as an example.&lt;br /&gt;&lt;br /&gt;A bus is an example of tight coupling. It carries people around. That's about all it can do. But it does it well and it's appropriate for it's purpose.&lt;br /&gt;&lt;br /&gt;A truck is an example of loose coupling - you can attach trailers that allow you to transport many different things, even people, if a trailer that like the back half of a bus was attached. So it's at the appropriate level of coupling. (BTW - The actual coupling and brake hoses are a fantastic example of interfaces as well...)&lt;br /&gt;&lt;br /&gt;Now imagine that you saw a video showing this and that you could pursue further the idea of interfaces via a menu or a link. This way you can find out related information, or more details about the current topic.&lt;br /&gt;&lt;br /&gt;I'm sure that this isn't a new idea, but I'd like to try it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117085329159655534?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117085329159655534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117085329159655534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117085329159655534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117085329159655534'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/communication-coupling-and-stuff.html' title='communication, coupling and stuff...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117085167019984354</id><published>2007-02-07T23:27:00.000+11:00</published><updated>2007-02-07T23:34:30.223+11:00</updated><title type='text'>follow up on the estimates post</title><content type='html'>A couple of things I should add about the &lt;a href="http://withpantscomesdignity.blogspot.com/2007/02/estimation-aaarrrggghhh.html"&gt;estimate post&lt;/a&gt;:&lt;br /&gt;- you should &lt;strong&gt;&lt;em&gt;constantly monitor the progress against the estimate&lt;/em&gt;&lt;/strong&gt;. If it looks like things are not progressing as expected, then adjust.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;define milestones and goals for the work that was estimated&lt;/em&gt;&lt;/strong&gt;. This helps you measure your progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117085167019984354?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117085167019984354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117085167019984354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117085167019984354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117085167019984354'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/follow-up-on-estimates-post.html' title='follow up on the estimates post'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117067757107118508</id><published>2007-02-05T22:58:00.000+11:00</published><updated>2007-02-05T23:13:29.150+11:00</updated><title type='text'>three things I like</title><content type='html'>There's three things that I want plug for no particular reason, other than I think that they're great. (And no - I haven't received any free gifts, although I'm willing to accept them.)&lt;br /&gt;&lt;br /&gt;1. Mountain biking at &lt;a href="http://www.corc.asn.au/images/maps/map_sparrow_large.jpg"&gt;Sparrow Hill&lt;/a&gt;. The track builders, Paul Cole and others, have built an absolutely fantastic cross country track. I must commend them. If you like cross country mountain biking and live near Canberra, then head out there. It's fantastic.&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://en.wikipedia.org/wiki/Indoor_cricket"&gt;Indoor Cricket&lt;/a&gt;. This is a much underrated game. It only takes about an hour and a bit to play a game of skill and participation. And afterwards a drink and a chat. I play with a team at &lt;a href="http://www.westonis.com.au/"&gt;Weston Indoor Sports&lt;/a&gt; in Weston Creek. It's fantastic.&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://hilux.toyota.com.au/toyota/vehicle/HomePage/0,4666,1586_544,00.html"&gt;Toyota Hilux Dual Cab SR&lt;/a&gt;. I love my ute. I used to have a Holden Rodeo. I was a fool. The Toyota Hilux is an incredible truck. The thing is great to drive and incredibly useful. It's fantastic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117067757107118508?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117067757107118508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117067757107118508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117067757107118508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117067757107118508'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/three-things-i-like.html' title='three things I like'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117067647093145956</id><published>2007-02-05T22:48:00.000+11:00</published><updated>2007-02-12T00:20:42.736+11:00</updated><title type='text'>efficiency</title><content type='html'>So you want to be more efficient. Here's the key:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Only do what's really important.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Sounds too simple?&lt;br /&gt;&lt;br /&gt;Let me explain:&lt;br /&gt;&lt;br /&gt;Suppose that you have an application where the user can enter an amount. Your tester identifies that this will throw an exception when the value is very large. Now in the business context, a value this large will never be entered*.&lt;br /&gt;&lt;br /&gt;So you investigate the issue, then implement a solution and then it has to go through testing.&lt;br /&gt;&lt;br /&gt;Seems innocent enough.&lt;br /&gt;&lt;br /&gt;Except that all of that time and effort could have been used in solving an issue that really is important. Granted that this is a simple example, but if you are doing a lot of these, then you're not really adding value. And the time should be allocated to higher priority issues.&lt;br /&gt;&lt;br /&gt;* This example assumes that you are sure that the business will never need this functionality. You should never arbitrarily assume that something like boundary checking is not necessary. It normally is. And this is just an example, so take it easy on me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117067647093145956?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117067647093145956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117067647093145956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117067647093145956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117067647093145956'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/efficiency.html' title='efficiency'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117050562427193158</id><published>2007-02-03T23:00:00.000+11:00</published><updated>2007-02-03T23:44:59.900+11:00</updated><title type='text'>estimation - aaarrrggghhh!!!</title><content type='html'>One of my work mates asked me about a book I've read the other day.&lt;br /&gt;&lt;br /&gt;He told me that he was trying to improve his estimation abilities.&lt;br /&gt;&lt;br /&gt;Yes - that ever present issue.&lt;br /&gt;&lt;br /&gt;I totally understand. I, like everyone else, am bad at estimating. (But I'm better than I used to be!)&lt;br /&gt;&lt;br /&gt;I once went into a yearly review and my manager said he thought my estimates were bad and that I had to fix it.&lt;br /&gt;&lt;br /&gt;OK. I took it on the chin. So I asked for help, but none was offered. Not even a pointer...&lt;br /&gt;&lt;br /&gt;That was one of the worst examples of leadership I've suffered through.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have a much better understanding of estimation now. I have techniques and processes and guides to assist. But I had to work this out myself, through experience and research.&lt;br /&gt;&lt;br /&gt;So I let him know that if he wants to talk about it, then I'm available. I'm more than happy to share my knowledge with anyone. I don't want others to have to struggle with the same things I've had to. And besides, I'm sure that their experience and knowledge can help me.&lt;br /&gt;&lt;br /&gt;So you're after the techniques to better estimation. Here's a few:&lt;br /&gt;- make everyone understand that an &lt;strong&gt;&lt;em&gt;estimate does not equal a contract&lt;/em&gt;&lt;/strong&gt;. The date or time that you estimate is not something that &lt;strong&gt;&lt;em&gt;will&lt;/em&gt;&lt;/strong&gt; happen, but something like it will. This leads to the next point.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;allocate the appropriate effort to the estimate&lt;/em&gt;&lt;/strong&gt;. If the estimate is very important or the estimate will be used in some published article, then spend more time determining the actual content of the work and what's really required. This can lead to the next point.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;understand what's really required&lt;/em&gt;&lt;/strong&gt;. In the process of dissecting the issue, you will have a better idea of what's involved and therefore a better estimate.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;estimate as a team&lt;/em&gt;&lt;/strong&gt;. Other's opinions may help you consider factors you may not have.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;add some padding&lt;/em&gt;&lt;/strong&gt;. Use your experience, so that if you're a chronic under/over estimator add the appropriate factor to help cover the slack. Or, pad using tasks of a lower priority that may or may not be completed (&lt;a href="http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method"&gt;DSDM&lt;/a&gt; uses this technique)&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;cut your work into small chunks and estimate those&lt;/em&gt;&lt;/strong&gt;. It can be much easier to estimate small tasks.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;understand you&lt;/em&gt;&lt;/strong&gt;. Find out why your estimates are wrong. Do you do more than in necessary? Do you double and triple check before completing? Do you fully understand the requirement? Do you know the technology/environment?&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;don't use estimates&lt;/em&gt;&lt;/strong&gt;. I know, this seems crazy. But this can be very liberating and very powerful. It requires certain things in order to work and getting those can be extremely difficult. But it can work. You will need:&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;trust&lt;/em&gt;&lt;/strong&gt; between you, your team lead, the manager and the business.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;honesty&lt;/em&gt;&lt;/strong&gt; between you, your team lead, the manager and the business.&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;frequent reviews&lt;/em&gt;&lt;/strong&gt; of your progress against the goals. This is important to know how you're going.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I use some/all of these and I find that some work better in places that others.&lt;br /&gt;&lt;br /&gt;There's probably others I haven't listed and my bag of tools is not full.&lt;br /&gt;&lt;br /&gt;What do you do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117050562427193158?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117050562427193158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117050562427193158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050562427193158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050562427193158'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/estimation-aaarrrggghhh.html' title='estimation - aaarrrggghhh!!!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117050296410463190</id><published>2007-02-03T22:38:00.000+11:00</published><updated>2007-02-03T22:43:10.606+11:00</updated><title type='text'>"patterns of enterprise application architecture"</title><content type='html'>I like Martin Fowler. I believe that he's one experienced and intelligent guy.&lt;br /&gt;&lt;br /&gt;This is another book of his. He has a great style and all of his books are full of clear and useful information.&lt;br /&gt;&lt;br /&gt;I've only read the Preface and Introduction so far, but I already like this book. I've also spoken to friends that have read this one and everyone liked it.&lt;br /&gt;&lt;br /&gt;One of my previous managers have met Martin, but I think that it was a waste. I would have loved to have gone and seen his presentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117050296410463190?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117050296410463190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117050296410463190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050296410463190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050296410463190'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/patterns-of-enterprise-application.html' title='&quot;patterns of enterprise application architecture&quot;'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-117050255154559968</id><published>2007-02-03T22:30:00.000+11:00</published><updated>2007-02-03T22:37:53.670+11:00</updated><title type='text'>"design by contract, by example"</title><content type='html'>I've just finished this book this evening. It took a little while, even though it only has 226 pages and it used a large font.&lt;br /&gt;&lt;br /&gt;I liked it, but it wasn't quite what I was after.&lt;br /&gt;&lt;br /&gt;I'm interested in design By Contract (DbC). It sounds like one of those things that some know about, some understand, but very few use.&lt;br /&gt;&lt;br /&gt;Would I recommend it? Well, um, yes and no. It's pretty easy to read, but it's a bit (or a lot) like a Uni textbook. Actually it wasn't a hard read, so yeah if you want to read something on DbC, then give it a go - but it's not in my top ten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-117050255154559968?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/117050255154559968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=117050255154559968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050255154559968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/117050255154559968'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/02/design-by-contract-by-example.html' title='&quot;design by contract, by example&quot;'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116998603541975278</id><published>2007-01-28T22:49:00.000+11:00</published><updated>2007-01-28T23:08:47.556+11:00</updated><title type='text'>something stupid</title><content type='html'>I've done something stupid - I've put in a bid to present a talk at the next &lt;a href="http://www.codecampoz.com/"&gt;CodeCampOz&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's now under consideration. I'm not sure that it will be accepted, but if it does, then I'll really have to get organised.&lt;br /&gt;&lt;br /&gt;It's going to be on coding techniques. This something that I think is &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; important.&lt;br /&gt;&lt;br /&gt;In my opinion, the key is to be able to adapt to change, whether it be from:&lt;br /&gt;- business decisions,&lt;br /&gt;- improvements in your knowledge, or,&lt;br /&gt;- some other thing that happens.&lt;br /&gt;&lt;br /&gt;Basically it's about structure and techniques. Structure is more important than the lines (as long as the code does what it's supposed to do, but that's a given.)&lt;br /&gt;&lt;br /&gt;One reason I want to do this is that I really enjoy the buzz from speaking in front of people. Don't get me wrong - it scares the &lt;strong&gt;&lt;em&gt;crap&lt;/em&gt;&lt;/strong&gt; out of me, but at the same time, it's fantastic.&lt;br /&gt;&lt;br /&gt;Another is that I want to share what I know. I've invested a lot of time in reading and considering how I work and I'd like to pass that on to others.&lt;br /&gt;&lt;br /&gt;The only thing that scares me about this is that I'll present the talk and then everyone will say, I already knew that.&lt;br /&gt;&lt;br /&gt;But if I can help one person, then I'll be happy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116998603541975278?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116998603541975278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116998603541975278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116998603541975278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116998603541975278'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/something-stupid.html' title='something stupid'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116946928399162890</id><published>2007-01-22T23:19:00.000+11:00</published><updated>2007-01-22T23:35:58.803+11:00</updated><title type='text'>comment about "design by contract , by example"</title><content type='html'>I really enjoy it when a book has something in it that makes me go &lt;strong&gt;&lt;em&gt;wow.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This book has one of those. It's not a major wow, but still.&lt;br /&gt;&lt;br /&gt;It talks about how defensive programming can lead to difficult to find bugs. I'm a big fan of defensive programming, so it got me thinking.&lt;br /&gt;&lt;br /&gt;Basically, the point was that for non Design by Contract (DbC) languages, the problem is that if a function just returns if the parameters are not valid (i.e using guard clauses), then the bug/issue may not be discovered and if it is, it may be in an unrelated place - Fair Point.&lt;br /&gt;&lt;br /&gt;The DbC language will throw an exception if the contract is invalidated - Nice.&lt;br /&gt;&lt;br /&gt;Although, and there's always an although, I'm a big fan of a concept that I call Pipelining. That's where the function will only act when the parameters that are passed require it to act. This means that the conditions of execution are placed in the function, not dispersed throughout the code.&lt;br /&gt;&lt;br /&gt;These two concepts kind of disagree with each other!&lt;br /&gt;&lt;br /&gt;Hmmm...&lt;br /&gt;&lt;br /&gt;I guess this is why development is hard?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116946928399162890?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116946928399162890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116946928399162890' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116946928399162890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116946928399162890'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/comment-about-design-by-contract-by.html' title='comment about &quot;design by contract , by example&quot;'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116799697955431755</id><published>2007-01-05T22:24:00.000+11:00</published><updated>2007-01-05T22:43:22.556+11:00</updated><title type='text'>five things about me</title><content type='html'>Well, I've finally been tagged in this five things about me thingy. So here goes:&lt;br /&gt;&lt;br /&gt;1. I started this blog in a course that &lt;a href="http://notgartner.wordpress.com/"&gt;Mitch Denny&lt;/a&gt; was giving back in 2004.&lt;br /&gt;2. I can ride a unicycle. But not very well.&lt;br /&gt;3. I found a dead body in &lt;a href="http://www.wagga.nsw.gov.au/index.aspx?item=pr&amp;sub=lake&amp;amp;article=0BDT8ZTMCSBL0N5J8B5A"&gt;Lake Albert in Wagga Wagga&lt;/a&gt; when I was about 15.&lt;br /&gt;4. I was on &lt;a href="http://www.2aaa.net/"&gt;community radio in Wagga&lt;/a&gt;. I had a two hour show on Friday nights. I think that there was maybe two or three people listening...&lt;br /&gt;5. My house burnt down in the &lt;a href="http://www.mso.anu.edu.au/info/fire/stories/recollections/faulkner.php"&gt;2003 firestorm that hit Canberra&lt;/a&gt;. The only things we got out with are our two children, the clothes we were wearing and our cars. That's it.&lt;br /&gt;&lt;br /&gt;So there you go. A bit of a mixed bag, and I tried to throw in a few curlies...&lt;br /&gt;&lt;br /&gt;Now as I can't find five other bloggers that I know that haven't already been tagged, this is the end of the line. I guess the magic had to stop eventually...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116799697955431755?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116799697955431755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116799697955431755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116799697955431755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116799697955431755'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/five-things-about-me.html' title='five things about me'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116774159429652855</id><published>2007-01-02T23:30:00.000+11:00</published><updated>2007-01-02T23:39:54.306+11:00</updated><title type='text'>rayman 3</title><content type='html'>I've been playing this game with my kids for the past month or so. I've got to say that it's fantastic - even though it's three years old. The gameplay and graphics are awesome. Yes, awesome.&lt;br /&gt;&lt;br /&gt;I managed to pick it up from Dick Smiths Powerhouse during a 20% off sale for the huge sum of $16. The pack also came with Rayman 2, Rayman multiplayer and Rayman print shop.&lt;br /&gt;&lt;br /&gt;Wholly recommended.&lt;br /&gt;&lt;br /&gt;Especially for the big kids... ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116774159429652855?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116774159429652855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116774159429652855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116774159429652855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116774159429652855'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/rayman-3.html' title='rayman 3'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116765682016818755</id><published>2007-01-02T00:02:00.000+11:00</published><updated>2007-01-02T00:07:00.170+11:00</updated><title type='text'>a non technical book!</title><content type='html'>I've just finished reading "The Reality Dysfunction" by Peter F. Hamilton.&lt;br /&gt;&lt;br /&gt;Whew! It's huge, 1221 pages... It took me over a week.&lt;br /&gt;&lt;br /&gt;I wouldn't say it's brilliant, but it's not bad.&lt;br /&gt;&lt;br /&gt;Apparently it's the first in a trilogy. Oh my, I'm not sure that I can find the time to finish it.&lt;br /&gt;&lt;br /&gt;If you liked this then check out books written by Iain Banks or William Gibson.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116765682016818755?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116765682016818755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116765682016818755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765682016818755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765682016818755'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/non-technical-book.html' title='a non technical book!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116765650298028065</id><published>2007-01-02T00:00:00.000+11:00</published><updated>2007-01-02T00:01:42.980+11:00</updated><title type='text'>happy new year</title><content type='html'>Happy New Year to the three people that read this blog!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116765650298028065?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116765650298028065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116765650298028065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765650298028065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765650298028065'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/happy-new-year.html' title='happy new year'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116765615946300662</id><published>2007-01-01T23:28:00.000+11:00</published><updated>2007-01-02T00:00:34.376+11:00</updated><title type='text'>why, why, why, why!</title><content type='html'>&lt;a href="http://photos1.blogger.com/x/blogger/4966/710/1600/604579/sample%20code%20switch%20statement.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/4966/710/400/515031/sample%20code%20switch%20statement.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4966/710/1600/6940/sample%20code%20switch%20statement.jpg"&gt;&lt;/a&gt;&lt;br /&gt;Why do we make things harder than they have to be?&lt;br /&gt;&lt;br /&gt;&lt;-- Here's an example.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The error message that you get is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Control cannot fall through from one case label ('default:') to another"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What it could just say is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"You need to add a &lt;span style="font-family:courier new;"&gt;break;&lt;/span&gt; statement to the &lt;span style="font-family:courier new;"&gt;default&lt;/span&gt; section."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think that this is unfortunately a common theme in IT - Things are more difficult than they need to be.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;And yes, I just as guilty of this as anyone.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116765615946300662?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116765615946300662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116765615946300662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765615946300662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116765615946300662'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2007/01/why-why-why-why.html' title='why, why, why, why!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116696480343988570</id><published>2006-12-24T23:44:00.000+11:00</published><updated>2006-12-24T23:53:23.440+11:00</updated><title type='text'>attitude?</title><content type='html'>I keep hearing comments in IT that we know better than the business.&lt;br /&gt;&lt;br /&gt;Hmmmm...&lt;br /&gt;&lt;br /&gt;We know &lt;em&gt;technically&lt;/em&gt; how to work with computers better than the business (mostly), but we do not know better than them. I'm always saddened by that attitude. We need to work with them to get the best result. Its like pancakes with only lemon and not the sugar. Or the other way around... You choose.&lt;br /&gt;&lt;br /&gt;I think that if you're concerned that the business doesn't know what's what, then you have to help them work it out.&lt;br /&gt;&lt;br /&gt;Try &lt;em&gt;talking&lt;/em&gt; with them, showing them samples, involving them in the process...&lt;br /&gt;&lt;br /&gt;You might be surprised.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116696480343988570?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116696480343988570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116696480343988570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116696480343988570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116696480343988570'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/12/attitude.html' title='attitude?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116696425759667867</id><published>2006-12-24T23:43:00.000+11:00</published><updated>2006-12-24T23:44:17.606+11:00</updated><title type='text'>merry christmas</title><content type='html'>to all...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116696425759667867?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116696425759667867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116696425759667867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116696425759667867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116696425759667867'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/12/merry-christmas.html' title='merry christmas'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116644175367108449</id><published>2006-12-18T22:34:00.000+11:00</published><updated>2006-12-18T22:40:36.816+11:00</updated><title type='text'>how many books?</title><content type='html'>One More Done.&lt;br /&gt;&lt;br /&gt;I've finished "User Stories Applied" by Mike Cohn. Good, but draws a lot from his Estimating and planning book.&lt;br /&gt;&lt;br /&gt;I've also now started "Design by contract, by Example" by Richard Mitchell and Jim McKim.&lt;br /&gt;&lt;br /&gt;I'd like to read a good book on the DbC subject. Sounds like another great idea in the programming techniques spectrum that doesn't seem to have been embraced. Well, at least from my experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116644175367108449?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116644175367108449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116644175367108449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116644175367108449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116644175367108449'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/12/how-many-books.html' title='how many books?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116549339627121347</id><published>2006-12-07T22:56:00.000+11:00</published><updated>2006-12-18T22:37:17.703+11:00</updated><title type='text'>one more book on the finished pile</title><content type='html'>I've finished "Applying Domain Driven Design and Patterns: with Examples in C# and .Net" by Jimmy Nilsson.&lt;br /&gt;&lt;br /&gt;I found that this book was difficult to read - it just didn't keep me interested. It was dry and somewhat uninformative. When I compare it to any book in the Pragmatic series, it just doesn't cut it.&lt;br /&gt;&lt;br /&gt;Books shouldn't be a chore to read. I'm really quite interested in Domain Driven Design, but I didn't really get much out of this book that couldn't have been written in about 50 pages in the pragmatic style...&lt;br /&gt;&lt;br /&gt;Pity really - maybe I've turned into a jaded critic?&lt;br /&gt;&lt;br /&gt;On another note, I'm a quarter through "User Stories Applied" by Mike Cohn. Seems quite good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116549339627121347?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116549339627121347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116549339627121347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116549339627121347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116549339627121347'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/12/one-more-book-on-finished-pile.html' title='one more book on the finished pile'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-116114630919152683</id><published>2006-10-18T14:35:00.000+10:00</published><updated>2006-10-18T14:38:29.200+10:00</updated><title type='text'>one more book</title><content type='html'>I've just finished "The Pragmatic Programmer". This is another excellent book in the Pragmatic series. I highly recommend that you read it.&lt;br /&gt;&lt;br /&gt;I've just started "Applying Domain Driven Design and Patterns". It seems quite good from the 10 or so pages I've read so far.&lt;br /&gt;&lt;br /&gt;That's two down from my current stack of 10 that I'm getting through...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-116114630919152683?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/116114630919152683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=116114630919152683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116114630919152683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/116114630919152683'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/10/one-more-book.html' title='one more book'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115936216873126205</id><published>2006-09-27T22:54:00.000+10:00</published><updated>2006-09-27T23:02:48.746+10:00</updated><title type='text'>hey</title><content type='html'>I've been quiet lately. There's several reasons for this - none too exciting:&lt;br /&gt;1. Busy at work. The usual excuse.&lt;br /&gt;2. Reading. I've finished "Crystal Clear" By Alistair Cockburn. Much better than I originally thought.&lt;br /&gt;3. &lt;a href="http://www.stumbleupon.com"&gt;Stumble.&lt;/a&gt; Check it out. It'll suck you in...&lt;br /&gt;4. Bought 10 more books. I've read the first (practices of an agile developer), and onto the second (the pragmatic programmer). Got to say that every pragmatic book I've read has been great.&lt;br /&gt;5. Lazy. No excuse for that one.&lt;br /&gt;&lt;br /&gt;So I'm sure that I post a bit more frequently from now.&lt;br /&gt;&lt;br /&gt;Yeah, right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115936216873126205?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115936216873126205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115936216873126205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115936216873126205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115936216873126205'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/09/hey.html' title='hey'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115651427312893138</id><published>2006-08-25T23:29:00.000+10:00</published><updated>2006-08-26T00:12:37.236+10:00</updated><title type='text'>switched on</title><content type='html'>I am preparing a coding techniques workshop for the dev area at work.&lt;br /&gt;&lt;br /&gt;I've been reading and researching coding techniques for over two years now and I want to share the knowledge that I've learnt.  It seems to me that it's not so much the lines of code you write (although that is still important) but it's more the way you structure your code.&lt;br /&gt;&lt;br /&gt;One developer on our team was interested to see what I was going to present, so I ran some of the concepts by him.  He was keen to give them a try.&lt;br /&gt;&lt;br /&gt;He seemed to "get" the reasons why this concept is important.  So much so that in the next task he was working on, he was applying them.  It was amazing to see how the change had effected his coding.&lt;br /&gt;&lt;br /&gt;He was &lt;span style="font-weight: bold; font-style: italic;"&gt;switched on&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115651427312893138?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115651427312893138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115651427312893138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115651427312893138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115651427312893138'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/switched-on.html' title='switched on'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115556056215814642</id><published>2006-08-14T22:39:00.000+10:00</published><updated>2006-08-14T23:02:42.193+10:00</updated><title type='text'>performance</title><content type='html'>Sometimes the illusion of performance is enough.&lt;br /&gt;&lt;br /&gt;Here's an example:&lt;br /&gt;I just tried to copy a DVD full of files over to my hard drive. It got part way through and then it threw an exception. Some of the files got over, some didn't. So now, I'm copying the files one by one. This is a slow (and annoying) process.&lt;br /&gt;&lt;br /&gt;But copying them as a group seems faster.&lt;br /&gt;&lt;br /&gt;I'm not sure that the actual time taken by the computer will be that different, more that my interaction will slow the process down.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a great example of how the time involved is similar, but the effort and inconvenience is higher when moving over files one by one.&lt;br /&gt;&lt;br /&gt;This is demonstrating is that by using a "natural break" in the process, it seems easier and faster.&lt;br /&gt;&lt;br /&gt;This is a lesson for application design. Look for&lt;br /&gt;- breaks in the workflow that can be unobtrusive to the user&lt;br /&gt;- ways to group actions without involving the user (could be as simple as multiselect in a list)&lt;br /&gt;And this will help your application appear to be efficient.&lt;br /&gt;&lt;br /&gt;Try to avoid:&lt;br /&gt;- frequent pauses and halts to in workflows&lt;br /&gt;- lack of feedback about what the computer is doing&lt;br /&gt;These make your application annoying and slow.&lt;br /&gt;&lt;br /&gt;Some simple rules:&lt;br /&gt;- always give feedback to the user, especially where the delay could be more than half a second&lt;br /&gt;- show them that the process &lt;strong&gt;&lt;em&gt;is&lt;/em&gt;&lt;/strong&gt; still executing&lt;br /&gt;- if possible tell them exactly the progress of the task and the expected completion&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115556056215814642?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115556056215814642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115556056215814642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115556056215814642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115556056215814642'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/performance.html' title='performance'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115529739313761589</id><published>2006-08-11T21:56:00.000+10:00</published><updated>2006-08-13T00:02:41.460+10:00</updated><title type='text'>testers</title><content type='html'>I like testers.&lt;br /&gt;&lt;br /&gt;I used to think that they were only for testing the application to make sure that I'd completed the task correctly.&lt;br /&gt;&lt;br /&gt;What a naive view on the true power of testers.&lt;br /&gt;&lt;br /&gt;Testers can make your project so much more successful. You should include testers from the very inception of the project. They can help with:&lt;br /&gt;- analysis of the issues&lt;br /&gt;- define the scope of the work&lt;br /&gt;- define successful (and unsuccessful) conditions&lt;br /&gt;- show you what's necessary to complete the task&lt;br /&gt;- provide a different point of view on the issue and how it fits into the application/project&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;"How? "&lt;/em&gt;&lt;/strong&gt; I hear you ask.&lt;br /&gt;&lt;br /&gt;Well, quite simply, get them to analyze the requirements, write test plans/test cases in the initial stages of the project/task. This effort almost the same as them writing the test plans/cases when they are delivered the application for test, but if that information is available to the developers, then they can use it to determine how much work there is to do. It can also be useful for the project lead/manager to help in creating a "block plan" of the tasks involved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115529739313761589?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115529739313761589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115529739313761589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115529739313761589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115529739313761589'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/testers.html' title='testers'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115521725589080185</id><published>2006-08-10T23:26:00.000+10:00</published><updated>2006-08-11T22:08:02.633+10:00</updated><title type='text'>functions vs workflow</title><content type='html'>I worked on a project a few years ago where the project requirements were in a Business Requirements Specification (BRS). The end result is usable, but it's difficult to get value from it - all the information is in the system, but bringing it together is tricky.&lt;br /&gt;&lt;br /&gt;Had the requirements been defined in user stories/use cases, then I believe that the end result would have been much better. (It's important to note that the project was run in a waterfall fashion, so the users didn't see it until it was complete and that was too late...)&lt;br /&gt;&lt;br /&gt;I can really see how analyzing a requirement/issue/project focusing on use and purpose rather than discrete functionally makes such a difference to the end result. Requirements analysis is still necessary - but it should be in context of use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115521725589080185?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115521725589080185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115521725589080185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115521725589080185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115521725589080185'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/functions-vs-workflow.html' title='functions vs workflow'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115513034898437320</id><published>2006-08-09T23:03:00.000+10:00</published><updated>2006-08-09T23:32:29.080+10:00</updated><title type='text'>practice vs theory</title><content type='html'>We had our first team estimation meeting today.&lt;br /&gt;&lt;br /&gt;It's a technique from &lt;a href="http://www.amazon.com/gp/product/0131479415/103-7289770-7131864?v=glance&amp;n=283155"&gt;Agile Estimation and Planning&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, the whole team provides estimates for the development and test component of each issue. The idea behind it is that as a group we should be able to better estimate the work that if just one does it. Additionally, since the work is not allocated a resource until just before it's started, anyone on the team may get the issue, so assuming that X will be responsible may skew the estimate.&lt;br /&gt;&lt;br /&gt;It's interesting to see how things work when you are doing them for the first time and the team and the business are not experienced with particular techniques.&lt;br /&gt;&lt;br /&gt;Several team members added very relevant points and I think that more agile concepts became understood by the team.&lt;br /&gt;&lt;br /&gt;It went rather well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115513034898437320?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115513034898437320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115513034898437320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115513034898437320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115513034898437320'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/practice-vs-theory.html' title='practice vs theory'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115470110273880696</id><published>2006-08-05T00:15:00.000+10:00</published><updated>2006-08-05T00:31:23.933+10:00</updated><title type='text'>where next?</title><content type='html'>What's next for me?&lt;br /&gt;&lt;br /&gt;My boss keeps telling me that his type of job, a manager, is the next logical step for me.&lt;br /&gt;&lt;br /&gt;Hmm... I'm not too sure. I can see quite a lot of options, but I'm not drawn to be a &lt;strong&gt;&lt;em&gt;proper&lt;/em&gt;&lt;/strong&gt; manager, one that has to manage budgets, staffing issues and the like.&lt;br /&gt;&lt;br /&gt;It's not that I wouldn't do it, but, I don't currently see the appeal.&lt;br /&gt;&lt;br /&gt;I really like managing teams and being a technical specialist. That can lead into many jobs, including roles like:&lt;br /&gt;- project management&lt;br /&gt;- trainer (in team management, development techniques, etc)&lt;br /&gt;- consultant (yes, like you &lt;a href="http://notgartner.wordpress.com/"&gt;Mitch&lt;/a&gt;)&lt;br /&gt;- development specialist&lt;br /&gt;- architect&lt;br /&gt;- others that I can't think of because it's late and I've had a few drinks...&lt;br /&gt;&lt;br /&gt;I guess my point is that the process shouldn't just be:&lt;br /&gt;- developer, then&lt;br /&gt;- team lead, then&lt;br /&gt;- manager.&lt;br /&gt;&lt;br /&gt;It's OK if that makes sense for you, but remember that people who are keen to step up have many options in their career. Find what you like to do, or are good at and &lt;strong&gt;&lt;em&gt;work&lt;/em&gt;&lt;/strong&gt; at it - you'll be amazed what you can do...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115470110273880696?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115470110273880696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115470110273880696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470110273880696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470110273880696'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/where-next.html' title='where next?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115470080474417813</id><published>2006-08-05T00:06:00.000+10:00</published><updated>2006-08-05T00:13:24.746+10:00</updated><title type='text'>co-location</title><content type='html'>We had a move today at the office. All seats were re-organised so that teams were co-located.&lt;br /&gt;&lt;br /&gt;I was the bunny that was responsible for organising it. Several people complained.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Why do I have to move?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It's such an inconvenience!&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;What's the point?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Within an hour or so of moving, I overheard a conversation on an issue that I have to report to the business on on Tuesday.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:180%;"&gt;Whammo!&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is the reason why it's important to sit with your team. The cost of communicating must be as low as possible. This can deliver real benefits to the immediacy of information and help.&lt;br /&gt;&lt;br /&gt;There will always be nay-sayers. Ignore them and know the truth!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115470080474417813?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115470080474417813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115470080474417813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470080474417813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470080474417813'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/co-location.html' title='co-location'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115470039603711967</id><published>2006-08-04T23:58:00.000+10:00</published><updated>2006-08-05T00:06:36.036+10:00</updated><title type='text'>quote of the week</title><content type='html'>I gave a presentation the other week about how we want to improve the current situation of the interaction between the support group and the business.&lt;br /&gt;&lt;br /&gt;I had a slide that had the following line:&lt;br /&gt;&lt;br /&gt;"more transparent and more visible"&lt;br /&gt;&lt;br /&gt;Apparently the Business Analysts section decided that it was their quote of the week...&lt;br /&gt;&lt;br /&gt;I know it sounds contradictory, but I'm wasn't after the literal meaning of those words. What I meant was:&lt;br /&gt;- more transparent, so that the business can see exactly what we're doing, when we're doing it. This helps to improve trust.&lt;br /&gt;- move visible, so that the business sees that we are there and know what we do for them. This helps to improve communication.&lt;br /&gt;&lt;br /&gt;Both communication and trust are &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; important if you want to improve the acceptance of agile methods and get the business to become more involved and receptive.&lt;br /&gt;&lt;br /&gt;Without trust and communication, you're fighting an uphill battle to get positive changes made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115470039603711967?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115470039603711967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115470039603711967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470039603711967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115470039603711967'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/quote-of-week.html' title='quote of the week'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115469988178328698</id><published>2006-08-04T23:47:00.000+10:00</published><updated>2006-08-04T23:58:01.796+10:00</updated><title type='text'>more ducks, more rows</title><content type='html'>After getting things in order as described in the &lt;a href="http://www.blogger.com/comment.g?blogID=9636166&amp;amp;postID=115357694462660499"&gt;ducks in a row&lt;/a&gt; post, things seemed better.&lt;br /&gt;&lt;br /&gt;But recently I was feeling out of control again. So I set out to work out what the problem was...&lt;br /&gt;&lt;br /&gt;It was those damn ducks again. The ones that I knew about were in a row, but several new had ones turned up.&lt;br /&gt;&lt;br /&gt;I determined what information that I wasn't in control of and I made it visible - I had to get out my trusty duck herder and herded them into a row.&lt;br /&gt;&lt;br /&gt;Much calm has returned.&lt;br /&gt;&lt;br /&gt;(Hi to Nick if you're reading this!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115469988178328698?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115469988178328698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115469988178328698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115469988178328698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115469988178328698'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/more-ducks-more-rows.html' title='more ducks, more rows'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115452572451335719</id><published>2006-08-02T23:32:00.000+10:00</published><updated>2006-08-02T23:35:24.530+10:00</updated><title type='text'>more on crystal clear</title><content type='html'>I wasn't too enthused about Crystal Clear in my last post.&lt;br /&gt;&lt;br /&gt;I've read some more since then and I think I misjudged it. It certainly gets better, but I still have the feeling I've read it all before.&lt;br /&gt;&lt;br /&gt;I'm sure that that's because in the bit that I've read, it's all similar to other agile processes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115452572451335719?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115452572451335719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115452572451335719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115452572451335719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115452572451335719'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/08/more-on-crystal-clear.html' title='more on crystal clear'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115366149031701784</id><published>2006-07-23T23:23:00.000+10:00</published><updated>2006-07-23T23:31:30.333+10:00</updated><title type='text'>another book done</title><content type='html'>Today I finished Agile Estimation and Planning. Quite a good book.&lt;br /&gt;&lt;br /&gt;I am hoping to try out planning poker, but the work that we have on at the moment isn't really suitable for this.&lt;br /&gt;&lt;br /&gt;The book has some good ideas and practices for dealing with estimation in an agile environment. Recommended.&lt;br /&gt;&lt;br /&gt;I've just started with Crystal Clear. So far, I'm not enamored with it. I don't know why. I've been looking forward to it for quite a while. Perhaps because I'd read lots of stuff about it on the web that it feels like I already know the good bits, much like a trailer for a movie that has all the funny bits in it... Pity.&lt;br /&gt;&lt;br /&gt;But I'll continue. I almost always read every book I start.&lt;br /&gt;&lt;br /&gt;Tomorrow I'll be ordering some more from Amazon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115366149031701784?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115366149031701784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115366149031701784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115366149031701784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115366149031701784'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/07/another-book-done.html' title='another book done'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115357769769346230</id><published>2006-07-23T00:14:00.000+10:00</published><updated>2006-08-13T00:19:54.713+10:00</updated><title type='text'>bonsai</title><content type='html'>I'm an extrovert. I like to talk.&lt;br /&gt;&lt;br /&gt;But sometimes I think that I can go too long. I also think that others do the same.&lt;br /&gt;&lt;br /&gt;I have a thick skin and am not easily offended, but I know that others aren't. People interpret things in ways that upset them, even when that was not the intention.&lt;br /&gt;&lt;br /&gt;Enter &lt;strong&gt;&lt;em&gt;"bonsai"&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;It's a stop word. What I'm suggesting is that this is a substitute for asking someone to stop. But because the recipient can interpret in a way that causes them no offence, then there's no miscommunication.&lt;br /&gt;&lt;br /&gt;It's a benign word that can mean:&lt;br /&gt;- we're off topic now, can you please stop&lt;br /&gt;- I have other important things to do&lt;br /&gt;- I'm not interested&lt;br /&gt;- you're boring me and others&lt;br /&gt;- that's very good information, but we need to keep moving&lt;br /&gt;&lt;br /&gt;Or anything - it's up to the recipient to interpret it in any way that they want. This means that it's less likely to cause an issue. The point is that everyone knows what the purpose of the word is.&lt;br /&gt;&lt;br /&gt;You could use any word that was sensible for you. It's just thought that bonsai was suitable...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115357769769346230?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115357769769346230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115357769769346230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115357769769346230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115357769769346230'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/07/bonsai.html' title='bonsai'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115357694462660499</id><published>2006-07-22T23:52:00.000+10:00</published><updated>2006-07-23T00:02:24.636+10:00</updated><title type='text'>ducks in a row</title><content type='html'>I've got a new team and role at work.&lt;br /&gt;&lt;br /&gt;In the first week, I felt odd - something wasn't quite right. I felt, well, out of control. I couldn't work it out. I've been the lead on two previous projects and I knew that I could manage those. What was it that was giving me that uneasy feeling...?&lt;br /&gt;&lt;br /&gt;On Thursday last week, I worked it out:&lt;br /&gt;&lt;br /&gt;I was blind.&lt;br /&gt;&lt;br /&gt;I couldn't "see" what the project was doing. I could fumble around and get bits of information, but not a decent overview.&lt;br /&gt;&lt;br /&gt;So, I took the project and shook it about. I pushed it until I got what I wanted from it - visibility. I got my &lt;strong&gt;&lt;em&gt;ducks in a row&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;From then on, I've been feeling much better.&lt;br /&gt;&lt;br /&gt;It's amazing how decent reporting has made everything much, much better.&lt;br /&gt;&lt;br /&gt;I wholly recommend that if you're managing a project that you spend some time getting the right information at your fingertips. Once you do that, you'll be much happier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115357694462660499?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115357694462660499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115357694462660499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115357694462660499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115357694462660499'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/07/ducks-in-row.html' title='ducks in a row'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115262145270899303</id><published>2006-07-11T22:27:00.000+10:00</published><updated>2006-07-11T22:43:24.396+10:00</updated><title type='text'>simple things first...</title><content type='html'>I was working on a small financial app the other day (to work out where all my money goes) and I found that I started to struggle to make progress.&lt;br /&gt;&lt;br /&gt;While I was watering the garden, I was mulling over how I was going to get the automatic categorisation and difference between actual and budget amounts working and then &lt;strong&gt;&lt;em&gt;BAM&lt;/em&gt;&lt;/strong&gt;, I suddenly realised that I wasn't starting out with the simplest thing I could do.&lt;br /&gt;&lt;br /&gt;I decided that categorisation could come later, I needed a win and I needed it now. So I decided to just break down all income and expenses by each month and graph that. Easy. Anything with a minus is an expense and anything with a plus is an income. Within an hour I had it working.&lt;br /&gt;&lt;br /&gt;I realised that the power of starting off in a simple way and getting a success is very important to being productive.&lt;br /&gt;&lt;br /&gt;It's amazing how the stuff that you read is true, sometimes you need it to experience it for yourself...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115262145270899303?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115262145270899303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115262145270899303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115262145270899303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115262145270899303'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/07/simple-things-first.html' title='simple things first...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115124383885564911</id><published>2006-06-25T23:52:00.000+10:00</published><updated>2006-06-25T23:57:51.603+10:00</updated><title type='text'>extreme programming adventures in c#</title><content type='html'>Just finished the above book. I quite liked it, although it felt a bit long. I had to force myself to read it as it seemed to be labouring the same point over and over towards the end.&lt;br /&gt;&lt;br /&gt;I'd still recommend a read, however.&lt;br /&gt;&lt;br /&gt;Is it just me, or do technical books that are over 500 pages seem too long? I've read shorter ones and found that I blitzed through them.&lt;br /&gt;&lt;br /&gt;I like books that:&lt;br /&gt;- are short (300 pages or less)&lt;br /&gt;- are very short (100 ish pages)&lt;br /&gt;- have loads of useful stuff in them (this keeps them fresh to the end)&lt;br /&gt;- or cover lots of specific topics so it feels shorter, like the 50 effective tips in C# book.&lt;br /&gt;&lt;br /&gt;So if I ever write a book, I should remember that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115124383885564911?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115124383885564911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115124383885564911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115124383885564911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115124383885564911'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/extreme-programming-adventures-in-c.html' title='extreme programming adventures in c#'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115089537360465047</id><published>2006-06-21T22:58:00.000+10:00</published><updated>2006-06-21T23:15:10.650+10:00</updated><title type='text'>agile cooking!</title><content type='html'>I had to cook dinner tonight as my wife is busy at work.&lt;br /&gt;&lt;br /&gt;And since I had to drop off and pick up the kids it meant that I was under time stress to meet my dinner deadline.&lt;br /&gt;&lt;br /&gt;How to expedite the cooking process? How?&lt;br /&gt;&lt;br /&gt;I knew that I needed the oven hot to cook the frozen delights, but I didn't know the required temp.&lt;br /&gt;&lt;br /&gt;Right, time to be agile!&lt;br /&gt;&lt;br /&gt;Step 1, turn on oven to approx temp&lt;br /&gt;Step 2, search for suitable frozen delights for consumption&lt;br /&gt;Step 3, determine exact temp for cooking and adjust thermostat.&lt;br /&gt;&lt;br /&gt;Fantastic, I dealt with my riskiest concern first, got started with it, then adjusted when I know exactly what I wanted.&lt;br /&gt;&lt;br /&gt;What an analogy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115089537360465047?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115089537360465047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115089537360465047' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115089537360465047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115089537360465047'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/agile-cooking.html' title='agile cooking!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115080752457124414</id><published>2006-06-20T22:44:00.000+10:00</published><updated>2006-08-13T00:34:14.910+10:00</updated><title type='text'>silver bullet</title><content type='html'>I wish that there was one simple thing that I could do to ensure success of my projects.&lt;br /&gt;&lt;br /&gt;I know more than I used to. I read and think and experiment. These things help.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;But there is no one thing that ensures success. There is no silver bullet.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There are lots of things that will help:&lt;br /&gt;- constant feedback&lt;br /&gt;- constant review&lt;br /&gt;- constant planning&lt;br /&gt;- improving communication&lt;br /&gt;&lt;br /&gt;But these are comprised of many more things/techniques. There is so much to consider and each project is different, so your concepts and tools will need to be adapted.&lt;br /&gt;&lt;br /&gt;All I can suggest is to improve your knowledge and experience and talk to anyone that can assist. Ask to anyone that has experience. Ask anyone you respect. Ask anyone anything...&lt;br /&gt;&lt;br /&gt;Don't be surprised if the quietest member of you team holds some gems that can help.&lt;br /&gt;&lt;br /&gt;(If you do have a silver bullet, then please let me know)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115080752457124414?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115080752457124414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115080752457124414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115080752457124414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115080752457124414'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/silver-bullet.html' title='silver bullet'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115055310509249236</id><published>2006-06-18T00:04:00.000+10:00</published><updated>2006-07-23T00:14:19.863+10:00</updated><title type='text'>management overhead</title><content type='html'>A while back I was asked if the effort expended to determine your progress/position in a project was worthwhile.&lt;br /&gt;&lt;br /&gt;Well...&lt;br /&gt;&lt;br /&gt;In almost all cases the answer is &lt;strong&gt;&lt;em&gt;YES&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;If you don't measure/review, then you cannot know if you're moving in the right direction. I won't bore you with an analogy of a boat a sea without a GPS... I'm sure you can imagine that.&lt;br /&gt;&lt;br /&gt;So how do you determine how you're going? This is really something that is different from project to project, but assuming that you've got a project goal, you can assess your position against that. You &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt; have a project goal, right?&lt;br /&gt;&lt;br /&gt;An I'm assuming that from your goal you've worked out milestones? Yes, of course you have. So all you have to do is work out how you'll move from milestone to milestone, all the wile moving in the direction of your goal.&lt;br /&gt;&lt;br /&gt;Easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115055310509249236?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115055310509249236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115055310509249236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055310509249236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055310509249236'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/management-overhead.html' title='management overhead'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115055228006801153</id><published>2006-06-17T23:50:00.000+10:00</published><updated>2006-06-18T00:15:27.220+10:00</updated><title type='text'>2.5 times</title><content type='html'>The above number is the cost factor of making mistakes.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, mistakes equate to experience. And experience is very important.&lt;br /&gt;&lt;br /&gt;But if possible, avoiding mistakes/moving in the wrong direction can save you 2.5 times the time.&lt;br /&gt;&lt;br /&gt;Why? Here's an example:&lt;br /&gt;&lt;br /&gt;Suppose I work on a task, like the one described in the previous post and it's something that the customer didn't want. It takes me 1 day to complete it.&lt;br /&gt;&lt;br /&gt;The real cost of this is:&lt;br /&gt;- 1 day to implement the unnecessary feature/mistake&lt;br /&gt;- 1 day lost of not implementing required features&lt;br /&gt;- 0.5 days of context switching and clean up&lt;br /&gt;&lt;br /&gt;So it cost me 2.5 days.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Ouch.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In a sprint, that's a lot of time lost.&lt;br /&gt;&lt;br /&gt;Now I must tell you &lt;strong&gt;&lt;em&gt;not to &lt;/em&gt;&lt;/strong&gt;have fear of doing anything in case it's wrong. This is not the point of this post. It's really about making you aware of the cost of doing the wrong thing, implementing an unnecessary feature, or working for too long without feedback from your customer.&lt;br /&gt;&lt;br /&gt;How do you remove the fear? Always discuss what you're doing and how you're going with your customer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;COMMUNICATION. &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This will help you stay on track and improve your development velocity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115055228006801153?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115055228006801153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115055228006801153' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055228006801153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055228006801153'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/25-times.html' title='2.5 times'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115055225481700746</id><published>2006-06-17T23:47:00.000+10:00</published><updated>2006-06-17T23:54:57.986+10:00</updated><title type='text'>customer on site</title><content type='html'>I was reminded how important this was the other day. I was fixing a bug and noticed that when the grid was refreshed that the grouped sections that were collapsed would re-open.&lt;br /&gt;&lt;br /&gt;Right, I figured that the list should be in &lt;strong&gt;&lt;em&gt;exactly&lt;/em&gt;&lt;/strong&gt; the same state as it was prior to the refresh. Luckily, my customer was there for me to ask.&lt;br /&gt;&lt;br /&gt;I showed him that the grid re-opened the collapsed sections on a refresh and I asked him should I ensure that they stayed collapsed. He said no, it &lt;strong&gt;&lt;em&gt;should&lt;/em&gt;&lt;/strong&gt; open them. That way, any entries picked up in the refresh would not potentially be hidden.&lt;br /&gt;&lt;br /&gt;Great. This is communication!&lt;br /&gt;&lt;br /&gt;It's just a pity that he's not always on site. Bring on the "on site" customer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115055225481700746?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115055225481700746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115055225481700746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055225481700746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055225481700746'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/customer-on-site.html' title='customer on site'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-115055190398167389</id><published>2006-06-17T23:28:00.000+10:00</published><updated>2006-06-17T23:47:10.926+10:00</updated><title type='text'>goal, goal, goal!</title><content type='html'>Yep, I stayed up on Monday to watch Australia play Japan. I'm not much of a soccer fan, but I really enjoyed the game. But this post is not about that.&lt;br /&gt;&lt;br /&gt;I believe that in order to have a productive team one thing is important:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Communication.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Simple really.&lt;br /&gt;&lt;br /&gt;Actually, it's not.&lt;br /&gt;&lt;br /&gt;Lack of clear communication is the reason that things do not go as expected.&lt;br /&gt;&lt;br /&gt;There are many techniques that can help communication and this post is about one: &lt;strong&gt;&lt;em&gt;goals&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Goals allow all involved parties to understand where they are heading and what defines completion. Without goals you have no idea of direction or when you're done. Goals are very important.&lt;br /&gt;&lt;br /&gt;Here's a simple plan:&lt;br /&gt;1. define an overall goal that describes the desired result.&lt;br /&gt;2. define sub goals that help you determine checkpoints to ensure that you're on the right path&lt;br /&gt;3. measure progress against the goals&lt;br /&gt;4. determine if the goals are sufficient to help you deliver, if not, define better goals&lt;br /&gt;&lt;br /&gt;This way, you know what you're trying to achieve and you can determine how you're progressing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-115055190398167389?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/115055190398167389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=115055190398167389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055190398167389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/115055190398167389'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/goal-goal-goal.html' title='goal, goal, goal!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114976812194196172</id><published>2006-06-08T21:58:00.000+10:00</published><updated>2006-06-08T22:03:34.746+10:00</updated><title type='text'>yay</title><content type='html'>It's my birthday today. I'm now 34.&lt;br /&gt;&lt;br /&gt;You'd think that that is a mature age, wouldn't you?&lt;br /&gt;&lt;br /&gt;If I'm soooooo mature, then why did I just spent over $200 on fireworks?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oh. &lt;br /&gt;Right. &lt;br /&gt;Because I &lt;strong&gt;&lt;em&gt;like&lt;/em&gt;&lt;/strong&gt; fireworks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114976812194196172?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114976812194196172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114976812194196172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114976812194196172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114976812194196172'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/yay.html' title='yay'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114951215812659135</id><published>2006-06-05T22:52:00.000+10:00</published><updated>2006-06-05T22:55:58.126+10:00</updated><title type='text'>footy!</title><content type='html'>I went to the Swans v Roos game on Sunday.&lt;br /&gt;&lt;br /&gt;I can't say that the Swans played a good game, but they managed to get home. The highlight was seeing Hall and O'Loughlin kick goals from over their shoulders.&lt;br /&gt;&lt;br /&gt;Great fun.&lt;br /&gt;&lt;br /&gt;It's a pity that more (Swans) games don't make it to Canberra.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114951215812659135?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114951215812659135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114951215812659135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114951215812659135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114951215812659135'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/footy.html' title='footy!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114951043305406900</id><published>2006-06-05T22:19:00.000+10:00</published><updated>2006-06-05T22:51:57.626+10:00</updated><title type='text'>boxing</title><content type='html'>I'm a big fan of OO.&lt;br /&gt;&lt;br /&gt;Yup, &lt;strong&gt;&lt;em&gt;BIG FAN&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;So, I always like to do things in an OO way. This includes things writing statements like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;object1.Equals(object2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:georgia;"&gt;in preference to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;object1 == object2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But I recently discovered that this will cause boxing if either &lt;span style="font-family:courier new;"&gt;object1&lt;/span&gt; or &lt;span style="font-family:courier new;"&gt;object2&lt;/span&gt; is a value type. And we should all try to avoid boxing.&lt;br /&gt;&lt;br /&gt;Another subtle boxing issue can be in the form of:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MessageBox.Show("Today's Date: " + DateTime.Now);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this statement, the DateTime value has to be boxed to allow it to be appended to the string. The way to avoid this is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MessageBox.Show("Today's Date: " + DateTime.Now.ToString());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simple really. This is the same for all Value Types.&lt;br /&gt;&lt;br /&gt;If you want to know if there is boxing in your application, then use either ILDASM or Reflector and look for a box call in the IL. I don't know of a tool that will scan all of your files for boxing. I'm sure that there's gotta be one out there...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114951043305406900?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114951043305406900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114951043305406900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114951043305406900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114951043305406900'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/06/boxing.html' title='boxing'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114890423523045040</id><published>2006-05-29T21:46:00.000+10:00</published><updated>2006-05-29T22:05:13.173+10:00</updated><title type='text'>energised</title><content type='html'>I spent some time talking with &lt;a href="http://www.notgartner.com/"&gt;Mitch&lt;/a&gt; today.   &lt;br /&gt;&lt;br /&gt;Over cuppacinos, we chatted about processes, team dynamics, ideas, techniques and general development issues.  &lt;br /&gt;&lt;br /&gt;I could have gone on forever.  This is the stuff I like.  &lt;br /&gt;&lt;br /&gt;If only I'd put more money in the parking meter...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114890423523045040?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114890423523045040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114890423523045040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114890423523045040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114890423523045040'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/energised.html' title='energised'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114890308543668348</id><published>2006-05-29T21:09:00.000+10:00</published><updated>2006-05-29T21:46:34.386+10:00</updated><title type='text'>d'oh!</title><content type='html'>I like Test Driven Development (TDD).&lt;br /&gt;&lt;br /&gt;I was starting on a small application the other day.  So, I added a reference to NUnit, added a class to my new Windows Application and wrote my first test.  Compile.&lt;br /&gt;&lt;br /&gt;Now, over to NUnit to execute it...&lt;br /&gt;&lt;br /&gt;Where is my test?  I can't find it.&lt;br /&gt;&lt;br /&gt;Right, I check the code.   Yep, the appropriate NUnit attributes are there.  What's going on?  I double check the code and then back to NUnit.  Rebuild, Reload.  Rebuild, Reload.  Still nothing.&lt;br /&gt;&lt;br /&gt;Hmmm...&lt;br /&gt;&lt;br /&gt;OK, I &lt;em&gt;&lt;strong&gt;know&lt;/strong&gt;&lt;/em&gt; that I have gotten this working before.  &lt;br /&gt;&lt;br /&gt;I have a small DLL that I have tests in.  Open it in NUnit.  Tests are there.  Strange.&lt;br /&gt;&lt;br /&gt;I create a new Class Library application.  I write a test in it.  Over to NUnit.  It's there.  Arrrggghhhh!!&lt;br /&gt;&lt;br /&gt;Back to my Windows Application.  &lt;br /&gt;&lt;br /&gt;It's then I notice that there is no accessibility modifier on the class.  I just &lt;em&gt;&lt;strong&gt;assumed&lt;/strong&gt;&lt;/em&gt; that it was public.  I add a public modifier, rebuild and over to NUnit.&lt;br /&gt;&lt;br /&gt;Test appears.  &lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;D'oh!&lt;/strong&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114890308543668348?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114890308543668348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114890308543668348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114890308543668348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114890308543668348'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/doh.html' title='d&apos;oh!'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114813019558028704</id><published>2006-05-20T22:52:00.000+10:00</published><updated>2006-05-20T23:04:14.626+10:00</updated><title type='text'>right of review</title><content type='html'>I do a fair bit of peer review at work.  &lt;br /&gt;It's not fair.  &lt;br /&gt;It's easy to look at something that's &lt;em&gt;there&lt;/em&gt; and find holes, or make suggestions.&lt;br /&gt;I don't like doing it...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But part of me &lt;em&gt;&lt;strong&gt;does&lt;/strong&gt;&lt;/em&gt;.&lt;br /&gt;It's the part that wants to help others.  I'm able to add my input to the code to help the developer see what they could do better.  This is a great way to share techniques and improve code quality. &lt;br /&gt;&lt;br /&gt;One thing that I think really helps your own code is to write it and then review it yourself.  This way, you can get something working and then make it better.&lt;br /&gt;&lt;br /&gt;This is all part of XP/Agile.  &lt;br /&gt;Get something down.  &lt;br /&gt;See how it works.  &lt;br /&gt;Look for improvements.  &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Discover&lt;/strong&gt;&lt;/em&gt; the design.  &lt;br /&gt;Only do what needs to be done.  &lt;br /&gt;Don't borrow trouble from the future.&lt;br /&gt;Stop when it's good enough...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114813019558028704?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114813019558028704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114813019558028704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114813019558028704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114813019558028704'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/right-of-review.html' title='right of review'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114795817970012926</id><published>2006-05-18T22:56:00.000+10:00</published><updated>2006-05-18T23:17:47.866+10:00</updated><title type='text'>tools or techniques</title><content type='html'>I saw a demonstration of a code gen tool today.  It was quite good.  But I think that code gen is both a good and bad thing.  &lt;br /&gt;&lt;br /&gt;One reason that I do like it is that it can save you an amazing amount of time.  And deliver other benefits you may not have thought of, like auto generating doco and unit tests.&lt;br /&gt;&lt;br /&gt;One reason that I don't like it is that you &lt;em&gt;can&lt;/em&gt; spend an awlful amount of time getting it to generate the code that you want, and it puts in another layer into the design/feedback cycle.  &lt;br /&gt;&lt;br /&gt;But that is the point of this post - the code gen tool is potentially fantastic for development and it's also potentially bad for getting your application completed.&lt;br /&gt;&lt;br /&gt;So the question is: If you have a really flexible tool, something like code gen, or even C#, is it that the tool is good, or is it how you use it?&lt;br /&gt;&lt;br /&gt;I believe that you have to know how to leverage the tool to get the most out of it.  This goes for code gen and development.  Techniques will make you a better programmer.  Knowing &lt;strong&gt;where&lt;/strong&gt; to put a function can make an amazing difference to your application...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114795817970012926?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114795817970012926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114795817970012926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114795817970012926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114795817970012926'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/tools-or-techniques.html' title='tools or techniques'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114769723944380981</id><published>2006-05-15T22:23:00.000+10:00</published><updated>2006-05-15T22:57:36.466+10:00</updated><title type='text'>be explicit</title><content type='html'>Another tip for better coding:&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Always be explicit in your code.&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Why?  Well, consider this example.  I was working on an application that required that the order of the rows in a grid that had been sorted and grouped be in sync with the order of the same results in an arraylist.&lt;br /&gt;&lt;br /&gt;The current version of the code reacted to events from the grid to re-sort the Arraylist.  Good.  Except that when the grid was grouped, the arraylist wasn't being sorted correctly. :P&lt;br /&gt;&lt;br /&gt;Two options (of several more...)&lt;br /&gt;1. Find all of the events and ensure that the arraylist is synchronized each time the event fires.&lt;br /&gt;2.  Define points where I need the arraylist to be in sync with the grid and sync then.&lt;br /&gt;&lt;br /&gt;I chose #2.  Why?:&lt;br /&gt;I know when I need the arraylist to be in sync and so I force it to be.  Therefore I am being &lt;em&gt;&lt;strong&gt;explicit&lt;/strong&gt;&lt;/em&gt; about what state I need the data to be in.  Relying on the events to sort the ArrayList is implicit.  This means that I can never be sure that the order is correct unless I check it is.   That's just a bomb waiting to go off.&lt;br /&gt;&lt;br /&gt;Synchronizing in my function is similar to a &lt;em&gt;&lt;strong&gt;precondition&lt;/strong&gt;&lt;/em&gt;.  This is a step in the right direction.  My code required that the list was in order and I made it so.  Therefore I ensured that the precondition was met in the function that needed it to be.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sample Code:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;private void OpenSelectedItem()&lt;br /&gt;{&lt;br /&gt;        SyncArrayListWithGrid();&lt;br /&gt;    &lt;br /&gt;        OpenSelectedItemInBrowser();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now for simplicity's sake, I've ignored the implicit coupling (I'll post on this later).  And yes, those are the names of my functions.  If you don't like em, tell me why.  I'd love to discuss coding styles/techniques with you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114769723944380981?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114769723944380981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114769723944380981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114769723944380981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114769723944380981'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/be-explicit.html' title='be explicit'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114744116764624714</id><published>2006-05-12T23:34:00.000+10:00</published><updated>2006-05-12T23:40:03.796+10:00</updated><title type='text'>it's finally happened</title><content type='html'>Today.  About 3pm.  I was heard to say "w00t!, w00t!, w00t!".&lt;br /&gt;&lt;br /&gt;I'd resisted for so long.  &lt;br /&gt;&lt;br /&gt;The utterance of these three words has such a serious meaning.  I'm now Fully Geek.&lt;br /&gt;&lt;br /&gt;And yes, the occasion did demand it.  You try to work out why your data binding isn't working when someone had overloaded the standard Data Binding properties and implemented their own form of it and me without a clue that they'd done it.  So, after I'd uncovered this and got it working (although a refactoring is yet to come), I said those three words.&lt;br /&gt;&lt;br /&gt;w00t.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114744116764624714?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114744116764624714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114744116764624714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114744116764624714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114744116764624714'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/its-finally-happened.html' title='it&apos;s finally happened'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114735085226854946</id><published>2006-05-11T22:18:00.000+10:00</published><updated>2006-05-12T23:41:25.976+10:00</updated><title type='text'>oo vs oh-oh?</title><content type='html'>I had a discussion today with a guy at work about a point in David West's book, &lt;a href="http://www.amazon.com/gp/product/0735619654/sr=8-1/qid=1147349842/ref=pd_bbs_1/103-9014571-6015837?%5Fencoding=UTF8"&gt;Object Thinking&lt;/a&gt;. The lines in question were something like:&lt;br /&gt;&lt;br /&gt;"If you wrote a well designed OO functional equivalent version of an application that was written by a programmer that didn't understand OO, then the number of lines in the application would be at least one order of magnitude less, perhaps two. In addition, the time to market would be at least 50% less, perhaps 70% less."&lt;br /&gt;&lt;br /&gt;His point was that this statement was unqualified. I'd agree. But when I read the book, I never really worried about that - as I believe that a proper OO program would definitely have significantly less lines than a regular program.&lt;br /&gt;&lt;br /&gt;I have done some bug fixing and then refactoring (yes, they should be separate activities) and removed an amazing amount of code. All this without removing functionality and improving quality, simplicity, readability, robustness and reuse (At least I hope I did!). All by following simple OO concepts.&lt;br /&gt;&lt;br /&gt;I tend to go on about this, but Duplication in all forms is your enemy. Blatantly obvious duplication is an issue, but you have to keep you eye out for functional duplication as well.&lt;br /&gt;&lt;br /&gt;For example, suppose that you wanted to copy a set of phone numbers from an object &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;obj&lt;/span&gt;&lt;/span&gt; that allowed them to be 30 characters to another that only allowed them to be 15:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;em&gt;obj1&lt;/em&gt;.homephonenumber = &lt;em&gt;obj2&lt;/em&gt;.homephonenumber.tostring().substring(0,15);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;em&gt;obj1&lt;/em&gt;.workphonenumber = &lt;em&gt;obj2&lt;/em&gt;.workphonenumber.tostring().substring(0,15);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;em&gt;obj1&lt;/em&gt;.mobilephonenumber = &lt;em&gt;obj2&lt;/em&gt;.mobilephonenumber.tostring().substring(0,15);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is an example of functional duplication. This should be changed to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;em&gt;obj1&lt;/em&gt;.homephonenumber = NumberHelper.ConvertToOldFormat(&lt;em&gt;obj2&lt;/em&gt;.homephonenumber);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;em&gt;obj1&lt;/em&gt;.workphonenumber = NumberHelper.ConvertToOldFormat(&lt;em&gt;obj2&lt;/em&gt;.workphonenumber);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;em&gt;obj1&lt;/em&gt;.mobilephonenumber = NumberHelper.ConvertToOldFormat(&lt;em&gt;obj2&lt;/em&gt;.mobilephonenumber);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And depending upon the hierarchy of the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;obj&lt;/span&gt;&lt;/span&gt; object, the function &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ConvertToOldFormat&lt;/span&gt;&lt;/span&gt; could be placed upon &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;obj&lt;/span&gt;&lt;/span&gt;'s parent.&lt;br /&gt;&lt;br /&gt;Now for the reasons:&lt;br /&gt;- the ConvertToOldFormat function is now testable via NUnit or similar&lt;br /&gt;- the code is more readable&lt;br /&gt;- the ConvertToOldFormat function could be re-used anywhere that the functionality is required&lt;br /&gt;- the intent of the code is obvious&lt;br /&gt;- if the rules regarding the convert process change, then there is only one place where it has the be changed&lt;br /&gt;- the result of the ConvertToOldFormat function is consistent&lt;br /&gt;- you can add preconditions, postconditions and invariants to the NumberHelper object to make your code more robust&lt;br /&gt;- others will marvel at you abilities&lt;br /&gt;&lt;br /&gt;There are so many opportunities when writing code to make these kind of choices - added together, your application can be so much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114735085226854946?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114735085226854946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114735085226854946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114735085226854946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114735085226854946'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/oo-vs-oh-oh.html' title='oo vs oh-oh?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114734985297926999</id><published>2006-05-11T22:10:00.000+10:00</published><updated>2006-05-11T22:17:53.506+10:00</updated><title type='text'>wow, you thought of me?</title><content type='html'>My boss just got back from a two week trip to the US to check out how we are placed against the industry and to have a look at Microsoft. That's cool - but what really impressed me is that he brought me back a present: a business card from the Pike Fish Place Market. Thanks Shaun.&lt;br /&gt;&lt;br /&gt;For those that have read &lt;a href="http://www.amazon.com/gp/product/0786866020/sr=8-1/qid=1147349515/ref=pd_bbs_1/103-9014571-6015837?%5Fencoding=UTF8"&gt;"Fish!"&lt;/a&gt;, you'll know what this place is.&lt;br /&gt;&lt;br /&gt;For those that haven't - I guess it'll just remain a mystery...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114734985297926999?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114734985297926999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114734985297926999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114734985297926999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114734985297926999'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/wow-you-thought-of-me.html' title='wow, you thought of me?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114726874332665054</id><published>2006-05-10T23:40:00.000+10:00</published><updated>2006-05-10T23:46:12.093+10:00</updated><title type='text'>big thanks to Eddie...</title><content type='html'>I really like working with &lt;a href="http://http://eddiedebear.blogspot.com/"&gt;Eddie&lt;/a&gt;. He knows stuff. Lots of stuff. Ask him a question - I bet he can answer it.&lt;br /&gt;&lt;br /&gt;I do not understand how he has such a broad grasp of the framework and the industry...&lt;br /&gt;&lt;br /&gt;Thanks for the help today - you turned a task that would take me a couple of days of investigation to get going into an afternoon of fun.&lt;br /&gt;&lt;br /&gt;I didn't think that control customization could be easy - but it is with an experienced guide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114726874332665054?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114726874332665054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114726874332665054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114726874332665054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114726874332665054'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/big-thanks-to-eddie.html' title='big thanks to Eddie...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114726833809257740</id><published>2006-05-10T23:29:00.000+10:00</published><updated>2006-05-11T22:18:31.616+10:00</updated><title type='text'>first and second steps to being a better developer</title><content type='html'>Two things that are important if you want to be a better developer:&lt;br /&gt;#1 - Avoid Duplication.&lt;br /&gt;As simple as that. There are very few excuses for duplication in code. Removal of duplication is important for so many reasons. Firstly, consistent behavior, secondly, better design. Yes, almost any attempt to remove duplication should move you into a better design position. And it allows you to improve your design easier if necessary. Do not repeat yourself. Do NOT repeat yourself.&lt;br /&gt;&lt;br /&gt;#2 - Become a Better Tester.&lt;br /&gt;Yup, a tester. I worked with a colleague years ago who was (and probably still is) a better tester than I. I helped her get her code working, as it was a bit of mess, but hey, we all do that sometimes. She tested it. Comes to review time and management love her. Me, not so much. Moral to this story: Code quality is important, very important, but being a better tester and a better dev makes you and your area work better. Management will &lt;strong&gt;&lt;em&gt;love&lt;/em&gt;&lt;/strong&gt; that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114726833809257740?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114726833809257740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114726833809257740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114726833809257740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114726833809257740'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/first-and-second-steps-to-being-better.html' title='first and second steps to being a better developer'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-114666039881065237</id><published>2006-05-03T22:27:00.000+10:00</published><updated>2006-05-10T23:51:37.943+10:00</updated><title type='text'>where have I been?</title><content type='html'>I really have no excuse for not posting.&lt;br /&gt;&lt;br /&gt;Lazy? - Yep.&lt;br /&gt;Too Busy? - Yep.&lt;br /&gt;Other Things To Do? - Yep.&lt;br /&gt;&lt;br /&gt;Well, I guess that's three excuses.&lt;br /&gt;&lt;br /&gt;Anyway, what have I been up to since I last posted:&lt;br /&gt;- Went to Code Camp with some guys from work - Dave, &lt;a href="http://eddiedebear.blogspot.com/"&gt;Eddie&lt;/a&gt;, Jenny, Richard and Paul. That was great. I got to catch up on what's over the horizon and even closer. And saw some old chums, &lt;a href="http://www.notgartner.com/"&gt;Mitch&lt;/a&gt;, &lt;a href="http://blogs.crankygoblin.com/blogs/geoff.appleby/"&gt;Geoff&lt;/a&gt;, Darren and more...&lt;br /&gt;&lt;br /&gt;- I've been reading. A lot. The list since I last posted is:&lt;br /&gt;"Head First Design Patterns"&lt;br /&gt;"Extreme Programming Explained"&lt;br /&gt;"Pragmatic Unit Testing in C# and NUnit"&lt;br /&gt;"Refactoring to Patterns"&lt;br /&gt;"Agile Project Management with Scrum&lt;br /&gt;"The Design of Everyday Things"&lt;br /&gt;"Test Driven Development in Microsoft .Net"&lt;br /&gt;"Six Habits of Highly Effective Bosses"&lt;br /&gt;"The On Time, On Target Manager"&lt;br /&gt;And I'm in progress on:&lt;br /&gt;"Design Patterns"&lt;br /&gt;"Extreme Programming Adventures in C#"&lt;br /&gt;"About Face 2.0: The Essentials of Interaction Design"&lt;br /&gt;Almost all of them were great, some of them not so much, but generally worthwhile.&lt;br /&gt;&lt;br /&gt;- I've been busy at work. I been dev team lead on two projects so far, both successful. It's great to get Agile process in place and see how they just &lt;em&gt;work&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;- I've got people at work more interested in improving their skills and lending books to anyone that is interested.&lt;br /&gt;&lt;br /&gt;I think that's about it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-114666039881065237?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/114666039881065237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=114666039881065237' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114666039881065237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/114666039881065237'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2006/05/where-have-i-been.html' title='where have I been?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-113608635415739521</id><published>2006-01-01T14:22:00.000+11:00</published><updated>2006-01-02T16:38:41.123+11:00</updated><title type='text'>reducing the cost of change</title><content type='html'>Since my last post I have decided to re-order my tenets of good coding.&lt;br /&gt;&lt;br /&gt;The new number one is:&lt;br /&gt;REDUCE THE COST OF CHANGE&lt;br /&gt;&lt;br /&gt;All others are still very important, but this ideal is important for several reasons:&lt;br /&gt;- it gives you a guiding principle to work towards&lt;br /&gt;- it allows you to work faster&lt;br /&gt;- it makes the politics behind business easier&lt;br /&gt;- it requires most coding best practices to work&lt;br /&gt;&lt;br /&gt;So, because of all of these points I think it's a great way to direct developers to write better code.&lt;br /&gt;&lt;br /&gt;Let me elaborate on my points listed above:&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It gives you a guiding principle to work towards&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;If you keep this principle in mind, the decisions required to implement functionality become clear. An example: Suppose that you need to add just one more step to a function. The easy way is to just add the code to the current function. Hmm? No, that doesn't seem right. Surely a separate function that executes the new logic that is called from the other function is a better idea. Why? Well because you have abstracted the execution of the function and if named appropriately then there's even no need for comments. As a bonus you get reuseability and testability.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It allows you to work faster&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;OK, another example: I was working on something that had to save data from a new application that allowed more data (30 chars) then the old (15 chars). I assumed that the business would want me to save whatever would fit in the 15 chars from the 30. So I worth a small function that did just that and called it from all appropriate places. I had also asked the business to determine exactly what had to be done. They decided that I should only save the data where it was 15 characters or less. No big issue - I just changed the one function and it all worked. As the cost of change was quite low, I was able to assume what was necessary and continue, whilst waiting for the business to decide. If I had got it right, then great, if not, then it's easy to change.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It makes the politics behind business easier&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;This happens to all of us - the management want the application done &lt;em&gt;now&lt;/em&gt; and you know that to do it that quickly will compromise design. So what do you do? Implement the functionality, ensuring that you have reduced the cost of change as much as possible - that way if you need to work with the code later, it will be easy to extend.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;It requires most coding best practices to work &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;How do you reduce the cost of change? Well, the simplest answer to that is to write small discrete functions/classes that are single purpose. Use abstraction and encapsulation to reduce coupling and allow re-use. This will also mean that your code will be more (unit) testable. I could write oodles of stuff on best practices - but there are lots of great sites/blogs out there already.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oh - happy new year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-113608635415739521?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/113608635415739521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=113608635415739521' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113608635415739521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113608635415739521'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/12/reducing-cost-of-change.html' title='reducing the cost of change'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-113413077396518624</id><published>2005-12-09T23:00:00.000+11:00</published><updated>2005-12-09T23:22:37.290+11:00</updated><title type='text'>Less vs Simple</title><content type='html'>We had a discussion the other day about whether simple is better than less. I always believe that the simpler the code, the better. To write simple code is a glorious thing. You will be praised by your successors and revered for understanding the tenets of good coding. Your peers will respect you and girls will find you attractive. Well, maybe not the girl bit, but the others will follow.&lt;br /&gt;&lt;br /&gt;What are the tenets of good coding? &lt;em&gt;&lt;span style="font-size:85%;"&gt;(I reserve the right to change and reprioritise, based upon my current beliefs)&lt;/span&gt;&lt;/em&gt; :&lt;br /&gt;1. Avoid duplication&lt;br /&gt;2. Write testable functions&lt;br /&gt;3. Aim for Simplicity&lt;br /&gt;4. Reduce the cost of change&lt;br /&gt;&lt;br /&gt;Now each one of these is a complete post in itself. And they require quite a bit of discussion for the intent of the statement is understood. I believe that to truly understand these guidelines you mush be &lt;strong&gt;&lt;em&gt;switched on&lt;/em&gt;&lt;/strong&gt;. The catch is that the switch is different for everyone.&lt;br /&gt;&lt;br /&gt;A while ago I posted about an epiphany that I had. That was referring to the understanding just how important unit tests really are. It was one simple statement that a peer had said that stopped me in my tracks. I just got it. There were even more benefits than I realised at the time and further research and experience has taught me those.&lt;br /&gt;&lt;br /&gt;From then on I always feel exposed when I'm writing functions that are not the subject of unit tests. Actually, the discussion of unit test is worthy of a complete other post as well. And covered under tenet #2.&lt;br /&gt;&lt;br /&gt;Now you're looking for the meaty bit - the examples. Well, I'll get to those, but for now this is just something that I had to say to start the process. Soon, I'll post more on each of these topics and more.&lt;br /&gt;&lt;br /&gt;Believe me when I say that I'm opinionated...&lt;br /&gt;&lt;br /&gt;Oh, and if you're wondering if we won the Grand Final, mentioned in the last post, then yes we did.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-113413077396518624?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/113413077396518624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=113413077396518624' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113413077396518624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113413077396518624'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/12/less-vs-simple.html' title='Less vs Simple'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-113334955849252245</id><published>2005-11-30T22:02:00.000+11:00</published><updated>2005-11-30T22:31:40.543+11:00</updated><title type='text'>stuff and things</title><content type='html'>Haven't posted in a while, so I'll combine a few things in this one...&lt;br /&gt;&lt;br /&gt;I went to the launch party tonight for VS 2005. I met a few people and can now put bodies to blogs. &lt;a href="http://blogs.msdn.com/frankarr/"&gt;Frank&lt;/a&gt;, I'm impressed that you knew the name of my blog! I, along with &lt;a href="http://eddiedebear.blogspot.com/"&gt;Eddie&lt;/a&gt; and &lt;a href="http://codebetter.com/blogs/geoff.appleby/default.aspx"&gt;Geoff&lt;/a&gt; "won" copies of VS2005, SQL Server 2005 and Biztalk Server 2006. &lt;strong&gt;&lt;em&gt;w00t!&lt;/em&gt;&lt;/strong&gt; (although I don't really know what that means)&lt;br /&gt;&lt;br /&gt;I bought Paul Mac's latest album "Panic Room" recently - it's really good. If you liked his first one, then I wholly recommend that you get it.&lt;br /&gt;&lt;br /&gt;We had a major release last night. After a long time in development and a change in management, we got it out and apart from a few small issues, it all went well. This is part of the reason that I haven't posted in a while...&lt;br /&gt;&lt;br /&gt;I play in an indoor cricket team on Tuesday nights. We're called "Warwick Todd VIII". We won the game last night and are now into the grand final next week. Hope we win.&lt;br /&gt;&lt;br /&gt;We have been playing on and off (but mostly on) for about 10 years now. No, that doesn't mean that we're any good. I think that we're going to call our team "Preston's Brothers Brand" next season. I could explain it to you, but trust me you don't want to know.&lt;br /&gt;&lt;br /&gt;I've also read a few more books recently, One Minute Manager, Fish! and am half way through Refactoring to Patterns.&lt;br /&gt;&lt;br /&gt;Reviews:&lt;br /&gt;One Minute Manager - An easy read and seems to (mostly) make sense. It was originally written in the late '70s, and the reprimand concept using emotions seems a bit dated. But what do I know. Although I agree completely with the praise and goal definition concepts.&lt;br /&gt;&lt;br /&gt;Fish! - Nice story, but I don't think that it's that simple. Also an easy read.&lt;br /&gt;&lt;br /&gt;Refactoring to Patterns - Very dry in places. Which is a pity. There are some great patterns in this book. The author has a great respect for Martin Fowler. I just wish he'd used his or Kent Beck's writing style. Those guys were much easier to read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-113334955849252245?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/113334955849252245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=113334955849252245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113334955849252245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113334955849252245'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/11/stuff-and-things.html' title='stuff and things'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-113024264131237901</id><published>2005-10-25T22:15:00.000+10:00</published><updated>2005-10-25T22:17:21.316+10:00</updated><title type='text'>bit late, but still</title><content type='html'>I have finished Test Driven Development: By Example.   This is a very good book about TDD.  I highly recommend that you read this one if you're interested in TDD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-113024264131237901?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/113024264131237901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=113024264131237901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113024264131237901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/113024264131237901'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/10/bit-late-but-still.html' title='bit late, but still'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112782586229484052</id><published>2005-09-27T22:49:00.000+10:00</published><updated>2005-09-27T22:57:42.306+10:00</updated><title type='text'>rebel without a clue?</title><content type='html'>I used to not want to be a geek.  I wouldn't read technical books, nor technical websites.  I played with computers after work, but it was just that, playing.&lt;br /&gt;&lt;br /&gt;A little while ago, probably about the time when I started this blog, I decided that I could ignore it no longer.  So I got hold of some books and started reading.  And reading blogs and accepting that to be better at my job that I need to improve.&lt;br /&gt;&lt;br /&gt;So, I've read about 6 books since then and have a stack on my shelf of about 6 more.  Then I'll be onto amazon to get some more.&lt;br /&gt;&lt;br /&gt;Why am I telling you this?  Well, because I discovered just how easy and important it is to do this.&lt;br /&gt;&lt;br /&gt;I'm realising that in the last 12 months I've learned so much and found proof that some of my crazy ideas weren't crazy.  In fact, they were pretty good *blows on nails and polishes on shirt* ;)&lt;br /&gt;&lt;br /&gt;If only I'd started this earlier...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112782586229484052?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112782586229484052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112782586229484052' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112782586229484052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112782586229484052'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/09/rebel-without-clue.html' title='rebel without a clue?'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112713389938956351</id><published>2005-09-19T22:41:00.000+10:00</published><updated>2005-09-19T22:46:47.956+10:00</updated><title type='text'>bam! one more</title><content type='html'>I have just finished "eXtreme .NET - introducing eXtreme programming techniques to .NET developers" by Dr Neil Roodyn.&lt;br /&gt;&lt;br /&gt;It's quite a good introduction into the art of agile project methodologies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112713389938956351?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112713389938956351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112713389938956351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112713389938956351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112713389938956351'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/09/bam-one-more.html' title='bam! one more'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112345882389380695</id><published>2005-08-08T09:48:00.000+10:00</published><updated>2005-08-08T09:57:21.340+10:00</updated><title type='text'>and another one down</title><content type='html'>I've just finished reading "Object Thinking" by David West. Quite an interesting read. He proposes that the true intent of OO has been misinterpreted by many and that the true path will set you free...&lt;br /&gt;&lt;br /&gt;If anyone else has read it, I'd love a chat about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112345882389380695?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112345882389380695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112345882389380695' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112345882389380695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112345882389380695'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/08/and-another-one-down.html' title='and another one down'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112103956755388209</id><published>2005-07-11T09:47:00.000+10:00</published><updated>2005-07-11T09:54:29.093+10:00</updated><title type='text'>another one down...</title><content type='html'>I just finished reading "Effective C#: 50 specific ways to improve your C#" by Bill Wagner. Definitely worth a read. Not too long, and each point is only several pages so you can just read a bit and put it away, read a bit and put it away, read a bit, and - you get the picture.&lt;br /&gt;&lt;br /&gt;I've started Refactoring by Martin Fowler. Seems like another great book.&lt;br /&gt;&lt;br /&gt;I really wish I'd started reading these much earlier in my career. Although I'm finding that a lot of what I'm reading I'd already picked up from other sources, but it's nice to read a comprehensive coverage of each topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112103956755388209?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112103956755388209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112103956755388209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112103956755388209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112103956755388209'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/07/another-one-down.html' title='another one down...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112069171086405641</id><published>2005-07-07T09:11:00.000+10:00</published><updated>2005-07-07T09:15:37.663+10:00</updated><title type='text'>more is more</title><content type='html'>We've recently had seven people join our team. We recently only had 5 full time developers in our team, so that's a big increase (sure, I could have worked it out as a percentage, but you can do that in your spare time).&lt;br /&gt;&lt;br /&gt;The change has been great, I always like meeting new developers to get their perspective on how they approach their work.&lt;br /&gt;&lt;br /&gt;It also gives us the chance to do stuff we've been too busy to do - like more pair programming.&lt;br /&gt;&lt;br /&gt;Welcome to Richard, Michael, David, Kyle, Mark, Goran and Andrew.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112069171086405641?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112069171086405641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112069171086405641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112069171086405641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112069171086405641'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/07/more-is-more.html' title='more is more'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112069142778455809</id><published>2005-07-07T09:05:00.000+10:00</published><updated>2005-07-07T09:10:51.783+10:00</updated><title type='text'>less is more...</title><content type='html'>I've been reading/watching/thinking about this recently. Everyone's saying less code is better and I agree. The less code, the less chance for bugs, the less the program has to do and the less code paths makes the code more robust.&lt;br /&gt;&lt;br /&gt;Now the art of writing less code is easy - understand exactly what is required and implement it the simplest way possible. Also, avoid duplication of code or functionality like the plague and you're on the way.&lt;br /&gt;&lt;br /&gt;Get on board and write less!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112069142778455809?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112069142778455809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112069142778455809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112069142778455809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112069142778455809'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/07/less-is-more.html' title='less is more...'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-112017121936194838</id><published>2005-07-01T08:14:00.000+10:00</published><updated>2005-07-01T08:45:40.816+10:00</updated><title type='text'>swimming upstream</title><content type='html'>Anyone with experience (or knowledge, &lt;a href="http://notgartner.com/"&gt;Mitch&lt;/a&gt; ) will know that the more time you spend on upstream tasks will pay large dividends further into the product cycle.&lt;br /&gt;&lt;br /&gt;I know there's no easily identifiable point when you know you've done enough analysis and design, but it's better to overspend in this area then suffer the consequences later.&lt;br /&gt;&lt;br /&gt;It's amazing how just one extra class or one decision can save hours (or weeks!) of work.&lt;br /&gt;&lt;br /&gt;You're never going to get it completely right, as the details are never immediately obvious. But that's no excuse not to try.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Right now, I'm doing a bit of swimming upstream...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-112017121936194838?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/112017121936194838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=112017121936194838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112017121936194838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/112017121936194838'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/06/swimming-upstream.html' title='swimming upstream'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111708089859449859</id><published>2005-05-26T14:09:00.000+10:00</published><updated>2005-05-26T14:14:58.596+10:00</updated><title type='text'>Object Orientated Design (OOD).</title><content type='html'>OK, I am a big fan of OOD.  Why?  Well, it makes your life easier.  Yes, it can be a bit harder to understand and grasp what's actually going on, but the payoffs are immense.  Once you get into the concepts, you really see how it's just logical.&lt;br /&gt;&lt;br /&gt;If you want to know more, read &lt;a href="http://blog.objectmentor.com/ArticleS.UncleBob.PrinciplesOfObjectOrientedDesign"&gt;http://blog.objectmentor.com/ArticleS.UncleBob.PrinciplesOfObjectOrientedDesign&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111708089859449859?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111708089859449859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111708089859449859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111708089859449859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111708089859449859'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/05/object-orientated-design-ood.html' title='Object Orientated Design (OOD).'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111638820713814769</id><published>2005-05-18T13:33:00.000+10:00</published><updated>2005-05-18T13:50:07.143+10:00</updated><title type='text'>Epiphany</title><content type='html'>Epiphany: the comprehension of the meaning of something through a sudden intuitive realization.&lt;br /&gt;&lt;br /&gt;Had one just the other day.&lt;br /&gt;&lt;br /&gt;It's strange. You read something and go "yeah, that's good." And you acknowledge that it's something that you "should" do, but you don't.&lt;br /&gt;&lt;br /&gt;And then, some time later, you're discussing it with someone else, thinking about it in the shower or the realization just pops into your head from your subconscious. And you just suddenly get it. A total and utter understanding of WHY you should do it.&lt;br /&gt;&lt;br /&gt;Wow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111638820713814769?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111638820713814769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111638820713814769' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111638820713814769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111638820713814769'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/05/epiphany.html' title='Epiphany'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111596201541797603</id><published>2005-05-13T15:22:00.000+10:00</published><updated>2005-05-13T15:26:55.420+10:00</updated><title type='text'>best book ever</title><content type='html'>No, I'm not going to tell you that the best book ever is "The Davinci Code".   It's good, but not that good. &lt;br /&gt;&lt;br /&gt;What I am going to say is that the best book ever is "Code Complete 2" by Steve McConnell.  If you're a developer (or even just someone involved in the whole IT industry), then please, do yourself a favour and read this book.&lt;br /&gt;&lt;br /&gt;'Nuff Said.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111596201541797603?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111596201541797603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111596201541797603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111596201541797603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111596201541797603'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/05/best-book-ever.html' title='best book ever'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111585951453236165</id><published>2005-05-12T10:53:00.000+10:00</published><updated>2005-05-12T10:58:34.536+10:00</updated><title type='text'>Process, Process, Process</title><content type='html'>Sorry.  I should have made this more obvious in my last post.  I do think that process is important.  Very important.  I would have to say that I prefer Agile type processes to waterfall for a few reasons:&lt;br /&gt;- it helps you identify progress and problems early and frequently&lt;br /&gt;- it accepts what IS going to happen and embraces it (i.e. iterations)&lt;br /&gt;- more team focused and skilling orientated.&lt;br /&gt;&lt;br /&gt;That's not to say that you can't do all that in a waterfall project.  Infact, I bet that the waterfall projects that are classified as successfull actually implemented those points, but not in a formal fashion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111585951453236165?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111585951453236165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111585951453236165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111585951453236165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111585951453236165'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/05/process-process-process.html' title='Process, Process, Process'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111533816434026914</id><published>2005-05-06T09:29:00.000+10:00</published><updated>2005-05-19T12:56:26.890+10:00</updated><title type='text'>wondering</title><content type='html'>There's so much talk around at the moment about how many projects are failing and the quality of the result when they do succeed.&lt;br /&gt;&lt;br /&gt;The main thing that industry experts suggest is that the issue is the process. I.E. Waterfall projects tend to fail and XP projects do not.&lt;br /&gt;&lt;br /&gt;Hmmm.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111533816434026914?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111533816434026914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111533816434026914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111533816434026914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111533816434026914'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/05/wondering.html' title='wondering'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9636166.post-111282769158009801</id><published>2005-04-07T08:35:00.000+10:00</published><updated>2005-04-07T08:48:11.580+10:00</updated><title type='text'>salt and vinegar chips</title><content type='html'>Seems there's a new player in the almost full to bursting point salt and vinegar chips market. Arnott's have been advertising their "Tasty Jacks". They say that if you try them you'll never go back.&lt;br /&gt;&lt;br /&gt;Well I did, and although they're pretty good, I'd say that they come in at #3 on my list. So what's my list? Glad you asked:&lt;br /&gt;&lt;br /&gt;#1: Kettle Sea Salt and Basalmic Vinegar. Fantastic!&lt;br /&gt;#2: Smiths Salt and Vinegar crisps. The thin slices really add to the enjoyment&lt;br /&gt;#3: Arnotts Tasty Jacks Salt and Vinegar. Great attempt, but can't quite match the taste of #1 or #2.&lt;br /&gt;#4: Smiths ridged Salt and Vinegar. Good regular chips.&lt;br /&gt;#5: Pringles Salt and Vinegar. Ok.&lt;br /&gt;#6: any other brand. No one really cares at this level.&lt;br /&gt;&lt;br /&gt;I also have very fond memories of a chip called the BIG Salt and Vinegar. I think that they were only available in about 1985. Probably because the flavour was so strong and the chip so thick that several children were admitted to hospital with salt and vinegar flavour poisoning.&lt;br /&gt;&lt;br /&gt;Anyway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9636166-111282769158009801?l=withpantscomesdignity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://withpantscomesdignity.blogspot.com/feeds/111282769158009801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9636166&amp;postID=111282769158009801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111282769158009801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9636166/posts/default/111282769158009801'/><link rel='alternate' type='text/html' href='http://withpantscomesdignity.blogspot.com/2005/04/salt-and-vinegar-chips.html' title='salt and vinegar chips'/><author><name>john magner</name><uri>http://www.blogger.com/profile/07856460400281418922</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
