<?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 Software Business</title>
    <link>http://andy.blogs.assembla.com/articles/category/software-business</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Wetware - Men among the Machines, by Andy Singleton</description>
    <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>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>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>What a turnaround! Software is now a terrific business</title>
      <description>&lt;p&gt;Less than a year ago I wrote an article titled &#226;&#8364;&#339;&lt;a href="http://andy.blogs.assembla.com/articles/2005/05/19/is-the-enterprise-software-licensing-business-dying"&gt;Is the Enterprise Software Licensing Business Dying&lt;/a&gt;&#226;&#8364;?.  It was originally posted on &lt;span class="caps"&gt;IT &lt;/span&gt;Managers Journal, but it got picked up by Slashdot and various bloggers and podcasters.  It pointed out that enterprise buyers had stopped buying software licenses &#226;&#8364;&#8220; the mainstay of the software industry.  This caused years of misery for software professionals, years during which software was a bad business to be in.  But the light at the end of the tunnel was apparent even then, in the form of new packaging and revenue models.  Faster than I imagined, the prospects for the software industry have been transformed. We now have a wonderful alignment of good fundamentals &#226;&#8364;&#8220; increasing demand, declining costs, and rapid innovation.&lt;/p&gt;&lt;p&gt;Any industry with increasing demand, declining costs, and rapid innovation has got to be a great place to invest time and money.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;&lt;span class="caps"&gt;INCREASING DEMAND&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;I recently did some research into market size for Assembla&#226;&#8364;&#8482;s business plan, and what I was interested in was &#226;&#8364;&#339;on-demand software&#226;&#8364;? or &#226;&#8364;&#339;software as a service&#226;&#8364;? &amp;#8211; traditional enterprise applications packaged as subscription online service.  Almost every company that I looked at was growing at more that 50% per year.  This accounted for more than $3B in revenue.  So while the overall enterprise software market may be flat, there are big categories inside it where business is better than ever &#226;&#8364;&#8220; better than in the 90&#226;&#8364;&#8482;s boom.  Revenue is actually growing faster, from a bigger base.  That&#226;&#8364;&#8482;s the macro view.  The micro view is that globalization has doubled the pool of available programmers in five years, and we&#226;&#8364;&#8482;re already running out of them.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;&lt;span class="caps"&gt;DECLINING COSTS&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;At a presentation about social software at Harvard Business School, one of the questions the presenter asked was &#226;&#8364;&#339;why now?&#226;&#8364;?  Why are we seeing big, free social wikis, networking sites, blogging sites, classified markets, spaces?  Why now and not 5 years ago?  His answer was: because the basic costs are a lot lower now.  The servers, server software, and network bandwidth are cheap enough to give away.  That&#226;&#8364;&#8482;s why people can support bigger communities.  That&#226;&#8364;&#8482;s why businesses give away free online services instead of hiring salespeople.  It&#226;&#8364;&#8482;s cheaper.&lt;/p&gt;


	&lt;p&gt;The cost of making the applications to run on this platform has declined even more.  I estimate that my cost of building and launching an application is about 25% of what it was six years ago.  Labor is much less expensive because we now shop globally.  The &lt;a href="http://andy.blogs.assembla.com/articles/2006/02/13/the-rise-of-dynamic-languages-programmer-productivity"&gt;productivity of that labor rises continuously&lt;/a&gt; as we adopt better tools and processes.  We have more open source components to draw on, which has a big impact because studies show that &lt;a href="http://andy.blogs.assembla.com/articles/2005/07/25/reuse-reuse-reuse"&gt;code re-use&lt;/a&gt; is the single biggest contributor to increasing developer productivity.&lt;/p&gt;


	&lt;p&gt;Inside established software companies, lower costs mean higher margins.  The margins rise faster if companies take a pro-active approach to moving customers to lower cost software as a service platforms &#226;&#8364;&#8220; or as a friend of mine dubs it, &#226;&#8364;&#339;lift, shift, and maximize&#226;&#8364;?.   Software investors have some challenges and some opportunities.  One opportunity is to look at software as a cash producing business, doing &lt;span class="caps"&gt;LBO&lt;/span&gt;&#226;&#8364;&#8482;s, giving up on growth, and paying down debt and dividends with the cash not spent on new sales, marketing, and launch activities.  A new generation of entrepreneurs is figuring that out.  A challenge for software VC&#226;&#8364;&#8482;s is to figure out how to participate in a market with shrinking deal sizes.  In theory, that means they can do more deals, and give another bump to innovation.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;&lt;span class="caps"&gt;RAPID INNOVATION&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;We&#226;&#8364;&#8482;re in the middle of a rapid burst of innovation that I call Wetware.  Wetware is open source, globalization, Web 2.0, and user-generated-content.  It&#226;&#8364;&#8482;s the smart node in the stupid network.  It&#226;&#8364;&#8482;s people working together.  Inevitably, they will accomplish great things.&lt;/p&gt;


	&lt;p&gt;Wetware is a relatively obscure burst of innovation because it is new.  We used to follow Hardware.  When computers first became big business, we measured innovation by the rate of new hardware introduction.  Software was an obscure component.  Then came software.  We created Moore&#226;&#8364;&#8482;s law for hardware, and software became a more interesting business.  We followed platform launches and browser wars and client server and software as a service.  We&#226;&#8364;&#8482;re still in that phase.  Here comes Wetware.  We can&#226;&#8364;&#8482;t measure units of human innovation, and we don&#226;&#8364;&#8482;t measure the speed of organizational reconfiguration.  But we should, and we will.  It&#226;&#8364;&#8482;s coming fast.&lt;/p&gt;


	&lt;p&gt;Max Planck said &#226;&#8364;&#339;science advances one funeral at a time,&#226;&#8364;? and so it is with this innovation.  Today&#226;&#8364;&#8482;s teenagers live their life in global networks, and spend a lot less time hanging out in parking lots than my contemporaries did.  They&#226;&#8364;&#8482;re going to take over the workforce, one retirement at a time.&lt;/p&gt;</description>
      <pubDate>Sat, 15 Apr 2006 13:22:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:4cc944de6c5ebf49e5da1ce873a02982</guid>
      <author>andy@assembla.com</author>
      <link>http://andy.blogs.assembla.com/articles/2006/04/15/what-a-turnaround-software-is-now-a-terrific-business</link>
      <category>Software Business</category>
      <category>Innovation</category>
    </item>
    <item>
      <title>Project.net - new open strategy and releases</title>
      <description>&lt;p&gt;We have finally announced the new strategy and releases for Project.net, at  &lt;span class="caps"&gt;OSBC&lt;/span&gt; on February 14.  Over the next few months we will release open source, hosted on-demand, and enterprise packages based on this product.  We picked up some nice articles in the press.&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;a href="http://www.internetnews.com/dev-news/article.php/3584241"&gt;Internet News&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://news.com.com/Open+source+The+newest+competitive+tool/2100-7344_3-6038725.html"&gt;News.com&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;This relaunch of Project.net has been a long time in the making, since I first discussed it with Roger Bly, the president of Project.net, last May.&lt;/p&gt;
    &lt;p&gt;At the time, Roger was wondering how Project.net could go to the next level.  The company had a nice product and a few good enterprise customers.  However, it was too small to thrive in the increasingly brutal enterprise selling cycle, as described in my article&lt;a href="http://corp.assembla.com/modules/wordpress/index.php?p=9"&gt; Is the Enterprise Software Licensing Business Dying?&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;I discussed with Roger some opportunities that Project.net could take advantage of:&lt;/p&gt;
    &lt;ul&gt;
