Featured Posts

The New Economics of Technology Startups? I have recently been reading the book "Free: The Future of a Radical Price" by Chris Anderson.  Well I am not actually reading it as I find I do not have time for reading books any more.  These days...

Readmore

Here is my hammer. Show me your screw! Well I have been traveling out of the country a lot these past few weeks so its been a while since I posted.  I will try and do better in the future.  During my travels I had a lot of interesting discussions...

Readmore

Consideration For The Technical Implementation of an... I had a lot of questions from people after my last post on BPM and SOA about the layered SOA I proposed and whether it would be slow performance wise.  The answer I gave people was "It depends".  In...

Readmore

Why a Business Process Modeling (BPM) Approach to SOA... I was having a Twitter conversation with Brenda Michelson (@bmichelson) and Todd Biske (@toddbiske) about the tight coupling in peoples minds between BPM and SOA, and why I find that when people take a...

Readmore

Enterprise 2.0 Needs To Stop Being So Naive You know I really struggle to get excited about Enterprise 2.0.  Not because I don't think IT needs to undergo change, but because I feel that Enterprise 2.0 as we seem to be defining it, and covering...

Readmore

  • Prev
  • Next

The New Economics of Technology Startups?

Posted on : 22-09-2009 | By : Paul Michaud | In : Technology Startups

Comments

I have recently been reading the book “Free: The Future of a Radical Price” by Chris Anderson.  Well I am not actually reading it as I find I do not have time for reading books any more.  These days I do all of my “book reading” using audio books from Audible.com.  I find that by making a conscious effort to listen to a book every time I am driving a car, on a plane, in a cab, in a restaurant by myself on a business trip, etc, I can actually get about 45-60 hours per month of audio book covered using time that I cannot otherwise use all that productively.  This amounts to about 1200-1500 pages of book equivalent per month which is a lot.  Anyhow, I digress.  So I am “reading” Chris’s book and while I tend to agree with Chris on a lot of the trends and use cases cited in the book, the Financial Economist in me is screaming that there is a potential train wreck coming for the technology sector and consumer oriented Internet startups in particular.

For those who have not read the book, let me boil it down for you enough to understand where this article is coming from.

In a nut shell, Chris’s premise is that since the marginal cost of a computer program, web site, etc is close to $0 and given the expectations of Gen X and GenY that all things are available free on the Internet, that most software or web offerings will be forced in the future to have some form of Free version in order to get traction.  Furthermore the book is filled with examples and cases of how people have made a viable business by offering something for free and making money through an upsell, advertising, etc.

If you are in any way thinking of starting a technology company or bringing any product to market (particularly if its aimed at consumers under 35) then this book is a must read, as it makes some important points about the behaviors and mentality of today’s consumers.

Anyhow, what concerns me, particularly for consumer Internet apps is that it basically implies there will be only 2 viable business models going forward.

  1. The core product is offered for free and is subsidized by advertising
  2. The Freemium model, where you offer a scaled down free product and hope to convert a small percentage of users to a paid premium version

Now I do realize this is an over simplification but it’s sufficient for the purposes of this discussion.

What worries me about all of this can be broken down to the following few points:

Scale
Both of these models require huge scale in order to be viable as a serious business (by that I mean supporting more than a handful of employees in the business).  While I understand that its certainly possible to achieve huge scale with consumer Internet based apps, it’s very difficult.  What portion of applications on the web get to 1 million users never mind 10 million or more?  The bottom line is that if you cannot achieve this kind of scale,  then it will be very difficult for a business which relies on advertising revenue or converting 2-5% of users to a paid product to support more than a part time income or at best a handful of employees.

Reliance on Advertising
In the case of a business that relies on advertising from others to subsidize its product, I question the long term viability of this model for any one company, unless you are one of the few big success stories such as Google, and lets face it, although everyone wants to be, not all startups can be a Google.  Again, without huge scale It won’t be possible to generate enough advertising revenue to support more than few employees.  In addition,  lets do a small thought experiment (albeit one that is hopefully not too realistic or we are all in big trouble).  Imaging that all consumer oriented internet based apps eventually end up being free and that they are subsidized by advertising revenue. Who buys those ads?  If no one is making money directly through the sale of end product, then I argue that no one has money to pay for ads and the whole model fails.  The only way this model can work for more than just select point businesses within an ecosystem where at least some businesses make good money from direct sales of products, is if there is tons of external capital being pumped in to subsidize these business and to pay for those ads.  In this case its just a matter of time before that external capital dries up as its absolutely impossible for this system as a whole to make a sufficient return on investment at a systemic level.  That’s not to say some business won’t reap very good profits, My point is that as an economic sector overall using just this model,  its not possible to be profitable.  Therefore there must be at least some products for which the consumer is willing to pay for the product directly in order for this to succeed.  When you consider the average Gen Y doesn’t feel they should ever pay for anything computer software related, this is a big potential problem for the information economy in the future and the companies who hope to be successful selling to them.

