<?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</title>
    <link>http://andy.blogs.assembla.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Wetware - Men among the Machines, by Andy Singleton</description>
    <item>
      <title>We are moving to Blog.Assembla.Com</title>
      <description>&lt;p&gt;We are moving most of our content to &lt;a href="http://blog.assembla.com"&gt;Blog.Assembla.Com&lt;/a&gt;.  Please subscribe on that site if you are interested in hyper-agile development, Assembla.com services, software &amp;#38; internet startups, and team building.&lt;/p&gt;


	&lt;p&gt;I will continue to update this blog with my personal messages.&lt;/p&gt;</description>
      <pubDate>Thu, 21 Jun 2007 11:38:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:fc2c198e-8848-4ef3-8c78-ca8bb9206f34</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2007/06/21/we-are-moving-to-blog-assembla-com</link>
      <category>General</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/53</trackback:ping>
    </item>
    <item>
      <title>US visas run out.  What's the solution?</title>
      <description>We ran out of H-1B visas on the first day. &lt;span class="caps"&gt;US &lt;/span&gt;Immigration services received 150,000 applications for 65,000 H-1B visas, which are the visas most commonly used by programmers seeking to work inthe United States &amp;#8211; as summarized by &lt;a href="http://news.com.com/2061-10788_3-6173035.html?part=rss&amp;#38;tag=2547-1_3-0-20&amp;#38;subj=news"&gt;this Cnet story&lt;/a&gt;.   Last year, it took two months to reach the same limit.  What does this mean?
	&lt;ul&gt;
	&lt;li&gt;America still is the land of opportunity.  Our technology business has recovered, and we are ready to work.  We need to bring in talented people to build and create our entrepreneurial businesses.&lt;/li&gt;
		&lt;li&gt;Our government has converted this opportunity into a problem &amp;#8211; a problem for employers, and a problem for offshore talent.&lt;/li&gt;
		&lt;li&gt;It has become even more important to figure out how to effectively manage distributed teams, so that we can work our way around bureaucratic obstacles.&lt;/li&gt;
	&lt;/ul&gt;&lt;p&gt;There is another, important implication that I think has been overlooked by almost every commentator on the immigration issue.  Employers are increasingly eager to bring skilled workers to the US, instead of leaving them in &amp;#8220;low cost&amp;#8221; countries, because the cost differential has narrowed.   It doesn&amp;#8217;t cost much extra to move someone to the US.  If US salaries were much higher, there would be a bigger incentive to leave workers at home.&lt;/p&gt;


	&lt;p&gt;In the last year, salaries in places like India and Russia have risen rapidly, the dollar has declined, and US salaries have risen only moderately.  So, the demand for H-1B visas indicates two favorable trends for US skilled workers.  First, there is a big demand for local skilled labor here in the land of free enterprise.  Second, the price war that fueled outsourcing has mostly run its course, and the next field of competition is about quality and the freedom to do a good job.&lt;/p&gt;


	&lt;p&gt;Although the advocates of raising the H-1B cap deny that H-1B visa holders push down wages for skilled Americans, I think it is probably true that wages get pushed down somewhat.  A pure economic analysis would show that wages are held down, while the number of jobs is increased.  I am willing to admit that I am not sure that this is a bad thing.  I like the idea that jobs go to the best candidate.  And, I work for a number of startups that are strugging to attract local technical talent so they can move forward.&lt;/p&gt;


	&lt;p&gt;So, we are working to fill this demand by building our local recruiting skills, and by constantly improving our ability to manage globally distributed teams.&lt;/p&gt;</description>
      <pubDate>Sun, 08 Apr 2007 09:52:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:fef77d41-c773-43ae-95f3-2d90c8975201</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2007/04/08/us-visas-run-out-whats-the-solution</link>
      <category>Software Business</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/50</trackback:ping>
    </item>
    <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>What &amp;quot;Enterprise Web  2.0&amp;quot; Means to Me</title>
      <description>&lt;p&gt;I&#226;&#8364;&#8482;m seeing a lot of the phrase &#226;&#8364;&#339;Enterprise Web 2.0&#226;&#8364;?.  We&#226;&#8364;&#8482;re doing some work with Nexaweb, a company that positions itself as delivering Enterprise Web 2.0.  I recently had a great discussion at the Enterprise Web 2.0 meetup here in Boston.  Google turns up a bunch of hits, including a blog and a conference.  What does it mean?  Is it important, or just spin?&lt;/p&gt;


	&lt;p&gt;I fought the &#226;&#8364;&#339;Web 2.0&#226;&#8364;? label for a long time.  It seemed vague, and I suspected that as soon as I started using the phrase, I would find it replaced by &#226;&#8364;&#339;Web 3.0&#226;&#8364;? and thrown into the &#226;&#8364;&#339;Expired&#226;&#8364;? column in Wired magazine.  But as I started learning more about how to launch Web 2.0 products, I found that the term started meaning something to me.  It represented a distinct package of techniques that could solve some big problems with enterprise systems.  So, for us, it&#226;&#8364;&#8482;s not just spin.  It&#226;&#8364;&#8482;s the useful product of intense evolutionary pressure and innovation.&lt;/p&gt;


	&lt;p&gt;Web 2.0 players like Assembla, working on startup projects under severe time and cost pressure, in a global marketplace, have developed processes that will deliver substantial benefits when they are applied to enterprise problems.&lt;/p&gt;


	&lt;p&gt;Some people define Web 2.0 with product attributes like ajax interfaces.  That&#226;&#8364;&#8482;s one part of it.  Others define it around the way the product is built and used &#226;&#8364;&#8220; with user-generated content and mashups.  Those are other parts.  In reality Web 2.0 is a product strategy that uses all of the parts.  Web 2.0 is a product strategy that is designed to maximize adoption.&lt;/p&gt;


	&lt;p&gt;The fundamental building blocks of a Web 2.0 product add up to this whole.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;It&#226;&#8364;&#8482;s delivered over the Web.  The Web is global, so anyone can use the product.  It&#226;&#8364;&#8482;s delivered to standard browsers that everyone has.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Users can get started quickly.  Usually, there is a free trial.  If registration is required, it&#226;&#8364;&#8482;s fast.  Even the email confirmation step is being squeezed out so that users can get in faster.  I would describe the ideal Web 2.0 adoption sequence as free, fast, and fun.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;The UI is fast and fun overall.  We don&#226;&#8364;&#8482;t want people getting frustrated and moving on before they have fully adopted the product.  That&#226;&#8364;&#8482;s why the ajax and other &lt;span class="caps"&gt;RIA&lt;/span&gt; techniques are important.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Product launch and improvement cycles are very fast. That means that the product is better.  You get what you want fast.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;The software is in permanent beta mode.  If users want fast product cycles, they have to pay for it by doing testing.  This means you have to find a group of users who want the newer and less reliable stuff.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Users share data and documentation.  They know what they want, and if they can share it directly, it dramatically shortens the product cycle.  Over at MySQL, users add comments directly to the online manual.  Often the comments are better than the manual entries. And if you need to sort your data, forget edited topics.  Users need to put in their own tags.  An editor can&#226;&#8364;&#8482;t keep up with them. It&#226;&#8364;&#8482;s a small step from that to Wikipedia.  What about teachers sharing lesson plans?  It&#226;&#8364;&#8482;s faster than a 3-year textbook publishing cycle.  Programmers sharing code?  It seems so obvious now.&lt;/li&gt;
	&lt;/ul&gt;


