<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Robby on Rails: Tag projects</title>
    <link>http://www.robbyonrails.com/articles/tag/projects</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>thoughts.sort_by{|t| t[:topic]}.collect </description>
    <item>
      <title>Audit Your Rails Development Team</title>
      <description>&lt;p&gt;Several months ago, a few of your colleagues decided to join forces with you as you had come up with a concept for an innovative web application, shared the ideas with your friends and relatives, and began developing a business plan. After a few months of performing some initial market research, working on your pitch, and raising some initial funding, you decided to bootstrap the project and start designing and developing the product.&lt;/p&gt;


	&lt;p&gt;During your research phase, you came across several articles about this exciting new technology called, &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;. You were impressed with many of the sites that were being developed on this new framework as well as the community that surrounded it. Your team decided that it would be a great idea to follow this trend and use Rails as the platform for your new product.&lt;/p&gt;


	&lt;p&gt;At this point, you began soliciting freelance developers and/or firms to hire for the design and implementation of your project. Eventually, you make a decision and break ground on building the product.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s jump forward to the present day.&lt;/p&gt;


	&lt;p&gt;You&amp;#8217;ve been in heavy development for quite some time. Your product has gone through a series of design changes and you&amp;#8217;ve recently begun to allow other people to begin testing the application. You&amp;#8217;re receiving a lot of bug reports as people use the system. Your development team quickly fixes them as they appear, but you&amp;#8217;re noticing a trend in the development process.&lt;/p&gt;


	&lt;p&gt;The speed of implementing new features is drastically slowing down as your development team is spending most of their time fixing bugs. Along with that, they are becoming frustrated by the project because they can&amp;#8217;t keep up with your new feature requests while trying to keep up with your growing number of bug reports. You&amp;#8217;re becoming concerned about the stability of the product and are slightly suspicious that your developer(s) might not be as good as they suggested they were.&lt;/p&gt;


	&lt;p&gt;Did you hire a bad development team? Chances are, you may not be able to tell. You&amp;#8217;re not a developer, so reviewing their code would almost be a waste of time. How would you know if they were doing a good or bad job? Your developers reassure you that things are going to work out in the end, but it&amp;#8217;s going to take longer then originally planned. Along with this, your  partners and investors are anxiously waiting for you to launch the product, but something feels wrong. You&amp;#8217;re worried that launching it too soon could be the quick death of the entire project if it all comes to a screeching halt due to unforeseen bugs and problems with the application. This wasn&amp;#8217;t how you pictured the launch of your exciting new product and you feel a lack of confidence in the entire process.&lt;/p&gt;


	&lt;p&gt;What can you do?&lt;/p&gt;


	&lt;p&gt;Before I get into that, let&amp;#8217;s discuss some of the possible causes for this situation.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Your development team may have grossly underestimated this project.&lt;/li&gt;
		&lt;li&gt;You might have pushed too many features into the initial release of the product and your development team might not have done a good job of helping you &lt;a href="http://www.robbyonrails.com/articles/2006/08/22/information-anxiety-and-solutions"&gt;determine what you need, not just what you want&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Your development team might not emphasize testing enough in their process.&lt;/li&gt;
		&lt;li&gt;Your development team may have begun to take a lot of short cuts in an effort to hit your launch date(s)&lt;/li&gt;
		&lt;li&gt;Perhaps you asked for quick turnarounds on new features before an investor meeting&amp;#8230; maybe this happened on several occasions.&lt;/li&gt;
		&lt;li&gt;Your development team might not be very good with Ruby on Rails, maybe this was their first Rails project.&lt;/li&gt;
		&lt;li&gt;...and so on.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;At this point, the big question is&amp;#8230; what&amp;#8217;s the problem?&lt;/p&gt;


	&lt;p&gt;Can you answer this question yourself? Can your development team answer it? If not, what do you do? How can you get an accurate understanding of how stable the code base of your application is?&lt;/p&gt;


	&lt;p&gt;Answer: &lt;strong&gt;An independent code audit and review&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Why is this a good idea? Well, when you have an independent team review your code, you get the benefit of having a fresh perspective.. and often times, an independent team can be much more critical and provide an honest assessment in a very short period of time. This is especially true if they have a lot of experience with the technology. For example, &lt;a href="http://planetargon.com"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; has been conducting code audits on existing projects for over two years. We&amp;#8217;ve designed a process for checking existing code bases for mistakes that we&amp;#8217;ve either made ourselves in the past or found in other projects that we&amp;#8217;ve reviewed.&lt;/p&gt;


	&lt;p&gt;In fact, our process currently walks us through the following areas of your Rails application.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Security of the application &lt;/li&gt;
		&lt;li&gt;Privacy of users’ personal data &lt;/li&gt;
		&lt;li&gt;Adherence to the conventions of the Ruby on Rails framework &lt;/li&gt;
		&lt;li&gt;Scalability of the application &lt;/li&gt;
		&lt;li&gt;Performance of the application and data model &lt;/li&gt;
		&lt;li&gt;Testing framework and process &lt;/li&gt;
		&lt;li&gt;User interaction (when applicable) &lt;/li&gt;
		&lt;li&gt;Information Architecture &lt;/li&gt;
		&lt;li&gt;Model-View-Controller (MVC) implementation and organization&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Not only does this process provide you with our analysis, but we also provide you with our advice as to where your development team should focus their attention next. If your team is lacking experience in the areas that we recommend they focus on, we&amp;#8217;re also here to help them through this with our consulting services. We&amp;#8217;re currently assisting several Rails development teams with their testing process, refactoring, user interaction design, optimizing their site, improving their deployment strategy, and plan the implementation of new features.&lt;/p&gt;


	&lt;p&gt;In general, most freelancers and firms could/should provide you this service, but it &lt;strong&gt;should not&lt;/strong&gt; be performed by your existing development team. They have a bias towards their process and this is your chance to get a second (or third) opinion on the work that you&amp;#8217;ve been paying them for. If you&amp;#8217;re spending several tens/hundreds of thousands of dollars into this product, an independent review of your investment should be something to seriously consider.&lt;/p&gt;


	&lt;p&gt;There are several different scenarios that could lead you to deciding to have an independent firm perform a code audit. In fact, I&amp;#8217;d encourage you to always get an outside perspective of your team&amp;#8217;s work.&lt;/p&gt;


	&lt;p&gt;To learn more about the Code Audit and Review process that we provide, call us at &lt;strong&gt;+1 877 55 &lt;span class="caps"&gt;ARGON&lt;/span&gt;&lt;/strong&gt; or &lt;a href="http://planetargon.com/contact.html"&gt;contact us online&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Sun, 17 Jun 2007 15:05:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9fc61130-7c85-4e27-b933-7e587c485ee9</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/06/17/audit-your-rails-development-team</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>developers</category>
      <category>business</category>
      <category>projects</category>
      <category>code</category>
      <category>audit</category>
      <category>review</category>
    </item>
    <item>
      <title>Poor Communication and IT Projects</title>
      <description>&lt;p&gt;InformationWeek has a short story titled, &lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=198000251&amp;#38;cid=RSSfeed_IWK_All"&gt;Poor Communications, Unrealistic Scheduling Lead To IT Project Failure&lt;/a&gt;.&lt;/p&gt;


