<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.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>Assembla Blog: Category Agile Development</title>
    <link>http://andy.blogs.assembla.com/articles/category/agile-development</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Wetware - Men among the Machines, by Andy Singleton</description>
    <item>
      <title>How to select good trial tasks</title>
      <description>&lt;p&gt;We use trial projects to help find the best developers to work with.  We hire candidates to do paid trial tasks from our live projects.  In working with the candidates, we understand how good they are and how well the they work in our process.  We try to sign the good ones for longer term contracts.  It&#226;&#8364;&#8482;s a lot of work, but it is well worth the effort.&lt;/p&gt;


	&lt;p&gt;Sometimes, clients want to do this themselves.  Or, they want us to perform in a trial, which is a hassle for us, but a good idea for them.  That brings us to the subject of how to select trial tasks.  To make the process work, we need good trial tasks.&lt;/p&gt;&lt;p&gt;I find that a manager&#226;&#8364;&#8482;s first instinct is to create a &#226;&#8364;&#339;test&#226;&#8364;? task.  It&#226;&#8364;&#8482;s a small task that can be assigned to lots of candidates. That way, they save time by doing one specification, and they get the advantage of being able to compare results from multiple candidates.  Or, they select a task that they have already specified and completed.  That way, they save even more time because they don&#226;&#8364;&#8482;t have to do a new specification, and they can compare the candidate result with the previous result.&lt;/p&gt;