Why is Web 2.0 important for &amp;#8220;The Enterprise&amp;#8221;?
	&lt;ul&gt;
	&lt;li&gt;The biggest risk with enterprise systems is user adoption.  Most planned enterprise systems are never adopted.  When they are adopted, they require expensive training and infrastructure.  Web 2.0 is a silver bullet aimed directly at the largest risk of enterprise software deployment &#226;&#8364;&#8220; the failure to adopt in a timely way.&lt;/li&gt;
		&lt;li&gt;Web 2.0 product cycles and deployment costs are cheaper than typical enterprise software costs.&lt;/li&gt;
		&lt;li&gt;As an added benefit, Web 2.0 systems can capture value from &lt;span class="caps"&gt;SOA&lt;/span&gt; investments by putting apps on top of them.&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Thu, 14 Dec 2006 16:10:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:725490c122c364b1b2293a87be5f2b9d</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/12/14/what-enterprise-web-2-0-means-to-me</link>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/34</trackback:ping>
    </item>
    <item>
      <title>Marketing In A Web 2.0 World: Why The Best Products Sometimes Win</title>
      <description>&lt;p&gt;Read the &lt;a href="http://onstartups.com/Home/tabid/3339/articleType/ArticleView/articleId/1240/Default.aspx"&gt;full article at OnStartups&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Here is a summary:&lt;/p&gt;


	&lt;p&gt;For 100 years, it has been a truism that