&lt;blockquote&gt;&amp;#8220;Communications failures top the list of reasons IT projects fail, according to poll results from the Computing Technology Industry Association.
&lt;br /&gt;&lt;br /&gt;
About 28% of 1,000 respondents identified poor communications as the main cause of project failure, according to CompTIA, which offers project management training.&amp;#8221; 
&lt;/blockquote&gt;

	&lt;p&gt;So, while we&amp;#8217;re all spending so much of our time focused on improving our technical skills, are we also investing our time into becoming communication superstars?&lt;/p&gt;


	&lt;p&gt;If you look back at the following posts, you&amp;#8217;ll see some links to some excellent books on this topic.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3"&gt;Project Enlightenment with d3&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/09/12/the-technology-of-dialogue"&gt;The Technology of Dialogue&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/01/04/those-that-tend-the-store-need-dialogue"&gt;Those that Tend the Store need Dialogue&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
</description>
      <pubDate>Mon, 12 Mar 2007 17:25:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:01265ea4-f529-4442-919e-5f25b676766b</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/03/12/poor-communication-and-it-projects</link>
      <category>d3</category>
      <category>projects</category>
      <category>dialogue</category>
      <category>communication</category>
      <category>agile</category>
    </item>
    <item>
      <title>DDD (d3) is the new conversational software development</title>
      <description>&lt;p&gt;I&amp;#8217;m not sure how I missed this recent post on Martin Fowler&amp;#8217;s bliki last week on &lt;a href="http://martinfowler.com/bliki/CustomerAffinity.html"&gt;Customer Affinity&lt;/a&gt;. In this post he references when the term &amp;#8220;agile&amp;#8221; first came about and mentioned that, &amp;#8220;one of Kent&amp;#8217;s suggested names for &amp;#8216;Agile&amp;#8217; was conversational software development &amp;#8211; the point being that it&amp;#8217;s a two way communication. &amp;#8220;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Conversational&lt;/em&gt; Software Development.&lt;/p&gt;


	&lt;p&gt;This doesn&amp;#8217;t sound so different than what Brian Ford and I are calling, &lt;a href="http://c2.com/cgi/wiki?DialogueDrivenDevelopment"&gt;Dialogue-Driven Development&lt;/a&gt;. ;-)&lt;/p&gt;


	&lt;p&gt;Fowler goes on to say, &lt;em&gt;&amp;#8220;This isn&amp;#8217;t something like a telecoms protocol that you can define, but the back and forth discussions about how software can enhance the business are where the real value lives. Much of this conversation is of half-baked ideas, some of which grow into valuable features &amp;#8211; often ones that aren&amp;#8217;t things that the customer originally thought of.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;If you didn&amp;#8217;t follow the thread of comments on my &lt;a href="http://c2.com/cgi/wiki?DialogueDrivenDevelopment"&gt;recent post on Dialogue-Driven Development&lt;/a&gt;, you might not know that this name came up during Martin Fowler&amp;#8217;s keynote at RailsConf when Brian and I were sitting next to each other and Martin kept reusing the word &amp;#8220;dialogue.&amp;#8221; Brian and I can&amp;#8217;t seem to agree if I said, &amp;#8220;Dialogue-Driven Development&amp;#8221; out loud or if he wrote it down on a piece of paper first&amp;#8230; so we&amp;#8217;re going to have to share the credit. What made this so fascinating at the time was that for the entire trip from Portland to Chicago on the &lt;a href="http://www.theargonexpress.com"&gt;Argon Express&lt;/a&gt;, Brian and I had been discussing a lot of what we&amp;#8217;re planning to change and define with our approach to Client/Project/Development Collaboration &amp;#38; Management&amp;#8230; and in the end&amp;#8230; we left Chicago with &lt;del&gt;&lt;span class="caps"&gt;DDD&lt;/span&gt;&lt;/del&gt; d3.&lt;/p&gt;


	&lt;p&gt;Thank you, Martin for being part of this process.&lt;/p&gt;


	&lt;p&gt;Like all things, this approach is open to &lt;del&gt;discussion&lt;/del&gt; dialogue.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Brian has written an article called, &lt;a href="http://blog.brightredglow.com/articles/2006/08/04/its-all-about-the-dialogue"&gt;It&amp;#8217;s all about the dialogue&lt;/a&gt;. (&lt;a href="http://digg.com/programming/It_s_all_about_the_dialogue"&gt;digg.it&lt;/a&gt;)&lt;/p&gt;