The Freemium Model
I actually think this model is more viable but it has its own challenges.  Firstly,  you still need huge scale to support more than a handful of employees.  Lets assume we can achieve that scale for the sake of argument.  What I think is difficult here is determining what your Free product should be such that it attracts a large number of users, but still leaves them wanting more.  If the product is feature light, you will not attract a large enough user base.  If the free product has too many features, then people will feel no need to upgrade to the paid premium version.  This is a very fine line in my opinion and one which is very hard to discern.  To make matters worse I suspect that over time as more and more gets offered in free versions, the level of features that will need to be in the Free versions will constantly increase making it harder and harder to get people to convert to the premium product.  If this turns out to be the case this business model will also collapse in time as conversion rates will constantly be in decline and will eventually approach zero.

I guess the bottom line here is that if you are planning to build a consumer oriented internet application,  you need to think long and hard about your business model.  Are you doing this as a hobby, in which case you may not care if it makes money or are you hoping to make a living off of this effort, in which case you need to think about this long and hard before you begin or you will fail to be successful.

Anyhow, as always, comments are welcome both here and on Twitter (@TechMusings)

  • Share/Bookmark

Enterprise 2.0 Needs To Stop Being So Naive

Posted on : 31-08-2009 | By : Paul Michaud | In : Enterprise 2.0

Comments

You know I really struggle to get excited about Enterprise 2.0.  Not because I don’t think IT needs to undergo change, but because I feel that Enterprise 2.0 as we seem to be defining it, and covering it in the press and the blogosphere just doesn’t seem to be solving the key issues that either IT or the business units face. Let me explain why I have a problem with this.

I deal with CXO level execs all the time in my job and the ones I deal with all seem to have similar issues when it comes to IT Systems for the most part. While each firm and/or project will have some unique issues, they generally tend to fall into the following buckets:

  • Reduce cost in the IT organization
  • Improve efficiency in the IT organization (measured as cost reduction, responsiveness, improved time to market for projects, etc)
  • Improve user satisfaction (which usually happens if you get the first two right)

If you think about it,  pretty much everything we do in IT boils down to one of these.  Now clearly there are a whole lot of sub-bullets to each of those buckets some of which are listed here:

  • How do you fit more servers into the existing data centers
  • How do you improve server utilization
  • How do you consolidate legacy applications
  • How do you get new applications to market faster
  • How do you improve the usability and user experience of new and existing applications
  • How do you do all of this with a leaner and more productive organization

and most importantly (and in my opinion the one that if not managed correctly is the single biggest cause of failure in major IT projects) how do I get my existing staff which has a personal vested interest in maintaining the status quo to execute the vision efficiently.  Because, lets face it,  radical change in the existing IT organization along the lines of reducing costs and improving efficiency is going to result is potentially dramatically reduced head count one way or another.  By that I don’t just mean offshoring IT, but literally a permanent reduction in the numbers of IT staff across the board (on, off or near shore).

So, the questions one needs to pose when evaluating Enterprise 2.0 (or any other technology or movement, and lets face it Enterprise 2.0 is more movement than tech) are as follows:

1) What is the compelling reason to act, or significant problem, for the target users (in this case the enterprise itself)?
2) How is the proposed technology or solution going to solve that problem better than the alternatives?

Now I don’t think there is much disagreement around #1 in general.  I think the Enterprise 2.0 movement and I see eye to eye here on the problem and the compelling reason to act (which we defined at the top of the article re cost, efficiency and satisfaction).

Where I have real issue is with #2.

In general I am going to boil this down to my belief that the suggestions of the Enterprise 2.0 movement are in general naive when it comes to how to apply both technology and technique to large enterprises.  Lets look at some examples:

1)    I had a customer who has 500 applications running in part of their business.  The systems had a lot of overlapping functionality and it took 200 people full time just manually fixing errors in data replication from the nightly ETL processes.  I cannot see how cloud, mashups, social networking technology and the like would have addressed this issue.
2)  Recently I was doing a design for a client and we explained to them that the only way to hit their target go live was to use Agile methods and cut functionality to deliver a minimum viable product.  The client nodded and agreed. Then after we spent time cutting down the 150+ use cases to the bare minimum, the clients Business Analysts committee went through every line item we cut and demanded it back because they were apparently all super critical in their view (not one item was allowed to be cut)
3)  A while ago we did a complete SOA design for a client.  The business was excited, the budget was approved, etc and we were ready to start executing on the build.  Then IT middle management got involved.  Their people decided that if they supported this project then some of their existing pet projects would be shut down and the improvement in efficiency would mean job losses in IT.  They didn’t outright rebel, they just passively resisted, stalled, etc until the business gave up and the project died.  As a result it never got built and the bank ended up losing Billions when the credit markets collapsed and those same IT people got fired anyhow.  This system had been to manage risk more effectively in the banks credit portfolio, which the business knew in 2004 was an issue, and would have been online in 2006.  We actually proposed to run this on a cloud environment at that time and the IT people refused to allow it even though the business wanted it.

These are but a few examples I have seen just in the past few years.  I could go on all day with items like this.  The bottom line is this, none of this would be helped by Social Networking, Mashups, Cloud Computing, Enterprise Search, etc. and these are the kinds of problems big enterprise IT shops face every day.  When we talk Enterprise 2.0 I can’t help feeling all the discussion is really aimed at the SMB sector and not the Fortune 500 types.  That Enterprise 2.0 it is focused solely on the GUI side of the Applications, which frankly is almost never the problem.

From my perspective, I think the Enterprise 2.0 crowd needs to come down to earth and get a large dose of reality.  The world of Big Enterprise IT is not the same as a tech startup in the valley.  Not every application is about Web and related tools, collaboration, mashups, etc.  The apps where that stuff applies are frankly trivial and if that was the state of the world app complexity wise we wouldn’t have the issues we have and we wouldn’t even be talking about Enterprise 2.0.  The reality is real Enterprises have issues with Organizational Structure and that same structure fights changes.  I can’t tell you how many times I have seen attempts to redesign IT Org’s go down in flames or the result be just as bad as where they started.  They have issues with tons of legacy apps that continue to need to be supported, integrated, updated,etc.  Think Y2K people.  Those Cobol apps are still going strong (as much as the thought of that gives me a rash) and they cannot support mashups or social computing, or be run in a cloud. How do you deal with putting Paul Michaud’s contact information into 500-1000 applications which are scattered around the firm globally and no two of which store and address or a middle name the same.  These are boring mundane problems bu they are the real issues that keep CIO’s awake at night,  not whether their employees can change the color of the GUI background on the latest app or have better internal chat facilities, or Tweet from their desk.

Now don’t get me wrong, I am the biggest proponent of wholesale change being needed in both the technology and organization within today’s Enterprises.  I am a huge fan of new RAD tools, SOA, SaaS, Cloud, etc.  My point is simply that we need to wake up and not be so naive about Enterprise 2.0.  Changing big enterprises with 100’s of thousands of employees, is not trivial and just having lots of conferences about it, articles, etc and even getting CIO’s excited about it will not get it done.  Its the rare CIO who can drive through the kinds of wholesale changes needed to make an Enterprise truly Enterprise 2.0.  Remember it not sufficient to just use E 2.0 approaches and technologies for a single departmental application we need to do it across the board.  And remember, this is like the old saying,  we need to change the tires on this formula 1 race car while it continues going around the track.  We can’t shut the place down and start from scratch.   Managing the change process is the biggest challenge these efforts face.

Please feel free to comment either here on the blog or reach out to me on Twitter at @techmusings

  • Share/Bookmark

“At Age 35, Mozart Was Dead”

Posted on : 24-08-2009 | By : Paul Michaud | In : Technology Startups

Comments

The title of this blog is a quote from Mike Moritz of Sequoia Capital during a Fireside Chat with Guy Kawasaki of Garage Technologies, Paul Graham of YCombinator and Mike at the Revenue Bootcamp held last July.  If your an entrepreneur and haven’t watched the video for this, I encourage you to watch it, as well some of the other sessions from the Bootcamp.  They are available online here.  I had the opportunity this weekend to watch a number of them and they were quite enlightening and this probably won’t be the last blog article I write that was spurred by them.