I don&#226;&#8364;&#8482;t use either of these approaches (a test task, or an already completed task), because they make the task meaningless.  This causes two problems.
	&lt;ul&gt;
	&lt;li&gt;Good developers (including us) are busy, and work very hard, and don&#226;&#8364;&#8482;t have time to do meaningless work.&lt;/li&gt;
		&lt;li&gt;These trials fail.  As a busy manager, you will never bring yourself to pay enough attention to a meaningless task to get a good result.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;So, I only assign trial tasks and features that I intend to deploy, or that are R&amp;#38;D / prototyping for something that I intend to deploy.  I only assign meaningful tasks.  I think to do otherwise shows disrespect to the hard-working candidates I hope to work with.&lt;/p&gt;


	&lt;p&gt;For trials, I take a real system that I am working on, and ask for a meaningful improvement.  Essentially, I assign tickets out of our live projects.&lt;/p&gt;


	&lt;p&gt;I hear three objections to this approach&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&#226;&#8364;&#339;I need the deliverable.  I can&#226;&#8364;&#8482;t risk it with a new guy.&#226;&#8364;?  If that is true, then hire two guys to do it.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&#226;&#8364;&#339;It&#226;&#8364;&#8482;s too much work to specify&#226;&#8364;?.  That&#226;&#8364;&#8482;s true if you are working with mediocre developers.  However, if you are working with people who require precise specifications, and they just do coding, they aren&#226;&#8364;&#8482;t saving you much time.  They would save you a &lt;span class="caps"&gt;LOT&lt;/span&gt; more time if they could take the general idea and a do something with it.  So, it makes sense to test for that.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&#226;&#8364;&#339;My systems are too complex for a quick trial.&#226;&#8364;?  That&#226;&#8364;&#8482;s true if you are working with mediocre developers.  If you are working with good developers, you should be able to throw them into a complex system and get some forward motion pretty quickly.  From a qualification point of view, complexity can help you.  If the build process is such that you can&#226;&#8364;&#8482;t get new people set up easily, then you will benefit from improving the build process.  That in itself can be a trial task.&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sat, 27 Jan 2007 11:53:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:71faf1fc1f7e2cb1cc62dbcac298a59a</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2007/01/27/how-to-select-good-trial-tasks</link>
      <category>Agile Development</category>
      <category>Breakout Development</category>
      <category>Software Business</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/37</trackback:ping>
    </item>
    <item>
      <title>Build an online game in 7 days?</title>
      <description>&lt;p&gt;&lt;a href="http://www.gamasutra.com/features/20051026/gabler_pfv.htm"&gt;This article on Gamasutra&lt;/a&gt; provides a variety of &amp;#8220;juicy&amp;#8221; hints and examples from &amp;#8220;4 Grad Students Who Made Over 50 Games in 1 Semester.&amp;#8221;|&lt;/p&gt;


	&lt;p&gt;My last article on Hyper-agile product development focused on managing a complex project for minimum time to market &amp;#8211; a sort of top-down approach for managers and teams.  This article is a great follow-on for the individuals involved, a bottom-up approach to prototyping and testing individual features.&lt;/p&gt;</description>
      <pubDate>Sat, 27 Jan 2007 11:34:29 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:1a1f35ac90ab976ebd0d6e6563a1413f</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2007/01/27/build-an-online-game-in-7-days</link>
      <category>Agile Development</category>
      <category>Innovation</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/36</trackback:ping>
    </item>
    <item>
      <title>Lessons for Hyper-Agile product development</title>
      <description>&lt;p&gt;Recently we were called upon to build and launch a new Web product with a hard deadline in a seasonal business.  By the time we started our work, only three months remained until the planned launch date.  It was a big system.  Our mission was to build a new and greatly enhanced version of a product which had taken 15 months to build in its last iteration.  So, we had a benchmark.&lt;/p&gt;


	&lt;p&gt;In this case, we ran more than four times faster than a similar project implemented last year with older tools and development methods.  We also came in on-time and under budget, and we ended up implementing features faster than we could figure out how to use them.&lt;/p&gt;


	&lt;p&gt;How did this happen?  Want to try this at home?  I will share our lessons below.  Good luck.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Don&#226;&#8364;&#8482;t do things that take time to arrange&lt;/li&gt;
		&lt;li&gt;Don&#226;&#8364;&#8482;t get dragged down by old code&lt;/li&gt;
		&lt;li&gt;Establish the data schema&lt;/li&gt;
		&lt;li&gt;Pile on with new team members&lt;/li&gt;
		&lt;li&gt;Use a ticket list / work queue&lt;/li&gt;
		&lt;li&gt;Build something now, even though we know we will have to rebuild&lt;/li&gt;
		&lt;li&gt;Don&#226;&#8364;&#8482;t split the codebase into components&lt;/li&gt;
		&lt;li&gt;Daily releases instead of stabilization periods&lt;/li&gt;
		&lt;li&gt;Make a usage dashboard&lt;/li&gt;
		&lt;li&gt;Web services are your friend&lt;/li&gt;
		&lt;li&gt;Hire users as product managers&lt;/li&gt;
		&lt;li&gt;Don&#226;&#8364;&#8482;t create obstacles: Users provide the data&lt;/li&gt;
		&lt;li&gt;Documentation on a wiki&lt;/li&gt;
		&lt;li&gt;Find the one thing people will use&lt;/li&gt;
	&lt;/ul&gt;&lt;h2&gt;Here is the expanded version, for people who actually do this for a living.&lt;/h2&gt;


	&lt;h3&gt;Don&#226;&#8364;&#8482;t do things that take time to arrange&lt;/h3&gt;


	&lt;p&gt;We get big time savings by not moving people around.  Travel takes time to arrange, and it takes time to do.  People should be working, not moving, and they should start now.  I don&#226;&#8364;&#8482;t do interviews.  I found that even arranging a phone interview takes five to seven days &#226;&#8364;&#8220; a big chunk of a 70 day project.  Instead, I let people start work and I evaluate their work later.  I also don&#226;&#8364;&#8482;t set up conference calls for the product team.  In my observation, time spent on the phone is a good indicator of communication problems, and is best avoided by improved management and communication.&lt;/p&gt;


	&lt;h3&gt;Don&#226;&#8364;&#8482;t get dragged down by old code.&lt;/h3&gt;


	&lt;p&gt;I believe in doing a lot of research and trying to adapt existing open source code, as an alternative to diving into new development.  We spent a week of our precious schedule taking a in-depth look at open source alternatives.  We considered a system with a friendly academic license and $4M worth of development behind it.  What we found was big, complicated enterprise software with lots of heavy baggage.  We talked to people who were adding to Sakai, and found that they were typically taking 8 months to do things that I thought should take a month.  We discarded the existing product for the same reason.  We moved on to a more agile architecture and never looked back.  I had to change my thinking because, in the new world, it often is faster to build from scratch.&lt;/p&gt;


	&lt;p&gt;Rails is simpler than java for this type of application, and the build was much faster as a result.&lt;/p&gt;


	&lt;h3&gt;Establish the data schema&lt;/h3&gt;


	&lt;p&gt;It is easy to add to a data schema, but difficult to change it.  I sometimes visit old clients and find that the people, products, and code that I knew are long forgotten, but the data schema remains.  Data schema is the one piece of up-front design that we do before diving into the build.&lt;/p&gt;


	&lt;h3&gt;Pile on with new team members&lt;/h3&gt;


	&lt;p&gt;It is possible to bring in a lot of new team members and let people pick their own tasks. Using this technique, we were able to triple our output in three weeks.  This approach is the exact opposite of the &amp;#8220;Mythical Man Month&amp;#8221; recommendation, which holds that adding new team members imposes a cost of learning time and management time which will delay a project that is on a short time schedule.  In my experience, adding team members &lt;span class="caps"&gt;DOES&lt;/span&gt; delay a project, if you need to guide them and manage them.  The pile-on method works if the new developers are good and can find their own way.  We are helped by our &#226;&#8364;&#339;inspired by open source&#226;&#8364;? methods, which were developed to serve large teams with loose central management, and the fact that some of the new developers are very good.    We can weed out the rest a few weeks later.&lt;/p&gt;


	&lt;p&gt;An obvious related lesson is to work with good people.  I am not even going to put it in the list of lessons from this project because it is far from a new lesson.  A good developer seems to be about 5 times as productive as an average developer.  In this project, there were several cases where a team member spent 2 weeks working on something, did not finish it, and then found it replaced by something our best guy finished in 2 days.  Given the potential gains, most project managers don&#226;&#8364;&#8482;t invest enough in recruiting and retention.&lt;/p&gt;


	&lt;h3&gt;Use a ticket list / work queue&lt;/h3&gt;


	&lt;p&gt;We put all of our tasks, bugs, and new requests into a list of &amp;#8220;tickets&amp;#8221;, often called a work queue.  We use Trac.  In fact, we use &lt;a href="http://www.assembla.com"&gt;Assembla.com&lt;/a&gt;. We sort the tickets by priority and milestone, so the tasks from the next milestone are on top of the list (queue).  It&#226;&#8364;&#8482;s easy to figure out what to do.  Just look at the list of tickets and pick something near the top.  You can try to adopt a more rigorous agile methodology, but you will find that it is hard to improve on this simple and effective technique.&lt;/p&gt;


	&lt;h3&gt;Build something now, even though we know we will have to rebuild&lt;/h3&gt;


	&lt;p&gt;We started building copies of the old product, and copies of features that we saw in other products, before we even had a coherent visual design or plan for the new product.  Then we ripped out a lot of the guts and rebuilt it.  This was still faster than waiting around for a coherent design and product plan.  Why?  In this new environment, development is faster than product management.  From a product management point of view, it is faster to ask for changes than to figure out what the product should do from scratch.  It takes forever to build something that is unknown, but if you know what you want, builds are fast. So, the two steps (copy and redesign/refactor), with clear instructions for each, are faster than one build from a blank sheet.&lt;/p&gt;


	&lt;h3&gt;Don&#226;&#8364;&#8482;t split the codebase into components&lt;/h3&gt;


	&lt;p&gt;In this application we needed several types of servers that were different &#226;&#8364;&#8220;a permissioned application, a public portal, and a central user registration server.  We lumped them together in one repository and one application with configurable &#226;&#8364;&#339;roles&#226;&#8364;? that turn features on or off.  This made the code a bit more complicated.  However, it made other aspects of managing the app &#226;&#8364;&#8220; setting up developers, testing, staging, deployment &#226;&#8364;&#8220; a lot simpler.&lt;/p&gt;


	&lt;h3&gt;Daily releases instead of stabilization periods&lt;/h3&gt;


	&lt;p&gt;In a normal Web 2.0 style release, you just run beta releases of increasing quality, until you are ready to do a bigger announcement.  In this case, I didn&#226;&#8364;&#8482;t think we had time for such gradual stabilization.  I initially recommended that we do a code freeze with a week of testing and stabilization.  The resulting product might not be perfect, but at least it wouldn&#226;&#8364;&#8482;t crash.  We started with a daily release process and no code freeze, and it worked well enough that we didn&#226;&#8364;&#8482;t need to a code freeze and stabilization period.  It&#226;&#8364;&#8482;s not bug free, but we fix the bugs as fast as people notice them.  I now have abundant evidence, from several projects, one of them a big enterprise &lt;span class="caps"&gt;ASP&lt;/span&gt;, that users will tolerate a product which comes directly from developers, every day, with minimal testing, if the time to release a bug fix is less than 24 hours.&lt;/p&gt;


	&lt;h3&gt;Make a usage dashboard&lt;/h3&gt;


	&lt;p&gt;Program a custom dashboard that shows registration and usage statistics.  Everyone on the team will use it every day as soon as the beta period starts.&lt;/p&gt;


	&lt;h3&gt;Web services are your friend&lt;/h3&gt;


	&lt;p&gt;Arranging integration with external systems can absorb a lot of calendar time.  We were able to use &lt;span class="caps"&gt;SOAP&lt;/span&gt; services (easily offered or called in Rails) to make it go faster than I expected.&lt;/p&gt;


	&lt;h3&gt;Hire users as product managers&lt;/h3&gt;


	&lt;p&gt;Product management &#226;&#8364;&#8220; figuring out what the product should do &#226;&#8364;&#8220; became the bottleneck early on and remains the bottleneck.  Using the above techniques, the developers pull requests off the ticket stack and implement them as fast  as we can make the requests.  Our strategy to deal with this is to hire users as part-time product managers, and let them each work with a mockup team to redesign the visual parts of the app.  With the distributed team system, it&#226;&#8364;&#8482;s easy to integrate part-timers like this.&lt;/p&gt;


	&lt;h3&gt;Don&#226;&#8364;&#8482;t create obstacles: Users provide the data&lt;/h3&gt;


	&lt;p&gt;We took out the centrally controlled categories and allowing users to just type their own tags for the content that they entered and shared.  I think we would still be waiting if we had to build our own categories.  We got a surprise when we released with a comprehensive list of US data, and we had immediate requests from dozens of countries.  I now think that users should be able to post additions to any part of the database if they need to.  Why block them?  Sometimes the additions can be released directly, and sometimes they may need to be approved by an editor.&lt;/p&gt;


	&lt;h3&gt;Documentation on a wiki&lt;/h3&gt;


	&lt;p&gt;If your application changes every day, you need to put the documentation on a wiki.  If you set up the documentation wiki early in the development process, you can start linking to it from inside the app, just like embedded help pages.&lt;/p&gt;


	&lt;h3&gt;Find the one thing people will use&lt;/h3&gt;


	&lt;p&gt;If you can find the one feature that people will use and adopt, it makes the whole system simpler.  So, release early and often and watch your dashboard.  Find that thing.&lt;/p&gt;</description>
      <pubDate>Sun, 07 Jan 2007 21:15:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:da8afd4fe43da86e6518be87762f9a97</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2007/01/07/lessons-for-hyper-agile-product-development</link>
      <category>Agile Development</category>
      <category>Open Source</category>
      <category>Software Business</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/35</trackback:ping>
    </item>
    <item>
      <title>To meet an impossible deadline, cut your time in half</title>
      <description>&lt;p&gt;A major consumer goods company told me last Tuesday that they wanted to put in a gift purchasing system. This involved a couple of roles (giver and receiver), a credit card gateway, Web services for fulfillment, email reminders, etc &#8211; a serious application.  I would normally want about 6 weeks to build and test such a system. They told me that wanted it for the following Monday &#8211; 6 days away &#8211; and they were willing to pay a premium for that.  I took the job, and I told everyone that it wouldn&#8217;t make sense to do it in six days.  Instead, we needed to do it in three days.&lt;/p&gt;


	&lt;p&gt;When I plan a software development job that has a deadline, I use a 50% scheduling rule.  We need to have a relatively complete, working version of the software available for testing when we are halfway to a full release.  If I want to do a product release 3 months from now, I plan to have a testable version of the product in 1.5 months.  The halfway release can be rough and even ugly, but it needs to do most of the things the complete release will do.  This rule ensures that the incremental release process can work its magic.  You have half of the total time available for finding and fixing problems and making improvements.&lt;/p&gt;


	&lt;p&gt;What if someone gives you a seemingly impossible schedule?  What if you don&#8217;t have enough time to get even the first version out?  In this case, I still use the 50% rule.  You force yourself to deliver something in half the time.&lt;/p&gt;


	&lt;p&gt;This just recognizes reality.  In reality, no product is done in its first testable release.  If you think you can do a release without spending half your time on incremental improvement, you are probably wrong.  If instead you make a simpler product and give yourself a few cycles to make it work properly, you will look pretty good.  As an added bonus, you motivate the business guys that you are working with to deliver all the stuff you need.&lt;/p&gt;


	&lt;p&gt;We posted our midpoint release early on Friday.  It didn&#8217;t look great, but it had all of the transactions and it worked.  I got my gift.  Thursday was an all-nighter, but now it&#8217;s Sunday, and I have time to write this blog post.&lt;/p&gt;</description>
      <pubDate>Sun, 10 Dec 2006 16:53:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:8b0767d840e8528df50f9ce21478bd1f</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/12/10/to-meet-an-impossible-deadline-cut-your-time-in-half</link>
      <category>Agile Development</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/32</trackback:ping>
    </item>
    <item>
      <title>Roadmapping - how your product finds its way</title>
      <description>&lt;p&gt;A startup will often live or die based on its first product release. Did it get released? Did people find it useful? Good roadmapping dramatically improves your chance of getting to &#226;&#8364;&#339;Yes!&#226;&#8364;? on these critical questions.&lt;/p&gt;


	&lt;p&gt;Read about my &lt;a href="http://onstartups.com/Home/tabid/3339/articleType/ArticleView/articleId/1040/RoadmappingHowYourProductFindsItsWay.aspx?navby=Recent"&gt;roadmapping technique&lt;/a&gt; over at th On Startups blog.&lt;/p&gt;


	&lt;p&gt;I think it&amp;#8217;s my most immediately useful post so far.  It&amp;#8217;s a technique that has helped me work with individual entrepreneurs, my own products, venture funded companies, and giant corporations.  I gave it to Dharmesh at On Startups because he has a much bigger readership that could benefit from this technique.&lt;/p&gt;


	&lt;p&gt;So, &lt;a href="http://onstartups.com/Home/tabid/3339/articleType/ArticleView/articleId/1040/RoadmappingHowYourProductFindsItsWay.aspx?navby=Recent"&gt;check it out&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 28 Sep 2006 21:43:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:f53ef6be4c89f9ab6a969e508844bde8</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/09/28/roadmapping-how-your-product-finds-its-way</link>
      <category>Agile Development</category>
      <category>Open Source</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/27</trackback:ping>
    </item>
    <item>
      <title>Two kinds of teams - shared leader, and single leader</title>
      <description>&lt;p&gt;Should team task assignments be controlled by a project manager, or should each team member create and accept tasks?  You can get a big increase in peformance if you know when to use each of these methods of organization.&lt;/p&gt;&lt;p&gt;A client wrote:
&amp;#8220;my plan was to have them work separately first and then after they passed the one week test to have the ones we like work together. Is this not possible? I think we have a fundamental difference on the idea of a &amp;#8220;team.&amp;#8221; Your model is a self-organizing group of people who work on the same code. My model is a group of people who work towards the same goal by writing individual components while making sure all the components interface correctly.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;I wrote back:&lt;/p&gt;


	&lt;p&gt;You might be interested in this: &lt;a href="http://www.douglasksmith.com/disciplineofteams.htm"&gt;The Discipline of Teams&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;A friend of mine, Doug Smith, wrote a series of books starting with &amp;#8220;The Wisdom of Teams&amp;#8221; and &amp;#8220;The Discipline of Teams&amp;#8221; in which he looked at how teams are managed.  He believes that there are two different management structures.  One is the &amp;#8220;team&amp;#8221;, which is a group of people that self organizes in the sense that they pick their own tasks, and any one of them can lead the effort if needed.  A team can form if people have a strong sense of a shared goal.  The other structure is the &amp;#8220;single leader group&amp;#8221;, in which a group leader figures out who should do what task at what time.  That&amp;#8217;s a classic management structure that can work even if the shared goal isn&amp;#8217;t clear to everyone.  According to Doug, there are specific circumstances when you would choose a &amp;#8220;single leader group&amp;#8221; versus a &amp;#8220;team&amp;#8221;.  I can see you making this type of decision at Grazr.  Your work with Kurt is part of a team.  Your work with the new guys is single-leader.&lt;/p&gt;


	&lt;p&gt;I liked these ideas, learned from them, and invited Doug to be on the board of directors at PowerSteering Software, where we hoped to implement tools for both methodologies.  I&amp;#8217;m a big supporter of the single-leader methodology when a leader is in place to make it work, and I use it myself when working with new guys.&lt;/p&gt;</description>
      <pubDate>Sat, 23 Sep 2006 18:29:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2cf6d3763a000fd3d5c08fe051e41870</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/09/23/two-kinds-of-teams-shared-leader-and-single-leader</link>
      <category>Agile Development</category>
      <category>General</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/25</trackback:ping>
    </item>
    <item>
      <title>Jon Udell Podcast: - A conversation with Andy Singleton about building global teams</title>
      <description>&lt;p&gt;&lt;a href="http://weblog.infoworld.com/udell/"&gt;Jon Udell&lt;/a&gt; included me in his Friday podcast series this week with &lt;a href="http://weblog.infoworld.com/udell/2006/05/19.html"&gt;a conversation with Andy Singleton about building global teams&lt;/a&gt; . Jon has been putting up with me since 1993, when he edited some freelance articles that I wrote for Byte magazine.  In 2003 he coined the term &amp;#8220;dynamic development&amp;#8221; to describe the work I was doing.  He has recently been commenting on user innovation and the power of human networks to do work beyond open source sofware.  In this conversation, he turns me on to Yochai Benkler&amp;#8217;s &lt;a href="http://www.benkler.org/wealth_of_networks/index.php?title=Main_Page"&gt;The Wealth of Networks&lt;/a&gt;, and he cautions against a &amp;#8220;walled garden&amp;#8221;.  Maybe we&amp;#8217;ll be able to work together on a universally portable user profile.&lt;/p&gt;</description>
      <pubDate>Sat, 20 May 2006 22:53:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:8e9c6a35f9c18220b813a3c8678e5f1b</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/05/20/jon-udell-podcast-a-conversation-with-andy-singleton-about-building-global-teams</link>
      <category>Agile Development</category>
      <category>Open Source</category>
      <category>Breakout Development</category>
      <category>Innovation</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/24</trackback:ping>
    </item>
    <item>
      <title>Ancient Greek Craftsmanship for Software Teams</title>
      <description>&lt;p&gt;I have been reading a book called &lt;i&gt;&lt;b&gt;The Greek Commonwealth&lt;/b&gt; &#226;&#8364;&#8220; Politics and Economics in Fifth Century Athens&lt;/i&gt;.  Originally published in 1911, it&#226;&#8364;&#8482;s not out of date.  According to the author, &#226;&#8364;&#339;it is natural for human beings to enjoy using their own best faculties.  Men never felt that enjoyment so keenly, or put so much high effort into its attainment, as in the workshops of ancient Greece.  If you seek a proof, go look through the shelves of our Greek museums.  There is hardly an object that they made, however rude, but bears on it, sometimes faintly, sometimes with speaking clearness, the touch of the spirit of Art.&#226;&#8364;?  How can we bring that spirit to our work, every day?&lt;/p&gt;&lt;p&gt;This author (Alfred Zimmerman) also writes:
&#226;&#8364;&#339;Our modern industrial system, with an ingenuity so wicked that one might believe it to be deliberate, has contrived to take the joy out of craftsmanship, and so to choke up the very springs of art.  It has replaced, wherever possible, the delicate skill of the human hand by inhuman machinery, and the independent thought of the human brain by soulless organization.  It has removed the maker or producer from all association with the public for whom he works, and substituted a deadening cash-nexus for the old personal relationship or sense of effort in a corporate cause.  Above all, it has taken from him his liberty, and forced him to work for a master who is no artist.&#226;&#8364;?&lt;/p&gt;


	&lt;p&gt;Alfred Zimmerman, a long-dead Oxford don, could lead a workshop on how to build modern, high-performing software teams and startups.  Here are some of his observations about the craftsmen of ancient Greece:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;When the Greek city states hired craftsmen, the foreman and the well-know artists received the same rate of pay as all of the other men on the crew, including the slaves.  This rate was set for a long time at one drachma per day.  There were no social barriers at work.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;The most talented competed not for money, but for honors, which in Athens included a golden crown.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Competing craftsman clustered together, sharing their clientele, their stories, and their knowledge.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;They had enough leisure time for stories, and aspired also to be citizens and soldiers.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Greek workshops tended to be small &#226;&#8364;&#8220; a craftsman and several apprentices &#226;&#8364;&#8220; and they were never bigger than 20 people.  The master was always an artist, not a manager.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Like many before me, I believe that the pre-Christian philosophy of the ancient Greeks gives us vision of what a man can achieve on Earth, as a citizen and father.  I draw inspiration from Odyssyus, the ultimate survivor.  I am often amused by the goofy anecdotes of Herodotus.  Sometimes I read the endless political debates of the democrats, demogogues, and tyrants, learning how great nations can be hijacked by small-minded men, and how the small-minded can eventually be cast off.  That sounds relevant to my reading of the daily news.&lt;/p&gt;