&lt;li&gt;Many of their best customers were doing some kind of customization.  However, Project.net did not have any kind of shared source or open source licensing or process in place to serve those customers.  They didn&amp;rsquo;t have any strategy in place to take advantage of open source marketing, community resources, and customer innovation.&lt;/li&gt;
    &lt;li&gt;They were making most of their money on the bigger deals, over $100K, and really didn&amp;rsquo;t have any way to benefit from serving smaller groups.&lt;/li&gt;
    &lt;li&gt;They built a nice Web-based, multi-tenant application, but they did not offer any kind of &lt;span class="caps"&gt;ASP&lt;/span&gt; or on-demand service.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;Over the next six months we worked together to design a new strategy and get the company sold to &lt;span class="caps"&gt;ICS&lt;/span&gt;, which was willing to put in resources to back the new strategy.  That deal closed in December.&lt;/p&gt;
    &lt;p&gt;Then we set to work rebuilding the development team and process as an open-source compatible global team and process.  It was an amazing experience, during which we looked at 130 candidates, selected 11 for competitive trials, and were amazed when 9 of the candidates turned out to be great.  Now, we have guys from 7 countries working together every day.&lt;/p&gt;
    &lt;p&gt;The results from the sales and marketing process have also been great.  Leads, renewals, and sales are running ahead of expectations.  There has been a surge of interest in Project Portfolio Management solutions, and all of the players are benefiting.  Project.net has a bright future in this space.&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 17 Feb 2006 12:17:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:ce8150dc6913a96b70111246ea1c2d3b</guid>
      <author>andy</author>
      <link>http://andy.blogs.assembla.com/articles/2006/02/17/project-net-new-open-strategy-and-releases</link>
      <category>Open Source</category>
      <category>Software Business</category>
    </item>
    <item>
      <title>The rise of dynamic languages / programmer productivity</title>
      <description>&lt;p&gt;I have moved my own development mostly to dynamic languages Ruby and Python, and I can see that these languages have had a big jump in popularity over the past year.  This is not a fad.  It is a very real and permanent response to increasing developer productivity.&lt;/p&gt;&lt;p&gt;Most people learned to program with Basic  an older dynamic language.  Dynamic object-oriented languages like Lisp/Scheme and Smalltalk have been around for decades and have always had a cult following.  The highest productivity hackers have always appreciated the things that make them dynamic: that changes to code are interpreted immediately, and that objects can be modified at runtime and in real time.&lt;/p&gt;
    &lt;p&gt;The key observation is that these are the highest productivity hackers.  They are the guys that program so quickly that they need immediate feedback on builds, rather than daily or weekly.  They also dont feel the need to do a lot of planning around their code, since they figure they can fix anything that goes wrong on a similarly short cycle.&lt;/p&gt;
    &lt;p&gt;Other people did not feel the limitations of their build cycle so acutely, and they tended to avoid dynamic languages because of their limitations in speed, stability, and resource usage during actual deployments.&lt;/p&gt;
    &lt;p&gt;I hypothesize that the demand for dynamic languages is driven by developer productivity.  When the amount of work that you can do in 30 minutes goes over a certain threshold, the build cycle itself becomes a limitation, and you want a dynamic language.&lt;/p&gt;
    &lt;p&gt;What if the merely good programmers started moving as fast as the exceptionally fast programmers?  There are a lot more merely good programmers than exceptionally fast programmers.  What if the &lt;span class="caps"&gt;WHOLE CURVE&lt;/span&gt; shifted?  Then the demand for dynamic languages would skyrocket as the majority of programmers found they needed them.  That is exactly what is happening.  Programmer productivity is increasing.&lt;/p&gt;
    &lt;p&gt;For 40 years, programming was assumed to be a labor-intensive activity with very low productivity growth.  Computers got faster and faster, but developers still required the same amount of time to produce a function point.  The problem was exacerbated by the fact that projects got bigger, and bigger projects have inherently lower productivity per individual.  And, there were a lot of inexperienced developers coming into the labor pool, which slowed things down.  So several factors conspired against productivity increases.&lt;/p&gt;
    &lt;p&gt;However, I believe that something changed in the mid or late 90s, and developer productivity started increasing much more rapidly.  Adding to the momentum, the bust of 2001 forced everyone to get better.  I intuitively estimate that developers are at least twice as productive now than they were six years ago.&lt;/p&gt;
    &lt;p&gt;Why did this happen?  Im not sure, but improved tools, computers, processes, accumulated knowledge, and the availability of free software, may have finally had their intended effect.&lt;/p&gt;
    &lt;p&gt;The increase in productivity is now being amplified by other factors. When software gets standardized and broken up into Web services, project sizes can get smaller, which adds another boost to productivity.  Offshore developers who can rapidly and at low cost jump into a project push up productivity per dollar even more. Open source software means more code re-use, which really pushes up productivity.  Finally, the availability of audiences that are willing to absorb beta quality software has compressed release cycles.&lt;/p&gt;
    &lt;p&gt;The evidence can be found in the structure of the industry, where development team sizes are shrinking, implying an increase in productivity per developer.  Ruby is an interesting case.  The language is essentially developed by one person.  Rails is developed by a very small group.  These guys can have asmuch impact as much bigger java teams did in the 90s. &lt;/p&gt;
    &lt;p&gt; So, there is a whole cluster of phenomena that come from the same root cause of increasing developer productivity:  smaller teams, shorter release cycles, and the use of dynamic languages.  Its a permanent shift.  It affects all of the tools we use, the ways we organize ourselves, and the structure of the software industry.