Anyhow the discussion was mostly around how Paul, Mike and the VC industry as a whole view the investment process for startups, etc and there was some great insight and advice provided by Mike, Paul and Guy over the course of the session, which I personally found very interesting.  About two thirds of the way into the session there was a question about the profile of a typical entrepreneur they were funding and they were asked specifically if it was mostly young grads fresh out of college.  Paul answered first, and said that while this was more common, they fund the full age spectrum.

When it came to Mike to answer, he jokingly said as his answer “By age 35, Mozart was dead.”  This of course offended most of the older entrepreneurs in the room, and has resulted in this quote being circulated all over twitter and other social media where startups are discussed.  Now in Mike’s defense,  he then went on to say much as Paul had, that while the young entrepreneur under 35 was more common today, that they have funded firms spanning the spectrum including people who were grandparents.  I also personally have no doubt that someone of Mike’s reputation and ability would never let a few grey hairs stop him from investing in a good idea.

Nevertheless, the comment struck a particular cord with me.  Not just because, at age 40 and with 25 years of commercial systems development under my belt, I fall into the Dead bucket, but for two other reasons:

  1. This comment is a complete 180 from the advice and belief of the Venture Capitalists 20 years ago when I launched my first company
  2. Because I think the comment, although it was in jest, reflects a subtle truth and a bias in the current startup community, which I am not sure I agree with.

So at this point your probably thinking to yourself, why am I reading this?  Paul’s a technology geek not a startup expert or VC, etc.  He doesn’t know anything about this stuff.  Well you might be surprised. In fact, people always think of me as a highly technical person, and I guess I am at that, but to be honest I always tell people I am a business person first who just happens to know a hell of a lot about technology.

To understand why this comment struck me the way it did, it is necessary to provide you with a rare but mind numbingly dull view into the early career of Paul Michaud.  In my life I have started and ran one profitable technology company, 2 web sites, and pitched for venture capital for 3 completely different businesses (failed the first, declined the capital the second and missed the window the third time in 2002, but did get job offers to work for some portfolio companies).  I have also been on the other side of things in my career in Investment Banking.  I have advised on M&A’s, private equity investments, and general stock acquisitions of technology companies for hedge funds, corporate raiders, Wall Street Investment Banks and large asset managers.

Why I Think VC Attitude Has Done A 180
If this was a movie, we would now fade into the memory shot going way back…back…back…

Like most entrepreneurs, I was what you would call a highly driven individual even at an early age.  By age 11 I had been invited by the Montreal Canadians to come and play hockey in front of some scouts in the Montreal Forum.  By 14, I was quarterback of the football team, captain of the track team and ranked 7th in the country in national mathematics competition (The combination Jock and Nerd made high school, shall we say, interesting).  I was also a member of a small Aeronautical Design Team building a prototype amphibious push prop airplane for which I wrote code on DEC PDP-11’s to simulate drag envelopes, stress on spars, etc.  By 15, I had been asked by a Canadian Investment Bank to write programs to try and automate what some of their investment managers did manually for trading S&P 500 Equities and Equity Options. I continued to write these types of programs for the next 12 years. At 16, I won first place in all five categories I was entered in at the McMaster University Science and Engineering Competition and was the youngest member of my starting Engineering Class by two years.  By age 18, I had dropped out to pursue my first Internet Startup.

So if today’s startups are Web 2.0 companies and the late 90’s was Web 1.0,  I guess we could call my first company a Web 0.1 Alpha company, except that when I started it in late 1988, the term World Wide Web and Marc Andreessen’s Netscape were still more than 5 years away. Anyhow,  the company was an information brokerage which specialized in providing access to electronic information to investors, banks and senior executives for a wide array of uses.  For those who have not heard the term Information Brokerage (which is probably just about everyone) think of a cross between a Yahoo like portal and Google with a lot of manual process in the middle.  Even in those days, we had access to 3500 electronic sources of business related data of all kinds, from news to financials, legal, etc.  The data was very expensive and was hard to find and access.  In 1989, I worked with Charles Schwab to design some of the first information packages ever provided to investors by discount brokerages and learned my first hard business lesson from them about how to get completely screwed if you don’t cover your legal ass.  By late 1989, we had gotten some traction and started to pursue funding so that we could accelerate growth.

This is where I am finally getting to why Mike’s comment struck me as a 180 from what VC’s were saying 20 years ago.  In 1989 I designed software to allow us to automate searching those 3500 computer systems, so that we could remove the manual intervention in the Information Brokerage business, thus allow us to cut cost and increase volume.  Now remember this is still 5 years before Netscape and well before Google or Yahoo were a twinkle in anyone’s eye.  In addition we had offers of multi-year contracts on the table from various firms including the predecessor to TD Ameritrade.  Armed with this, we went looking for funding …… and failed.  Now there were a couple of reasons for that failure, including:

  1. There was a recession going on in 1990-1992 so timing sucked
  2. We were a new idea that people didn’t really understand and couldn’t evaluate and we were about 5-6 years too early, so timing sucked again