What American cannot be inspired by the story of the war against Persia?  The Greek citizens came out of their stone huts and small towns, and stood against the army of the greatest and wealthiest imperial power on the face of the earth.  There was the last stand of the 300 Spartans, the desperate evacuation of Athens, the high-stakes maneuvering at Salamis.  Then came victory, the Parthenon, and science as we know it.  2000 years later the minutemen had this very story on their minds as redcoats marched into Concord.&lt;br/&gt;  Emerson gives us the scene:&lt;br/&gt;
&lt;blockquote&gt;
By the rude bridge that arched the flood,&lt;br/&gt;
Their flag to April&amp;#8217;s breeze unfurled,&lt;br/&gt; 
Here once the embattled farmers stood,&lt;br/&gt; 
And fired the shot heard round the world.
&lt;/blockquote&gt;</description>
      <pubDate>Sat, 20 May 2006 21:16:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:c778c5961a0750dd5551701f04e9e3d3</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/05/20/ancient-greek-craftsmanship-for-software-teams</link>
      <category>Agile Development</category>
      <category>Innovation</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/23</trackback:ping>
    </item>
    <item>
      <title>Introducing Assembla.com and Breakout</title>
      <description>&lt;p&gt;Over the past few months, we have done a lot of work on &lt;a href="http://www.assembla.com"&gt;Assembla.com&lt;/a&gt;, our online service for building and running distributed software teams, and Breakout, the underlying platform for professional networks.  Now, we are ready to share.  If you have suggestions for user groups that can benefit from this resource, or bloggers that might be interested in it, let me know at &lt;a href="mailto:andy@assembla.com"&gt;andy@assembla.com&lt;/a&gt;  Read on for the story-&gt;&lt;/p&gt;&lt;h3&gt;Assembla &amp;#8211; for dynamic, distributed software teams&lt;/h3&gt;


	&lt;p&gt;Assembla.com provides workspaces and services for distributed software teams.  Techcrunch readers can think of it as a sort of construction kit for Web 2.0 development teams.  These teams are usually distributed, and often composed on the fly for a particular project.  We call this approach &lt;i&gt;inspired by open source&lt;/i&gt;.&lt;/p&gt;


	&lt;p&gt;I have been working on this approach for years, doing rapid development with great developers and low fixed cost.  Now, we are bottling the magic and making it available on a larger scale.&lt;/p&gt;


	&lt;p&gt;If you are managing software projects, you can create a project workspace on Assembla.com to manage your code, documentation, and team permissions.  This creates a secure IP asset that you build a team around as needed, with no fixed costs and unlimited team scalability.  You can also advertise opportunities publicly or selectively.  If you work on these projects, you can create a personal space, post a profile, join teams, and engage in public and private discussion with potential employers.&lt;/p&gt;


	&lt;p&gt;The online service is a work-in-progress with many rough edges, but it is feature rich in comparison with other collaboration services.  Each workspace offers a wiki, discussion, issue management, feed aggregation, email alerts to the team, team invitation and permissioning, file store, Typo blog.  Those are generic features for any professional network.  For software teams, we have integrated Trac and Subversion, with instant activation and single-sign-on permissions.  There is currently no restriction on the number of spaces, files or pages allocated to a particular user.&lt;/p&gt;


	&lt;p&gt;The service is free.  We make our living supplying premium applications, and full-service distributed team recruiting, management, and development.&lt;/p&gt;


	&lt;h3&gt;A Platform for Professional Networks&lt;/h3&gt;


	&lt;p&gt;We describe the underlying Breakout platform as &lt;i&gt;Social Software to Get Things Done&lt;/i&gt;.  Our approach is loosely like cramming MySpaces together with real enterprise software.  Over the past few years we have learned that certain kinds of software &amp;#8211; social software for exhibiting profiles and starting discussions &amp;#8211; is very easy to adopt.  We get people engaged with easy-to adopt profiling and collaboration features, and then we let them progressively crank down on permissions and ramp up application capabilities to make real working teams.&lt;/p&gt;


	&lt;p&gt;We describe the result as a &amp;#8220;professional network&amp;#8221; &amp;#8211; a population of people who work together in a variety of permission groups, ranging from global (eg an open source project), to enterprise, to small project teams.  We provide mechanisms to engage these professionals, help them organize themselves into groups and projects, and support them with on-demand applications, which can be added to the workspace with integrated permissions in the same way that Trac and Subversion are integrated with assembla.com.&lt;/p&gt;


	&lt;p&gt;Our first customer for this platform is working on a network to manage the response to biological threats such as an avian flu epidemic.  So, we believe social software can help get very important things done.&lt;/p&gt;


	&lt;p&gt;The software is available for enhancement and customization under an open source license.&lt;/p&gt;


	&lt;h3&gt;Team&lt;/h3&gt;


	&lt;p&gt;Assembla&amp;#8217;s experienced management team came together in order to bring &amp;#8220;inspired by open source&amp;#8221; practices to enterprise software.  Andy Singleton was the founder and &lt;span class="caps"&gt;CEO&lt;/span&gt; of Cambridge Interactive and PowerSteering Software, now the leading application for corporate six sigma deployments.  Sesha Pratap was a founder of Centerline Software, which he grew to $20M as CE.  Jon Stillman has 15 years of experience leading technology projects at GE, topped of with a stint doing strategy for Divine Interventures and a venture partner position at High Peaks Ventures.&lt;/p&gt;</description>
      <pubDate>Sun, 30 Apr 2006 10:21:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:ac4691e125b6b3e291c4863c0551a4bc</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/04/30/introducing-assembla-com-and-breakout</link>
      <category>Agile Development</category>
      <category>Breakout Development</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/21</trackback:ping>
    </item>
    <item>
      <title>When hiring - try before you buy</title>
      <description>&lt;p&gt;To me, it is self-evident that you should test any co-worker, in the job that they will be working at, before you make a permanent offer.  I was surprised to see how much criticism Dharmesh Shah picked up for &lt;a href="http://www.onstartups.com/Home/tabid/3339/articleType/ArticleView/articleId/556/Default.aspx"&gt;recommending a two month probationary period&lt;/a&gt; for new hires, during which the employer or employee could withdraw without negative consequences.  Much of the criticism was along the lines of &amp;#8220;You should do better interviews&amp;#8221;.  I suspect those critics have not hired many people themselves.  I have been doing it for 20 years, and my hit rate for picking really good workers (who don&amp;#8217;t bail out) from even the most extensive interview process is still only about 50%.  By persisting in finding ways to run trials, I can move that to 90%.  This makes an enormous difference in startup risk and ramp time.&lt;/p&gt;&lt;p&gt;&lt;span class="caps"&gt;A 50&lt;/span&gt;% failure rate sounds high, but if you actually add up the reasons that people leave a job within the first three months, it might even be an underestimate.  Reasons include:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;They aren&amp;#8217;t very good in the role and you encourage them to leave, or don&amp;#8217;t renew an agreement.&lt;/li&gt;
		&lt;li&gt;You can&amp;#8217;t work with them or you don&amp;#8217;t agree with each other.&lt;/li&gt;
		&lt;li&gt;You change your priorities or you can&amp;#8217;t afford them.&lt;/li&gt;
		&lt;li&gt;They determine this job isn&amp;#8217;t a good opportunity, because the company or role has limited prospects.&lt;/li&gt;
		&lt;li&gt;They determine on their own that they can&amp;#8217;t do a good job, and bail out.  Or, perhaps the advancement path isn&amp;#8217;t clear, or the job role isn&amp;#8217;t the best one for them.  People are surprisingly efficient at figuring out their chance of success in a job.&lt;/li&gt;
		&lt;li&gt;They find they can&amp;#8217;t commit the time you are asking for.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;There is one place that I disagree with Dharmesh.  He&amp;#8217;s recommending a two month trial period.  I think that is too long.&lt;/p&gt;


	&lt;p&gt;There is a some evidence, discussed in my article &lt;a href="http://andy.blogs.assembla.com/articles/2005/06/26/blink-and-the-art-if-hiring-the-best"&gt;Blink and the art of hiring the best&lt;/a&gt;, that people form strong opinions within the first two minutes.  However, those are inaccurate opionions that are not based on actual work in the chosen role.  Those are the inaccurate opinions that come out of the interview process.&lt;/p&gt;


	&lt;p&gt;You have to give people space to work.  However, once your mutual opinion forms, it is unlikely to change.  So, once your opinion forms, you should act on it.  This will not take anywhere near two months.&lt;/p&gt;


	&lt;p&gt;You will form an opinion of someones effectiveness, and they will form an opinion of you and their chances of success on the job, within the first week of work.  If the person is working remotely, it may take two weeks to stabilize the opinion.&lt;/p&gt;


	&lt;p&gt;My goal is to put someone in a working role &lt;span class="caps"&gt;BEFORE I&lt;/span&gt; interview them.  That way, I get the acccurate information, without the inaccurate information that comes out of interviews.  This is possible with developers, but harder for other positions.&lt;/p&gt;


	&lt;p&gt;If you do hire someone and they quit or are released after a two month trial, you just did something very expensive and very risky.  You spent from $10K to $80K on recruiting, salary, admin time, severance, etc., and lost two months.  It&amp;#8217;s a huge risk that few startups can afford, and it&amp;#8217;s avoidable.&lt;/p&gt;


	&lt;p&gt;I find that getting good at doing the one or two week trials makes an enormous difference in startup ramp time.  This can move the expected time to fill a position from two months to two weeks.&lt;/p&gt;</description>
      <pubDate>Sun, 30 Apr 2006 09:41:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:465bfc8de261fd60a0e16ee7fc7a03b8</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/04/30/when-hiring-try-before-you-buy</link>
      <category>Agile Development</category>
    </item>
  </channel>
</rss>