&lt;/p&gt;</description>
      <pubDate>Mon, 13 Feb 2006 14:16:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:58624784f90411df602979ce4d23eac4</guid>
      <author>andy</author>
      <link>http://andy.blogs.assembla.com/articles/2006/02/13/the-rise-of-dynamic-languages-programmer-productivity</link>
      <category>Agile Development</category>
      <category>Software Business</category>
    </item>
    <item>
      <title>The Unbreakable Software Business - your best friend or worst nightmare</title>
      <description>&lt;p&gt;How can we design a business that will be it&amp;#8217;s competitor&amp;#8217;s worst nightmare, if not unbeatable, at least unbreakable.  Put another way, how can you design a business that would be your worst nightmare if it became a competitor?&lt;/p&gt;&lt;p&gt;&lt;p&gt; This business would be pareto-optimal, in the sense that you could not beat it on critical measures such as innovation, market awareness, cost of sales, service response cycles, and fixed costs.&lt;/p&gt;
    &lt;p&gt;Such a business will use global talent, instant service, open source, and user innovation.  It will use these tools in all aspects of its business, to make the product, support the product, and sell the product.&lt;/p&gt;
    &lt;p&gt;The unbreakable competitor probably will have some of the following attributes:&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Very low fixed costs&lt;/b&gt;&lt;br /&gt;