But more importantly, we got told time and time again by VC’s and bankers to go hire ourselves a 55 year old front man, because no one was ever going to fund a couple of 21 year old kids.

So now, here we are 20 years later and Mike’s comment (and the general view of the industry) would imply that a 55 year old should go get himself a couple of 21 year old’s to front him.  It just struck me as ironic, how the world of the startup has changed so dramatically over that time.

Why Mike’s Comment Makes Me Worry About The State Of The Industry

So the irony aside,  Mike’s comment also got me thinking about the state of the startup industry, the perceptions of the average VC and what Mike really meant.  Lets start with the latter.

What I think Mike really meant by his comment is analogous to a comment I once had from an early mentor (the person who ran that Aeronautical Design Team).  He told me once that if I was ever going to accomplish something great in my life, that if I hadn’t accomplished it by age 25, I likely never would.  I almost made it.

The reality is, that at a young age,  you are usually more driven, more creative, and have new fresh ideas compared to the average Dead person (over 35).  That said, this is a general, statistical statement.  It is not a hard fast truth.  The reality is that while there is a higher percentage of driven, creative, entrepreneurialy inclined 25 year olds, there are also many who are just as driven, creative and entrepreneurial in the Dead Zone, just not as many as a percentage.  In addition, us Dead people are more hampered by family, commitments and life in general and are often unable to take the plunge into a startup.

I think that is what Mike meant.  Not that a talented person with the right idea, drive, creativity, etc in the over 35 bracket couldn’t get funded, but more that it is unlikely that someone in that bracket is going to pitch a great idea (or any idea for that matter) to a VC in the first place.  It does happen, but I suspect its more rare.

What concerns me more is the fact that I think Mike’s comment does represent a general bias, that young entrepreneurs are more likely to succeed than others with more life experience, and I am not sure I agree with that.  If I looked back at that 18 year old Paul Michaud, what we had then and where I could have taken it.  If I knew then what I know now (god I do sound like an old fart don’t I), I truly believe the story would have been very different.  For one,  I would have changed the business model we were using at the time,  bootstrapped the search engine and continued to organically grow the business, instead of getting discouraged and shutting down (we were actually making money but shut down anyhow because we couldn’t grow it the way we wanted to without the capital).  Imagine it we would have been there before Google or Yahoo and we were profitable already by 1990.

I guess if I look at myself as representative of those in the Dead Pool, with that entrepreneurial spark (and maybe I’m not typical), I would argue the following:

  • If you had the spark at 25, you likely have just as much entrepreneurial passion today as you did years ago, circumstance just might not allow you to act on it
  • The experiences, both successes and moreso the failures, have likely made the older entrepreneur a wiser founder than the 25 year old.  Maybe a little more cautious, maybe not, but almost always wiser and more street smart.

I could be wrong, but if I was the VC, given two entrepreneurs with equal passion, drive, creativity, technical skills and an equally good idea,  I would fund the older entrepreneur almost every time.

I look forward to your comments.

  • Share/Bookmark

The Challenges of Allowing Offline Usage in a SaaS Based System

Posted on : 14-08-2009 | By : Paul Michaud | In : Software Design, Software as a Service, The Business of SaaS

Comments

So I was reading an article this evening over at CloudAve about the latest Google Reader and how it still can’t be used offline with full features. In particular the article focuses on its inability to allow you to read articles offline  and then flag those articles as already read, such that when you get back online Google Reader doesn’t present them to you again, which is a waste of time.

Well this got me thinking about the general challenges of making SaaS based applications usable in an offline mode.

Consider the following application scenario:

  1. You have designed a simple SaaS application to do basic contact management
  2. Users need to be able to use it offline as well as online
  3. Users may log into the application from many computers
  4. The systems allows more than one person to edit any one particular contact record

Now, I specifically structured this scenario to allow each of the points above to allow each one to layer on additional complexity which needs to be considered when designing the system.  We will tackle in each turn.

1. Basic SaaS Contact Management