&amp;#8220;the best product doesn&amp;#8217;t win.  The product with the best marketing wins.&amp;#8221;  At the risk of being thrown out of capitalist society, I claim that on the Web, this is no longer true.  The best product often does win, with virtually no marketing, if it is easy to adopt.&lt;/p&gt;


	&lt;p&gt;In this new product cycle, figuring out how to get users to adopt is the hard and expensive thing. Marketing serves the adoption work by bringing in the right number of prospects for us to experiment with.&lt;/p&gt;</description>
      <pubDate>Wed, 13 Dec 2006 22:03:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:06a0f228c1fced3fba6ee95f13e1bd46</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/12/13/marketing-in-a-web-2-0-world-why-the-best-products-sometimes-win</link>
      <category>Software Business</category>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/33</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>First release of Rumrz - What's Hot in Finance</title>
      <description>&lt;p&gt;Please check out our new community news site,  Rumrz &amp;#8211; What&amp;#8217;s Hot in Finance.&lt;/p&gt;


	&lt;p&gt;Site: &lt;a href="http://rumrz.com"&gt;http://rumrz.com&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;About: &lt;a href="http://www.rumrz.com/content/about"&gt;http://www.rumrz.com/content/about&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Community sites like Rurmz always start from a very small base of contributors.  I expect that traffic on the site will be slow for the next few months, but that it will grow at an exponential rate and become significant within six months.  Your early contribution will set the tone and establish your expertise.  Thanks.&lt;/p&gt;&lt;p&gt;First, I was laughed out of the room.  This spring, I talked to some of my friends in the securities research business to find out if they were interested in using our Assembla workspaces to collaborate with clients.   Everybody I talked to totally panned the idea of collaboration on securities research.  Who would want to collaborate?  They just want hot tips thrown over the wall.  However, almost everyone we talked to was also interested in the idea of the &amp;#8220;wisdom of crowds&amp;#8221;.  They were looking for some way to identify experts with unique insights, or to find out what people are talking about, or what direction opinion was headed.  There was a general suspicion that social software techniques could yield useful information.&lt;/p&gt;


	&lt;p&gt;So, I looked for an opening &amp;#8211; the simplest and most easily adopted type of social software.  I looked at community news sites like Reddit and Digg.  These sites are fun to read, and have a fascinating ability to show you &lt;b&gt;what&amp;#8217;s hot&lt;/b&gt;, through the action of thousands of readers and contributors.&lt;/p&gt;


	&lt;p&gt;To turn this into a professional tool, I added a twist that combines Web 2.0 accessibility with the old idea of controlled circulation.  The site is open to the public, but users who register as Accredited or Professional users get extra privileges &amp;#8211; and extra weight when they submit or vote.  A person browsing can look for links rated by the public, or only by professionals.&lt;/p&gt;


	&lt;p&gt;Once I decided to move on this, our amazing development team brought us to a a beta release in four weeks.  15 years ago, I was working building financial information services to run on proprietary networks.  In those days, Bloomberg was a startup that cruised past Telerate and Reuters with much faster product cycles.  I think our fast, enterprise Web 2.0 release process will give us similar opportunities in the Internet age.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Nov 2006 10:02:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2ba66d89df27d31b83e2f00469984c64</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/11/13/first-release-of-rumrz-whats-hot-in-finance</link>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/31</trackback:ping>
    </item>
    <item>
      <title>Trac / SVN server upgrade today</title>
      <description>&lt;p&gt;We finished a Trac and &lt;span class="caps"&gt;SVN&lt;/span&gt; server upgrade today.  This will increase our reliability.  However, some people were disconnected from their development space because we changed the IP address of &amp;#8220;tools.assembla.com&amp;#8221;, and this took time to propagate from the &lt;span class="caps"&gt;DNS&lt;/span&gt;.  I hope everyone is working now.  Thank you for your patience.&lt;/p&gt;


	&lt;p&gt;We had to upgrade to a bigger server with much more disk space because we now are hosting 844 workspaces with Trac and Subversion.&lt;/p&gt;


	&lt;p&gt;If you continue have trouble reaching the &lt;span class="caps"&gt;SVN&lt;/span&gt; server because you have the old IP address, please add the correct address your &amp;#8220;hosts&amp;#8221; file.  The hosts file is usually in /etc/hosts or /windows/system32/drivers/etc/hosts on windows.&lt;/p&gt;


	&lt;p&gt;Here is the correct hosts line:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;66.180.170.8 tools.assembla.com&lt;/p&gt;
	&lt;/blockquote&gt;</description>
      <pubDate>Sun, 12 Nov 2006 22:20:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:e31e06e676028a5f0597a25ccc085f8b</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/11/12/trac-svn-server-upgrade-today</link>
      <trackback:ping>http://andy.blogs.assembla.com/articles/trackback/30</trackback:ping>
    </item>
  </channel>
</rss>