Modern startups use contract labor, rented servers, and the bare minimum of office leases.  That makes them hard to break, and easy to scale.  If 80% of your costs are incurred month-to-month, you are probably at a Pareto-optimal point.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Global talent base&lt;/b&gt;&lt;br /&gt;
If you can get, and keep, the best available contributor from anywhere in the globe on two weeks notice, you are probably at a pareto-optimal point.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Rapid Innovation&lt;/b&gt;&lt;br /&gt;
The optimal competitor will innovate rapidly, tirelessly, and ruthlessly.  Ray Kroc is alleged to have said &amp;#8220;if your competitor is drowning, stick a hose in his mouth&amp;#8221;, and that&amp;#8217;s visual picture of what a relentless innovator does.  Under the right circumstances, innovation comes naturally because any given customer base applies pressure for innovation, the world changes, and people respond.  Unfortunately, there are also many, many self-made barriers to innovation.  On examination, it is usually possible to find and remove many unnecessary barriers to innovation &amp;#8211; in architecture, delivery, budgeting, licensing, and other areas.  Can any one of your employees get an idea implemented and tested?  Can any one of your customers get exactly what they want?  Do you immediately make innovations available to other customers?  It&amp;#8217;s possible if you share the responsibility.  Open and democratic in this case means letting innovators go around your planning process if they need to.  An optimal competitor combines strong and democratic internal innovation with an open product that customers can mold to their own needs.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Improving Product Quality&lt;/b&gt;&lt;br /&gt;
It&amp;#8217;s possible to beat the &amp;#8220;unbreakable&amp;#8221; software business on product features and quality, by spending a lot more money, by having a lot more product maturity, or by having some patent advantage.  However, if the business is unbreakable, it will eventually fight back with potent weapons:  releasing early and often, and an open development process.  That will ensure that the product rapidly improves along the dimensions of quality that are important to the users.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;High Volume Marketing and Lead Generation&lt;/b&gt;&lt;br /&gt;
The market leader has the optimal marketing and lead generation position, because a prospect will always give some consideration to the market leader.  I would count as the leader the product with the most new adoptions, rather than the biggest installed base.  The product has to be really easy to adopt.  If it is by nature not easy to adopt, because it involves system change, maybe it needs to be packaged as a component of some outsourced service that is easy to adopt.  The optimal competitor is the best in your category on cost of adoption.&lt;/p&gt;
    &lt;p&gt;When people adopt, they talk.  The unbreakable competitor will engage customers immediately in a community of sharing, peer advice, and innovation.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Low Cost of Sales&lt;/b&gt;&lt;br /&gt;
