<story><title>The Starter, the Architect, the Debugger and the Finisher</title><url>http://jacquesmattheij.com/The+Starter+the+Architect+the+Debugger+and+the+Finisher</url></story><parent_chain><item><author>edw519</author><text>I believe that in order to get really good at any of these roles, you must do the other roles, deeply and often. For example:&lt;p&gt;The more time you spend Debugging shit, the less likely to you are to Architect something that produces shit.&lt;p&gt;The more time you spend fixing a million little things caused by poor early decisions, the better Starter you&apos;ll become.&lt;p&gt;The more fun you have conceiving and Starting projects, the more you&apos;ll realize how important Finishing is, so that you can get to new stuff.&lt;p&gt;And the more time you spend doing each of these roles, the  better you&apos;ll get at doing all of them at the same time, and understanding what conditions are needed to do that. (Hint: Lots of quicker smaller complementary projects that you can wrap your whole head around.)&lt;p&gt;[This whole discussion reminds me of the time I was a restaurant manager and got tired of the servers and cooks bitching at each other. I had them switch roles for one shift. Once they understood how what they did affected the other, everyone got a little better and the bitching stopped.]</text></item></parent_chain><comment><author>scotty79</author><text>The more time I spend Debugging shit the less likely I am to Architect or even Start anything because I am painfully aware that everything produces shit.&lt;p&gt;EDIT: Wow. A downvote. That what I get for showing the pain I experience to the world. :-)</text></comment>
<story><title>The Starter, the Architect, the Debugger and the Finisher</title><url>http://jacquesmattheij.com/The+Starter+the+Architect+the+Debugger+and+the+Finisher</url></story><parent_chain><item><author>edw519</author><text>I believe that in order to get really good at any of these roles, you must do the other roles, deeply and often. For example:&lt;p&gt;The more time you spend Debugging shit, the less likely to you are to Architect something that produces shit.&lt;p&gt;The more time you spend fixing a million little things caused by poor early decisions, the better Starter you&apos;ll become.&lt;p&gt;The more fun you have conceiving and Starting projects, the more you&apos;ll realize how important Finishing is, so that you can get to new stuff.&lt;p&gt;And the more time you spend doing each of these roles, the  better you&apos;ll get at doing all of them at the same time, and understanding what conditions are needed to do that. (Hint: Lots of quicker smaller complementary projects that you can wrap your whole head around.)&lt;p&gt;[This whole discussion reminds me of the time I was a restaurant manager and got tired of the servers and cooks bitching at each other. I had them switch roles for one shift. Once they understood how what they did affected the other, everyone got a little better and the bitching stopped.]</text></item></parent_chain><comment><author>geebee</author><text>I would agree that people learn from being involved in all phases of a software project at least once.  Especially starters.&lt;p&gt;Starting a project is an exciting, heady, creative time.  If the last 10% takes 50% of the effort, the first 90% is where you create and build at a fast pace, enjoy the adulation of your clients who are amazed with how quickly things are going, investigate and implement interesting new technologies and approaches, and revel in the fun of creating something new.&lt;p&gt;The question is, did you leave the code base in good shape, or did you go on a bender, drinking the champagne but leaving your successors to experience the hangover?  My guess is that most people on this board have had to deal with a truly bad code base, in production, inherited from a programmer who flitted off to the next project cause he &quot;enjoys the challenges of creating new things&quot;.&lt;p&gt;Until you&apos;ve been the debugger who fixes the million little problems, the &quot;architect&quot; (wish we had a different word, cause you will be coding a lot) who refactors the code into something that can actually be maintained, and the finisher who experiences the irritated grousing of clients (who notice that things have slowed down so much since the &quot;starter&quot; left the project... we just asked for it and he did it), you don&apos;t know the kind of damage a rogue &quot;starter&quot; can do.</text></comment>