</description>
      <pubDate>Thu, 03 Aug 2006 22:28:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c793b3bf-28f5-4a13-b03f-2d069e96bc0e</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/03/ddd-is-the-new-conversational-software-development</link>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>projects</category>
      <category>management</category>
      <category>clients</category>
      <category>interaction</category>
      <category>planetargon</category>
    </item>
    <item>
      <title>Dialogue-Driven Development</title>
      <description>&lt;p&gt;Just a few months ago, I wrote a short article called, &lt;a href="http://www.robbyonrails.com/articles/2006/05/31/the-art-of-delivery-part-1"&gt;The Art of Delivery&lt;/a&gt;, which outlined how we at &lt;a href="http://www.planetargon"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; approach iterative development and how it relates to quicker release cycles. I wanted to follow up with this and add some more thoughts to that and what we&amp;#8217;ve been trying and learning since that point in time.&lt;/p&gt;


	&lt;p&gt;With iterative development cycles, we&amp;#8217;re able to focus our attention on very specific and well-defined goals while we work with the client to organize the other goals that they&amp;#8217;d like us to help develop solutions for.&lt;/p&gt;


	&lt;h3&gt;An End to the Product Backlog&lt;/h3&gt;


	&lt;p&gt;While everyone at &lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt; has been doing some research on modern Agile-related methodologies, we&amp;#8217;ve been throwing a lot of ideas back and forth&amp;#8230; and often times we end up cherry-picking individual practices and throwing it into our evolving processes.&lt;/p&gt;


	&lt;p&gt;The problem that we&amp;#8217;ve seen with most examples of using a standard &lt;a href="http://www.controlchaos.com/"&gt;Scrum&lt;/a&gt; Product Backlog is that it focuses too much on tasks rather than providing solutions for goals that are central to the success of the project. It also requires that someone maintain, on a regular basis, a well-defined list of tasks, which often times the client (Product Owner) dictates. We&amp;#8217;ve seen many situations where a client has more feature requests than is necessary in order to attain the goal that was originally set. If we had a nickel for every time we heard someone say, &amp;#8220;wouldn&amp;#8217;t it be cool if it did this?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve personally worked on many projects that fell into this routine too early in the development cycle. Most clients that we work with are trying to provide a solution for their users and aren&amp;#8217;t always the best Domain Expert. Taking the whole &lt;em&gt;&lt;a href="http://www.37signals.com/svn/archives2/less_as_a_competitive_advantage_my_10_minutes_at_web_20.php"&gt;less is more&lt;/a&gt; approach&lt;/em&gt;, it&amp;#8217;s vital that the earlier you can get your users in front of your application, the sooner you can get them to generate feedback, which aids in you making educated decisions about what to add to the project later on.&lt;/p&gt;


	&lt;h3&gt;Features are Expensive&lt;/h3&gt;


	&lt;p&gt;Aside from the monetary costs of adding new features and functionality, it is important to remember that as you add new code to an application you increase the maintainability and overall scope of the project. With each &lt;em&gt;new feature&lt;/em&gt;, the requirements change, complexity increases, and as far as your users are concerned, they are now being exposed to something new, which may or may not be what they want or need. For example, I was in a sales meeting yesterday and our potential client mentioned that at a former job during the dot-com era, their web team added e-Cards to their web site and it had nothing to do with their business model. The users did however use this new feature but they later went out of business. Perhaps they should have been an e-Card business instead. Imagine if BaseCamp added a local weather feature&amp;#8230; I might use it&amp;#8230; but it doesn&amp;#8217;t help me manage our projects any better.&lt;/p&gt;