Well this isn’t too hard if you want a basic system (and we don’t plan for any of items 2-4, or other complexities such as data design for multi-tenancy, fine grained permissioning, etc ).  All you need is a database which contains contact records, which can be read or edited either through a public interface (which doesn’t necessarily need to be Web Service based) or by using a GUI of some kind (through the API or tightly bound to the database) which you provide.

2. Using the Contact Management System Offline

Now its gets more difficult.  You face the following issues:

  1. Method two of using a GUI tightly bound to the database is no longer an option, unless you want to be maintaining that data access method as well a separate API for the offline users to use, with all the inherent potential for inconsistent behavior two data access methods would imply
  2. The offline user needs to have full access to a copy of his/her relevant data on the machine that they are using offline
  3. How do you accomplish this if the potential data in question is large (say many Gigabytes just to make it fun)
  4. Said offline data needs to be stored in a secure manner, which is searchable, editable, and more importantly synchronizable
  5. Metadata capturing the status of each record also needs to be stored along with those records
  6. The metadata needs to be compared against the database when the user gets back online in order to determine how to update or merge the data

3. Allowing for Multiple (Potentially Offline) Computers To Be Used By Each User

Well this is not too terribly difficult once you can solve the issues in #2 above.  As long as the multiple computers are all online tis is infact really trivial with a SaaS application and is infact where SaaS shines. How often have you cursed not being able to easily synch your iPhone, MS Outlook on your Home machine and MS Outlook at Work in real time.  Well with a SaaS based app, this is no problem because they all read and write the same master copy of the data which resides on the central server.  That is, as long as they are online.  So what if they aren’t all online?  Well the following could arise and needs to be considered when designing your SaaS system.

  1. Assume the user has 2 computers, one at home and one at work (we will ignore the iPhone for now)
  2. Assume he edits some data at home (in offline mode) and forgets to sync it online before heading out to work
  3. Assume that when at work he edits more records (lets assume in offline mode again just for fun), and that some of the records are the same as what he edited at home.
  4. At the end of the day he sync’s to the central server from the office machine
  5. He gets back home and wants to sync the home machine and carry on from where he left off

The problem is thatthe records at home have been edited so they need to be sync’ed, but some of those may be stale and older than what was done at work. So, how do we do it?  Well we ideally need to do the following:

  1. We need to check all records on the home machine against the central SaaS system
  2. For any record which was edited on the home machine but not of the server copy, just upload it
  3. Any records which were edited at home and at work need to be merged (which is always a pain and error prone so you need some good rules and just stick to them)
  4. Any record edited on the server version and not at home should be overwritten with the central copy.

After all of that,  the system will be in as clean a state as it can be and the person can now continue to edit the records.  Its important to note that if the records had been sync’ed in the morning that this procedure would not be needed, which makes the case for auto saving/syncing the data often, to minimize the potential for data collissions in cases like this.

4. What If Multiple People Can Access and Edit The Same Data

Well the issue in this case is one of concurrency, and it needs to be allowed for whether the users are online or offline.  Consider Person A and Person B are both editing the same contact records while offline.  Both then go to sync their data (and they have both edited some of the same records maybe not with the same changes to those records).  So what does your system need to do?

  1. This gets a lot worse if they submit the data simultaneously, but we will not worry about that at this time
  2. Each record for each person needs to be compared against the central data copy
  3. If the server copy has not been modified, then just upload as normal
  4. If the server is modified, perform a merge in accordance with the systems rules
  5. Sync the local copy of the data to the new refreshed server version if needed

That’s really about it.  it turns out that multiple users is really no different (from each user perspective), than if the had edited on two machines as a single user.

So whats the point of all this.  Well the bottom line is that if you are designing a SaaS based application you better think about all of this.  It not sufficient to assume that

  • Everything is stateless
  • No data concurrency issues will arise
  • There is only one user on an account or that can edit any particular data

As software designers we need to make sure that what we design works when these use cases are considered, which is very difficult, especially if you are a startup and trying to get product out the door in a hurry.  While I am a fan of Agile programming and have used variations of it building application for Wall Street Investment Banks, even before the term Agile existed, the idea of minimal viable product would get you into trouble here.  These types of features are hard to layer on later and you will be forced to go back and redo what you already completed resulting in increased development cost and time to market, to say nothing of dissatisfied customers if you already shipped a version that needed to be drastically changed.

Thus my personal design mantra:

Implement only what needs implementing, but don’t design yourself into a corner.

In my experience it pays in the long run to make sure of your design upfront, even if it costs a little bit of time.  But don’t get crazy and produce a 6000 page design doc because that will be wrong too.

  • Share/Bookmark