You want people to call you when they are ready to buy, or as late in the sales cycle as possible.  This reduces the cost of sales.  The unbreakable competitor only engages the sales team after a customer approaches with the intention of actually buying something.&lt;/p&gt;
    &lt;p&gt;How to make this happen is the trick.  One popular method is to provide free software and services.  Declining technology costs mean that in many cases it is cheaper to support a bunch of users who are not ready to buy a product, than it is to sell a product to prospects who are not ready to buy.&lt;/p&gt;
    &lt;p&gt;There are other method that rely on having the right product presented at the right time.  The unbreakable competitor will find the demand.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Immediate Customer Service&lt;/b&gt;&lt;br /&gt;
Customers should get immediate service, or at least service that is more immediate than any competitor can provide.  This can be accomplished by having the right escalation structure, going straight to senior management for requests that aren&amp;#8217;t satisfied on a short timeline.  In a software business, having a shorter release cycle makes the time to satisfy customer requests much shorter.  One &lt;span class="caps"&gt;ASP&lt;/span&gt; that I know does daily production releases.  It&amp;#8217;s possible, and it&amp;#8217;s probably the pareto optimal point.  Customers should ideally have lots of ways to get service, from a thriving community.&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 21 Nov 2005 16:53:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:d4a09d0e8475525b6b18cf45846fd30d</guid>
      <author>andy</author>
      <link>http://andy.blogs.assembla.com/articles/2005/11/21/the-unbreakable-software-business-your-best-friend-or-worst-nightmare</link>
      <category>Software Business</category>
    </item>
    <item>
      <title>A Bonus Pack of ISV Strategies for Growth</title>
      <description>&lt;p&gt;I have recently spoken with a number of enterprise software companies about a raft of strategies for growing their businesses.
The market for enterprise software (including hosted apps) is improving after a tough half-decade, but it still isn&amp;#8217;t comfortable for vendors.  Buyers still don&amp;#8217;t like buying big systems because adoption &amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;p&gt;I have recently spoken with a number of enterprise software companies about a raft of strategies for growing their businesses.&lt;/p&gt;
    &lt;p&gt;The market for enterprise software (including hosted apps) is improving after a tough half-decade, but it still isn&amp;#8217;t comfortable for vendors.  Buyers still don&amp;#8217;t like buying big systems because adoption is difficult and expensive.  Budgets for new licensing continue to shrink.  Sales cycles are long and expensive for vendors.  Innovation by competitors continues, often involving powerful disruptors like open source.&lt;/p&gt;
    &lt;p&gt;Now let&amp;#8217;s look at some good news and growth strategies&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;On-demand (hosted subscription) apps&lt;/b&gt;&lt;br /&gt;