&lt;p&gt;When clients approach us with a new feature that wasn&amp;#8217;t previously discussed, we have to ask them they Why, What, and How? What goal is this feature providing a solution for? Do we already have a solution implemented that solves this problem? Is this a new goal and how (and why) did this goal come about? What are the costs of implementing such a feature and how will it affect the current stability of the user base and application? If we put it off 3 months, would it cause the project to come to a grinding halt? What about 6 months?&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s important to always remember that one of the biggest problems in software development is &lt;em&gt;feature creep.&lt;/em&gt; Many projects fail due to this and as a project manager, developer, or client&amp;#8230; please consider the consequences and benefits of each new feature. Focus on the goals and connect the dots from there.&lt;/p&gt;


	&lt;p&gt;Get the goals clearly defined and provide clear and simple solutions for them.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Just Say NO to Bloat!&lt;/strong&gt;&lt;/p&gt;


	&lt;h3&gt;Start with a Mission Statement&lt;/h3&gt;


	&lt;p&gt;One of the new things that we&amp;#8217;ve begun doing with a few new clients is assigning them with an initial task of providing us with a Mission Statement. From the Mission Statement we can ask how each goal that the client and we outline relates to it. If one of the key goals of the Mission Statement is, &amp;#8220;to provide gorillas with easy access to basketballs&amp;#8221;... we will have to question any goals that imply that we might also need to provide access to soccer balls, car batteries, or scissors&amp;#8230; or that when a gorilla is getting their basketball we might want to provide them access to stock reports. We&amp;#8217;re not trying to solve all the gorilla&amp;#8217;s problems and it would be naive for us to think that we know what they want before we&amp;#8217;ve had a chance to really engage in that dialogue.&lt;/p&gt;


	&lt;h3&gt;Users are the Domain Experts&lt;/h3&gt;


	&lt;p&gt;Very rarely do we get a chance to interact with users before we&amp;#8217;ve begun coding a project and getting an alpha release in front of a subset of users. Brian and I just got back from a few days in Washington DC, where we worked with a new client. They have an existing &lt;span class="caps"&gt;GUI&lt;/span&gt; application that began development in the mid-90s and we&amp;#8217;re being contracted to help build a new solution to the problem that they began to solve ten years ago. The application has suffered from a lot of &lt;em&gt;feature creep&lt;/em&gt; as many evolving products do. As they gave us a demonstration of their existing product, we saw first hand how it was even difficult for them to remember why Feature X was in the system. &amp;#8220;Most customers don&amp;#8217;t use that anyways.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;So, why is it there? Of course, nobody remembers why everything is there now. As developers come and go projects get managed by various people over the course of their life, many of different opinions and features get injected into the application. It&amp;#8217;s a common problem and it takes a lot for a company to finally admit that it&amp;#8217;s time to throw it out the door and start fresh.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;The old rules don&amp;#8217;t apply anymore. *&lt;/p&gt;


	&lt;p&gt;One of the first things that we did in our meetings was discuss what goals their product was aiming to provide solutions for. What do they believe that their users want and need? To get this answer, we scheduled a few conference calls with real users of their existing software! I cannot describe how helpful those interviews were and we saw a lot of consistency in their goals as users of such a system. It became apparent that they were the Domain Experts and as we move forward with the project we are going to have access to interact with those users.&lt;/p&gt;


	&lt;h3&gt;Rethinking the Dialogue&lt;/h3&gt;


	&lt;p&gt;When thinking about delivery, we must consider the major obstacles to overcome during the course of an iteration or release cycle. More important than having well-defined deliverables is having well-defined expectations. If you&amp;#8217;re delivering a &lt;a href="http://www.robbyonrails.com/articles/2006/06/07/prototypes-are-your-friends"&gt;prototype&lt;/a&gt;, be clear about what a prototype is and &lt;a href="http://www.robbyonrails.com/articles/2006/03/11/keeping-prototypes-is-a-bad-idea"&gt;what is it not&lt;/a&gt;. Schedule regular meetings with your client throughout the process. Keep the client updated as much as possible. Ask questions as soon as you can&amp;#8230; and be sure to ask them the &lt;em&gt;right questions.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;There is an art to it and it&amp;#8217;s important that you keep this process lightweight and agile like you do your development process. Perhaps we need to think of development and project management under a new heading&amp;#8230; *Dialogue-Driven Development&lt;/strong&gt;? &lt;strong&gt;&lt;del&gt;&lt;span class="caps"&gt;DDD&lt;/span&gt;&lt;/del&gt;&lt;/strong&gt;? ...just what we need&amp;#8230; another acronym. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;re not going to call it &lt;span class="caps"&gt;DDD&lt;/span&gt;&amp;#8230; just d3.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Aug 2006 21:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:201cc0a0-52eb-4bd9-8c1c-8a9d2bc7711c</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/02/dialogue-driven-development</link>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>projects</category>
      <category>management</category>
      <category>clients</category>
      <category>interaction</category>
      <category>planetargon</category>
    </item>
    <item>
      <title>The Art of Delivery, part 1</title>
      <description>&lt;p&gt;Over the next few weeks, I am going to interact with the readers of my blog in a segment that I call&amp;#8230; &lt;strong&gt;The Art of Delivery&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;As a professional developer, my experience with working in development environments has been fairly unique each time. Up until &lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;, I had very little say in how we structured the very process that I was expected to follow. Granted, there is is a benefit to having leaders who have some good experience to help guide a team throughout the life span of a project, but a leader should also posses a sense of humility and stay agile in their processes. You cannot succeed in an environment where &lt;em&gt;an old dog can&amp;#8217;t learn new tricks.&lt;/em&gt; This sort of thinking reminds me of managers who feel that their sole responsibility is to &lt;em&gt;manage people&lt;/em&gt;. People manage themselves, a leaders helps facilitate self-management. I&amp;#8217;ll be the first to admit that I have much to learn in both areas. :-)&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.planetargon.com/files/~robby/delivery-van.jpg" style="float: right; border: none;" alt="Delivery!!!" /&gt;&lt;/p&gt;


	&lt;p&gt;Earlier this year, the &lt;a href="http://www.planetargon.com/about.html"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt; Core Team&lt;/a&gt; met to outline new processes. One hot topic was project communication and delivery. One of the areas that we all insist that we excel at is building better estimates and managing project delivery more efficiently. Every one on our team has their own ideas of how best to coordinate projects and we wanted to find a way to invent our own pattern&amp;#8230; but what we realized is that we were &lt;em&gt;borrowing&lt;/em&gt; a lot of ideas from books we&amp;#8217;ve read as well as the lessons learned in previous environments. One of the things that we realized is that while we weren&amp;#8217;t horrible at building estimates for a six month project&amp;#8230; it was that we knew that the requirements of (almost) any project would change scope within six months. How could we accommodate new ideas in a project without disrupting the budget and the agreed timeline? We wanted to rethink this process and push ourselves to follow an iterative approach.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Focus on the now and then the then&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Since then we have begun to define and redefine what each stage of a project looks like. How do we communicate stages of a project with our clients in a meaningful and clear way?&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m now about to give away how we do business at &lt;a href="http://www.planetargon.com"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Project(s), Release(s), Iteration(s), Task(s)&lt;/h3&gt;


	&lt;p&gt;&lt;strong&gt;It&amp;#8217;s not rocket science&amp;#8230; and it shouldn&amp;#8217;t be!&lt;/strong&gt;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;A project has many releases&lt;/li&gt;
		&lt;li&gt;A release has many iterations&lt;/li&gt;
		&lt;li&gt;An iteration has many tasks&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;What we do is isolate an iteration by collecting a set of goals to be accomplished that the client and we agree on as being of high value to the success of the project at this point in time. Tasks are essentially the individual steps needed to achieve those goals and we don&amp;#8217;t go out of our way to list each one of those during an estimate process as some tasks take less time than it takes to generate an estimate for them. We include our developers in our estimate and specification process as they often have many great questions to send to the client to get further clarification. Often, much of this clarification process happens during a first iteration, which some call &lt;a href="http://www-128.ibm.com/developerworks/rational/library/354.html"&gt;Iteration Zero&lt;/a&gt;... as no code is developed during this iteration. Prototypes, estimates, mockups, and Q&amp;#38;A is what iteration 1/zero consists of. This is that important &lt;em&gt;design&lt;/em&gt; phase that people talk so much about. :-)&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s get back to thinking about delivery&amp;#8230; and we&amp;#8217;ll make the assumption that you&amp;#8217;ve already worked out your estimates and are now ready to work on your (next) iteration.&lt;/p&gt;


	&lt;p&gt;Open Question: As developers, project managers, and curious readers&amp;#8230; how do you proceed?&lt;/p&gt;


	&lt;p&gt;...to be continued&lt;/p&gt;
</description>
      <pubDate>Wed, 31 May 2006 00:09:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a3b0431e-5f58-44df-8af9-c14110b2e3c4</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/05/31/the-art-of-delivery-part-1</link>
      <category>delivery</category>
      <category>agile</category>
      <category>projects</category>
      <category>planetargon</category>
      <category>development</category>
    </item>
    <item>
      <title>The Daily Stand Up, part 2</title>
      <description>&lt;p&gt;In a previous post, I outlined how the &lt;a href="http://www.planetargon.com/"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; team handles their communication of day-to-day work with &lt;a href="http://www.robbyonrails.com/articles/2006/05/22/the-daily-stand-up"&gt;the daily stand-up&lt;/a&gt;. Several people posted comments about similar processes and some suggestions were made to keep them from getting too stagnant. I wanted to highlight a few of those comments.&lt;/p&gt;


&lt;blockquote&gt;&lt;strong&gt;Aslak Hellesoy&lt;/strong&gt; suggests, &lt;em&gt;&amp;#8220;Use a token – a rubber ball or something – for each person giving status. Only the person holding the token is allowed to talk.&amp;#8221;&lt;/em&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;strong&gt;Florian Weber&lt;/strong&gt; said, &lt;em&gt;&amp;#8220;Everybody standing up makes meetings go faster and more focus&amp;#8230;&amp;#8221;&lt;/em&gt;&lt;/blockquote&gt;

	&lt;p&gt;However, not everybody is convinced&amp;#8230;&lt;/p&gt;