Customers are finally moving to on-demand (that is, hosted subscription) applications in droves.  They like the lower adoption costs and hassles, the starter packages, and they can pay for these deals out of operating budgets, which are much healthier than capital budgets.  On-demand is also great news for a company that can afford to give up the initial license check.  It&amp;#8217;s good news for the &lt;span class="caps"&gt;CFO&lt;/span&gt; because the revenue stream and revenue realization is smoother and more predictable.  It&amp;#8217;s good news for the sales guys because customers can get started quickly.  It&amp;#8217;s great news for the product team too.  They can move to agile development, because they control the release cycle and don&amp;#8217;t need to fit closely to the long upgrade cycles required by installed corporate clients.  And, on-demand products are strongly associated with open source infrastructure.  Most of the leading on-demand vendors use open source components because they save money and increase flexibility in both development and datacenter operations.  One big win (cost saving and development acceleration) comes from not having to test and support the various types of proprietary software that clients insist on (eg Oracle versus &lt;span class="caps"&gt;DB2&lt;/span&gt;).  An emerging innovation is the &lt;a href="http://corp.assembla.com/modules/wordpress/index.php?p=16"&gt;custom &lt;span class="caps"&gt;ASP&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;User innovation&lt;/b&gt;&lt;br /&gt;
Most vendors of any kind of product fall into a (profitable) rut.  When they go to make a new version of their product, they survey existing customers to figure out what to do.  That leads them to build a better version of their existing product.  However, it doesn&amp;#8217;t lead to market growth through products for people who aren&amp;#8217;t already customers.  Users, however, are a diverse group, and some of them will do amazing, market-expanding things with the product if they are given the opportunity.  The key is to pay attention to the right customers (the ones that are &amp;#8220;leading&amp;#8221; as opposed to just eccentric) and give them the opportunity to innovate.  You can &lt;a href="http://www.assembla.com/modules/wordpress/index.php?p=14" target="_blank"&gt;read my blog entry on this effect here&lt;/a&gt;.  &lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Platform strategy (with VARs or customers)&lt;/b&gt;&lt;br /&gt;
The platform strategy is a way to work with customers, consulting firms, and &lt;span class="caps"&gt;VAR&lt;/span&gt;&amp;#8217;s that know more than you do about a particular market.  You give them the tools to modify your product, and they make more specialized products.  Salesforce.com has been pushing this strategy hard, and winning with it.  The key challenge is making it work in the new environment where more apps are centrally hosted.  Customization, sharing, and open code are relevant in the hosted case as well as the installed case.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Customer Collaboratives&lt;/b&gt;&lt;br /&gt;
The customer collaborative is a way of supporting the customers that work with your platform.  Vendors have traditionally avoided supporting custom or integrated versions of their products, because upgrading those versions is a really hard task. Better to stick with the one line of official releases.  Unfortunately, the customer reality is that they DO have customized and integrated software.  The vendor can get extra revenue (literally, an add-on maintenance sale), raise customer satisfaction, and gain new innovations, by providing extra support for those customized and integrated versions.  The customer collaborative provides shared code, build environments for customized versions, and tools for collaborating within and between customers and integrators.  If this allows customers to get enhancements they want faster, they may even buy faster.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;From Outsourcing to the Agile Global Team&lt;/b&gt;&lt;br /&gt;
Over the past ten years, a large amount of software development has been moved to low-cost countries through outsourcing.  In the process, we gave up the agility of having teams work together on the entire process of defining and building software.  Outsourcing required a considerable amount of extra work to specify software, hand it off, and accept it.  Now, with &amp;#8220;inspired by open source&amp;#8221; techniques, we can get back the agility.  We can create a single global team that is even more distributed.  Any of those team members can be responsible for any part of the process.  This saves money because the distributed team can handle a larger chunk of the process.  And, it saves time because we can run agile processes.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Open Source licensing&lt;/b&gt;&lt;br /&gt;
Open source and shared source licenses are an essential ingredient of platform strategies (even Microsoft&amp;#8217;s), and customer collaboratives.  They are easy to adopt if the vendor is selling some core, closed-source platform code (for instance, a search engine, workflow engine, or OS) and they want to encourage people to wrap applications around it by releasing a bunch of application level code.&lt;/p&gt;
    &lt;p&gt;Selling software licenses to enterprises is a long, expensive, and often fruitless process.  Only big software companies can do it comfortably.  If you are a smaller company facing this sales cycle and losing money, you have options.  You can try to sell yourself to a bigger company with a better channel.  Another now-standard option is to release your software as open source.  This creates an entirely different sales cycle, where users adopt your software first, and then call you later for service and support.  It&amp;#8217;s not a cure-all, but it&amp;#8217;s often better than the alternative.  I think it will be a financial win in cases where the first-mover can take a big chunk of an existing application market.&lt;/p&gt;
    &lt;p&gt;&lt;b&gt;Buying, Selling, and Global Scans&lt;/b&gt;&lt;br /&gt;
If you aren&amp;#8217;t big enough to survive the sales cycle, selling to a bigger company with a better channel is probably a good idea.  The flip side of this is that a lot of software assets (with limited customer bases, but good embedded industry knowledge) are available to be purchased at very reasonable rates.  It&amp;#8217;s a big world.  If you post a message to contract development boards, industry boards, venture capitalists, and IT users who build their own software, you will often find software that roughly meets your needs for satisfying a new market.&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 23 Sep 2005 13:50:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:04f79c1eea971669393287b170811370</guid>
      <author>andy</author>
      <link>http://andy.blogs.assembla.com/articles/2005/09/23/a-bonus-pack-of-isv-strategies-for-growth</link>
      <category>Software Business</category>
    </item>
    <item>
      <title>Custom ASP?</title>
      <description>&lt;p&gt;In 1999, there was a huge surge in interest in &lt;span class="caps"&gt;ASP&lt;/span&gt;&amp;#8217;s for enterprise software.  By 2001, pundits declared the model a failure.  One analysis was that &lt;span class="caps"&gt;ASP&lt;/span&gt;&amp;#8217;s wouldn&amp;#8217;t be able to effectively service enterprise customers, because the systems needed to be customized and integrated, and doing so would &amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;p&gt;In 1999, there was a huge surge in interest in &lt;span class="caps"&gt;ASP&lt;/span&gt;&amp;#8217;s for enterprise software.  By 2001, pundits declared the model a failure.  One analysis was that &lt;span class="caps"&gt;ASP&lt;/span&gt;&amp;#8217;s wouldn&amp;#8217;t be able to effectively service enterprise customers, because the systems needed to be customized and integrated, and doing so would destroy the favorable economics of the &lt;span class="caps"&gt;ASP&lt;/span&gt;.  It&amp;#8217;s now obvious that the &lt;span class="caps"&gt;ASP&lt;/span&gt; model wasn&amp;#8217;t a failure.  It just didn&amp;#8217;t quite keep up with the extreme growth forecasts.  Our &lt;span class="caps"&gt;ASP&lt;/span&gt; packaging at PowerSteering continued to be the leading version of the product, and companies like Salesforce.com delivered ever-better and more configurable products.  &lt;span class="caps"&gt;ASP&lt;/span&gt; sales volume, market share, and sophistication continue to grow every year.&lt;/p&gt;
    &lt;p&gt;So what about customization and integration?  Is that a shortcoming of the &lt;span class="caps"&gt;ASP&lt;/span&gt; model?  Is there a way to combine the favorable features of an &lt;span class="caps"&gt;ASP &lt;/span&gt;- instant startup, always on, invisible upgrades &amp;#8211; with the customization and integration that more sophisticated customers want?&lt;/p&gt;
    &lt;p&gt;A coincidence of timing last week highlighted the questions for me.  I had lunch with David Skok of Matrix Ventures on Wednesday.  Matrix claims to be the most successful venture firm ever when measured by consistency of returns and ratios of winners to losers.  They make a rigorous analysis of business opportunities, in the selective style of an east-coast VC firm.  Skok himself is a successful software company founder and &lt;span class="caps"&gt;CEO&lt;/span&gt; with more than one &lt;span class="caps"&gt;IPO&lt;/span&gt; under his belt.  So, when Skok criticizes an approach, he probably has a very good point.&lt;/p&gt;
    &lt;p&gt;In this case, he took issue with my opinions on customizations.  I was claiming that the facts on the ground for enterprise software customers are that they are supporting custom configurations.  Instead of avoiding the issue, vendors should take the lead in delivering code, processes, and infrastructure to support these customizations and the related upgrade cycles.  Skok argued that:&lt;br /&gt;
1) Vendors should be &amp;#8220;market driven, not customer driven&amp;#8221;.  They should stick with a 12 month development roadmap and not get thrown off course by inevitable customer requests.&lt;br /&gt;
2) Customers don&amp;#8217;t want customizations to the core product.  They want a clearly defined and separated area of customization and configuration that goes against a defined &lt;span class="caps"&gt;API&lt;/span&gt; supported by the vendor.  They know this will increase quality and reduce their integration and upgrade expenses.&lt;br /&gt;
3) It&amp;#8217;s just too hard to support customizations and upgrades, so vendors are smart to avoid it.&lt;/p&gt;
    &lt;p&gt;In leaving, Skok said &amp;#8220;I&amp;#8217;m really interested in the &lt;span class="caps"&gt;ASP&lt;/span&gt; model.&amp;#8221;&lt;/p&gt;
    &lt;p&gt;That&amp;#8217;s where the coincidence of timing comes in.  On Thursday, I went to New York to start an advisory engagement with a company called Foothhold Technologies.  They make software &amp;#8211; delivered as application service &amp;#8211; which is essentially a Web-based &lt;span class="caps"&gt;ERP&lt;/span&gt; system for agencies that serve the homeless.&lt;/p&gt;
    &lt;p&gt;I was amazed when I learned two facts.  First, that they have more than 50 &lt;span class="caps"&gt;ASP&lt;/span&gt; customers, and that a majority of them have some level of customization.  Second, that they try to address every customer bug report and UI request in one day.  They do a production release every day.&lt;/p&gt;
    &lt;p&gt;This company somehow swims against all of Skok&amp;#8217;s objections.&lt;br /&gt;