&lt;blockquote&gt;&lt;strong&gt;Doug&lt;/strong&gt; said, &lt;em&gt;&amp;#8220;I hate meetings, why on Earth would you punish your employees on a daily basis?&amp;#8221;&lt;/em&gt;&lt;/blockquote&gt;

	&lt;p&gt;Perhaps Doug has worked in environments that encourage too many &lt;em&gt;bad&lt;/em&gt; meetings. A client recently said, &lt;strong&gt;&amp;#8220;meetings are expensive&amp;#8221;&lt;/strong&gt; when we agreed to not have too many meetings throughout the project. Less meetings that are well-focused are much more valuable and productive. :-)&lt;/p&gt;


	&lt;p&gt;The one that caught my attention was the comment made by Aslak Hellesoy&amp;#8230; he goes on to say, &lt;em&gt;_&amp;#8220;When a speaker is done, throw the token to a random person instead of just handing it to the left or right. This forces everyone to stay more alert, as noone knows who’s next.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;This got me thinking about how we had made it a ritual to stand in similar positions and I would start off the meeting. The team wasn&amp;#8217;t too keen on throwing a ball around the room as we often hold coffee in our hand&amp;#8230; so I came up with the following solution&amp;#8230;. which reunites us with our little friends, the &lt;strong&gt;index cards&lt;/strong&gt;!&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/155610091/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/67/155610091_f40a7a68d4_m.jpg" width="180" height="240" alt="Randomizing Daily Standup Meetings"  style="float:left; border: 2px solid #666; margin: 4px;"/&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Basically, all I did was take a stack of index cards and write a number on each one. Then at 9:15am &lt;span class="caps"&gt;PST&lt;/span&gt;, we all walk into the meeting room and take one. Whoever got #1 goes first and we work our way up from there. We&amp;#8217;ve done this three times so far and most of the team seems cool with it. I&amp;#8217;ll keep you posted as we solidify our approach to &lt;strong&gt;The Daily Stand-up&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;...and of course&amp;#8230; this comment also reaffirmed our decisions to do daily stand-ups&amp;#8230;&lt;/p&gt;