1) They are totally customer driven.  Virtually everything in the product was added incrementally in response to some customer request or planned customization.&lt;br /&gt;
2) Customers ask for changes in every aspect of this type of application&lt;br /&gt;
3) They have been doing this for years with a high level of reliability and one day turnaround.&lt;/p&gt;
    &lt;p&gt;Even more amazing, this level of service is delivered with a software and development architecture that was not explicitly designed to suport it.  They have a four-person development team supporting a 500 screen, 200 table application with dozens of variations.  Their application has grown up incrementally over eight years from a set of Progress 4GL scripts, that at one point became funneled through a Web gateway to create a homemade Web application server.  All of the customizations are inserted directly into the same codebase, which is riddled with statements of the type &amp;#8220;if &lt;em&gt;Customer X&lt;/em&gt; then do &lt;em&gt;Custom thing for customer X&lt;/em&gt;&amp;#8221;.  It&amp;#8217;s a small team working with what has become haphazardly designed spaghetti code, currently being re-engineered.&lt;/p&gt;
    &lt;p&gt;Yet, it works.  They are succeeding.  They have more than 50 customers, have reached profitability, and are gaining market share.  That&amp;#8217;s a harbinger of the future, an existence proof for custom &lt;span class="caps"&gt;ASP&lt;/span&gt;&amp;#8217;s.&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 14 Aug 2005 14:36:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:d5e79b65d6ff2ea316ab2fa3271ccb2a</guid>
      <author>andy</author>
      <link>http://andy.blogs.assembla.com/articles/2005/08/14/custom-asp</link>
      <category>Agile Development</category>
      <category>Software Business</category>
    </item>
  </channel>
</rss>