&lt;blockquote&gt;&lt;strong&gt;Kevin Rutherford&lt;/strong&gt; said, &lt;em&gt;&amp;#8220;Cool. And by “inventing” the idea yourselves, I guess you have much greater buy-in too?&amp;#8221;&lt;/em&gt;&lt;/blockquote&gt;

	&lt;h3&gt;Related Posts&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/05/22/the-daily-stand-up"&gt;The Daily Stand-up&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/04/21/agile-development-begins-within"&gt;Agile development begins within&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
</description>
      <pubDate>Mon, 29 May 2006 11:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fcf86ee9-0944-48ba-88e1-20cdb8762a9c</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/05/29/the-daily-stand-up-part-2</link>
      <category>development</category>
      <category>teamwork</category>
      <category>scrum</category>
      <category>agile</category>
      <category>projects</category>
      <category>planetargon</category>
      <category>indexcards</category>
    </item>
    <item>
      <title>The Daily Stand Up</title>
      <description>&lt;p&gt;I&amp;#8217;ll admit it. I&amp;#8217;ve never read a book that outlines that &lt;span class="caps"&gt;SCRUM&lt;/span&gt; process in detail but do have a copy of &lt;a href="http://www.powells.com/cgi-bin/biblio?inkey=2-0596007868-0"&gt;The Art of Project Management&lt;/a&gt; by Scott Berkun. In chapter ten, Berkun points out the purpose of having meetings as well as the annoyances that surround them. Over the past six months, we have toyed around with a few different approaches to holding meetings. There was a short period of time where we really weren&amp;#8217;t sure what the best way to get company-wide information to everyone without boring them to death once a month or week.&lt;/p&gt;


	&lt;p&gt;A few months ago we tried something totally crazy&amp;#8230; &lt;strong&gt;daily meetings&lt;/strong&gt;! It caught on rather well.&lt;/p&gt;


	&lt;p&gt;There is one rule though, &lt;strong&gt;nobody can sit down&lt;/strong&gt;. :-)&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.planetargon.com/files/~robby/no_sitting_on_wall.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;We hold a meeting every day at the same time and do not make any exceptions. Well, I will admit that we&amp;#8217;ve missed two or three in the past several months but overall, we&amp;#8217;re very good at keeping to the schedule.&lt;/p&gt;


	&lt;p&gt;So, how does this process work?&lt;/p&gt;


	&lt;p&gt;Each morning, I spend about 15 minutes preparing for a 10 minute meeting&amp;#8230; which also is how I build my &lt;em&gt;list&lt;/em&gt; for the day. This list appears on an index card as I keep it with me throughout the whole day. I also keep the previous and next days card with me so that I can make sure that things that didn&amp;#8217;t get done yesterday get done today or tomorrow. Some of these tasks end up on BaseCamp or just get checked off as I complete the task.&lt;/p&gt;


	&lt;p&gt;Each morning at 9:15 &lt;span class="caps"&gt;AM PST&lt;/span&gt; (now you know where we are when we aren&amp;#8217;t working or on &lt;span class="caps"&gt;IRC&lt;/span&gt;), we meet in our conference room and stand in something that looks similar to a circle. I wait until everybody finds their way into the conference room and then say, &amp;#8220;Good morning!&amp;#8221; I then do go over the following things (and use my index cards to keep me on topic)...&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;What did I do yesterday (or Friday/weekend)?&lt;/li&gt;
		&lt;li&gt;What will I do today?&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Then the person who decided to stand next to me follows and we do this around the room&amp;#8230; I think the order this morning was:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Robby&lt;/li&gt;
		&lt;li&gt;Jeremy&lt;/li&gt;
		&lt;li&gt;Brian&lt;/li&gt;
		&lt;li&gt;Jason&lt;/li&gt;
		&lt;li&gt;David&lt;/li&gt;
		&lt;li&gt;Allison&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;This is a good time to also bring up any thing that might be useful for everyone to hear&amp;#8230; such as, &lt;em&gt;&amp;#8220;we got a new development contract signed yesterday!&amp;#8221;&lt;/em&gt; or &lt;em&gt;&amp;#8220;client x will be on-site at 1:30 PM.&amp;#8221;&lt;/em&gt; Along with this, we&amp;#8217;re able to ask questions about other peoples work and act as a sanity check. Why the stand up? Nobody likes to just stand around for too long&amp;#8230; when you stand up you avoid getting too comfortable and people are more likely to &lt;strong&gt;stay on topic and focused&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.planetargon.com/files/~robby/paper_people_circle.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;The meetings typically last 10-15 minutes and if you&amp;#8217;re not doing something like this with your team&amp;#8230; how do you cope on a daily basis?&lt;/p&gt;
</description>
      <pubDate>Mon, 22 May 2006 23:57:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0dc44a5a-f380-4633-bde4-1124a949cff9</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/05/22/the-daily-stand-up</link>
      <category>development</category>
      <category>teamwork</category>
      <category>scrum</category>
      <category>agile</category>
      <category>projects</category>
      <category>planetargon</category>
    </item>
  </channel>
</rss>
