Software Products: Own vs. Rent & Create vs. Get (Incorrectly Called Build vs. Buy)

Understanding the issue

Technology executives are often asked about their preferences on build vs. buy. This question would be better articulated as two separate questions: 1. own vs. rent and/or 2. create vs. get.

Why? The usual problems a company is trying to solve when they ask this are:

  1. How can we have the products, features and/or functionality we want sooner?
    • This is a create vs. get question, i.e. Will it take longer to build it or to get an existing product then install, integrate and configure it?
  2. How can we have a product that not only meets current requirements, but is also more likely to continue to develop to meet future requirements (foreseen and unforeseen)?
    • This is a own vs. rent question, i.e. Who do we think is more likely to innovate, continue to invest and do better future upgrades to the products: us, or a vendor?
  3. Which is the more economical and cost-effective option?
    • This is a create vs. get question, i.e. Which option has better ROI, in-house or a vendor?
  4. Which option will give us more business flexibility?
    • This is a own vs. rent question, i.e. Which option will give us a product that we can later decide to use for other purposes (e.g. sell or license to others)?

Building and buying are often part of the same concept of owning. For example, Google (the company) bought Android, Blogger and YouTube. Android, Blogger and YouTube programmers (builders) became Google employees. As a direct result of Google purchasing (buying) and thus owning YouTube, Google now builds and maintains it. In this example, buying and building are the same thing!

When people ask about companies buying software, they are almost always referring to licensingleasing or renting software.

So instead of calling the debate build vs. buy, which is inaccurate, ambiguous and confusing, we should consider it in two dimensions: own vs. rent and/or create vs. get. Even these distinctions aren’t complete, however, because there are different types of ownership (e.g. owning a product vs. owning a license to use it) and different types of rental or leasing agreements.

Owning a product is different from owning a license to use it. For example, you don’t own Microsoft Word (unless you are Microsoft). You own a license to use it on a certain number of computers. Another example: While you may own the physical DVD disk, you don’t own the movie on it: the rights holder1 does. You only own a license to play the movie for personal, non-commercial purposes. You are not allowed to play the DVD in a theater where you charge people to watch it. Nor are you allowed to distribute the film via a file sharing service. You are also not allowed to copy a long scene from the movie and use that video footage to create an advertisement for a product you are selling.2 These examples are relevant to the incorrectly named “build vs. buy” decisions, because the type of ownership governs what you can do and cannot do with the product. That has consequences for the future of your business.

Open Source Products

When asking the own vs. rent question, using open source products falls in the own side, because open source licenses permit you to do as you please3 with your copy of the open source software and no one can take it away from you. Open Source software licenses grant you rights similar to those you’d have if you owned it.4 Open source makes owning even better. It enables owning and sharing at the same time, which benefits the community at large.

When considering create vs. get, however, open source products fall in the get side because just like paid products, open source products are developed by someone else; are already made; and they can be implemented and supported by third-party vendors.

The popularity of open source products is another reason why build vs. buy is not the right question. Open source products are both “build” and “buy”, in the ‘own’ and ‘get’ senses respectively.

Having a preference is a good thing

Sometimes technology executives try to answer this question in a way to avoid seeming biased. They claim they have no preference towards either owning or renting software. However, a preference (a good thing) is not the same thing as a bias (a bad thing). When a person provides such a noncommittal answer, it might indicate they lack leadership, vision and a clear philosophy, or the courage to give an honest answer.

I generally prefer owning over renting. This applies not just to software, but to other things in my life like owning a home and owning a car. There are other people who prefer to rent apartments and lease cars. Neither philosophy may be better in general than the other, but one of them is always better depending on the circumstances. That’s where leadership comes in. A leader has learned from experience and from others and thus has preferences, principles and a philosophy. Good leadership is based on evidence, research and science. Leaders who prefer either one of owning or renting can be equally successful in the same organization and circumstances.

The nine main reasons I often prefer my organization to own the software it uses for its core business functions are:

  1. Competitive advantage via exclusivity, if desired.
    • You have an advantage over others who don’t have your software. They can’t just buy the products and services from the same vendor as you.
    • When an employee leaves your company to join your competitor, they can’t do the same thing they did for you there without your software.
  2. Business flexibility. When you own the software you use, you can:
    • White-label and license the products and/or services implemented using it to other companies, generating revenue.
    • License some of your software itself to other organizations, generating revenue.
    • Open source it, giving back to the community (a charitable thing to do)
  3. Economy and cost-savings when growing. When you own the software you use, you can use it without buying additional licenses for:
    • Companies that you acquire in the future
    • Implementing new products
  4. Control over your data.
    • When a vendor manages your core business data, in most cases you have practically relinquished control of your data even though your contract may say on paper it is yours.
  5. Superior integration and Time to market
    • When you own the products you use, it is often easier and cheaper to integrate with your other systems.
  6. Faster time to market
    • Your timelines are less at the mercy of outside vendors whose interests may or may not be aligned with yours at any given point in time.
  7. Superior integration
    • When you own the products you use, it is often easier and cheaper to integrate with your other systems.
  8. Choice. When you maintain a great software engineering team in-house:
    • You keep your vendors on their toes, knowing that they are not your only option.
    • You have the in-house expertise to evaluate the vendor products, solutions and claims. The in-house folks’ interests are best aligned with your company’s.
  9. The most successful companies have great software engineering teams that develop their core software.
    • Google, Facebook, Twitter, LinkedIn, Netflix, etc.: They all have great software engineering teams who build their core products.

The practice of renting too much of its software used for core business functions has run many companies into trouble.5 There are numerous examples of vendor solutions in search of problems. A vendor will often wow a team of executives with a product presentation and demo. The company will agree to rent the software not anticipating the cost increases over time. Later, the company will find it wasn’t worth the investment.

Vendor Evaluation Checklist (Starter)

When you do decide to use a vendor, consider using the following checklist.

When you meet a vendor trying to sell you a product or service, you must manage the meeting, instead of letting the vendor manage it. Ask the vendor the following questions.

  1. What business problem does your product solve?
  2. Who are your competitors?
    • If they claim they have no competitors, be cautious since it is unlikely to be an honest answer. Never assume that have no real competition like they claim. Do your own research on this regardless of how they answer the question. Compare their answer with your own findings.
  3. Please give us a live demo.
    • Do they use another customer’s data in their live demo? If yes, did they have permission from the customer to show it to you? If not, it implies they are callous about data privacy and how can you trust them not to show your data to others in a demo or even use your data for other purposes?
  4. We’d like to try before we buy but with no obligation to buy. Are you willing to do a test implementation (spike) with us at no or minimal cost to us?
  5. Explain your pricing in detail.
    • Ask for this at the first meeting.

This is a just a starter checklist. I plan to write a more thorough vendor evaluation checklist in a future article.

Caveats

My preference to own applies only to software products for the company’s core business functions. For non-core back-office functions like corporate email, human resources, financial management, etc., I prefer to license software instead of owning it.

The future shape of software is changing.6 With Web-based applications and utility computing (“cloud” computing) becoming popular, even home users may increase the practice of renting software on a pay-per-use basis. I may write on that subject in the future.

[Authors Note: I expanded this post in July 2013 to provide more detail, but I purposely didn't "update" it in the sense of making it current with respect to the times because I want to preserve this as a record of the philosophy I had back in 2007. To reflect the evolution of my thinking on this topic, I may write a separate article in the future.]

  1. usually a studio []
  2. …except as allowed as fair use under copyright laws. []
  3. within reason []
  4. except the right to restrict its use by others []
  5. E.g. Vendor Lock-In https://en.wikipedia.org/wiki/Vendor_lock-in, Abandonware https://en.wikipedia.org/wiki/Abandonware , etc.  []
  6. Konary, Graham & Seymour; 2004; The Future of Software Licensing: Software Licensing Under Siege http://www.softsummit.com/library/white_papers/futureofsoftwarelicensing_idc.pdf  []

7 Tips for Effective Email

Some tips for making better use of email at work and in personal life

  1. Realize that busy people may skim your email instead of reading it thoroughly, especially if they notice that they are among one of multiple recipients of the email.
    • When speaking to a specific person or people in the email body, highlight their name using bold, italics or color so that they notice it.
  2. When you send an email to multiple people asking for a response or assigning a task, specify by name in the body text who you are asking for a response or action from. Otherwise people may read your email and assume one of the others will act on it.
  3. When sending a very short message via email, put it all in the subject line and put EOM at the end of the subject line. EOM is a special convention and abbreviation for End of Message signaling that the body text of the email is empty and can be skipped.1
  4. Avoid using the bcc feature in a sneaky way to tell someone else (e.g. the main recipient’s boss) only your side of the story without telling the known recipients.
  5. At a workplace, when you send announcements (i.e. when your goal is for you to disseminate information and not to start a discussion), send the message in a way that recipients do not reply-all.
    • You can do that by either using a mailing list that only authorized people can send mail to, or by putting the actual recipients in bcc: field and using a placeholder address in the to: field. That is a legitimate use of bcc:. You could also request in your message that recipients do not reply-all to this message and instead for example, report issues to an alternate address.
    • Managers sometimes cringe when after they send a positive message to a large number of people, one of the recipients replies-all with a negative message that either diminishes or distracts discussion away from the original positive message. An employee who does reply-all to a positive message with a negative one is being foolish or a jerk (usually both). You should avoid giving such people a pulpit and opportunity to lower others’ morale and/or start a flame war. (When you have such employees who don’t stop doing this after being told, fire them and hope they get employed by your competitor.)
    • If you are the recipient of an announcement, do not do a reply-all, unless you have a relevant, positive message to add that adds value to and strengthens the original message.
    • I am not suggesting that you don’t voice your disagreements, corrections, cautions, constructive criticism and other comments. You should express them, but not via reply-all. Communicate them to the appropriate person(s) only, typically that would be the sender of the announcement or your supervisor. If you find an error in someone’s announcement, give the sender the courtesy of an opportunity to send out a correction by letting them know first.
  6. Give people reasonable time to respond to your email, even if they have mobile devices (like BlackBerry or other email enabled phones).
    • Realize that some people are overwhelmed by email and you should occasionally reach out to them in person or via phone for certain important matters. Email is not a replacement for all personal communication.
  7. Avoid checking your email on a mobile device when interacting with other people in person except when absolutely necessary, for example in a meeting. It is rude and it implies you are not focusing on your job in the meeting.
    • If your job requires you to be on alert for certain messages, set up alerts via mail filters that will sound or vibrate the device to inform you of messages that require you to interrupt your current activity.

Further Reading

Please read, follow and share these tips about using email effectively:


  1. article on LifeHacker: How “EOM” Makes Your Email More Efficient  []

I now use WordPress publishing software for this site (Product Review)

Managing blogs and news content with WordPress is a Zen-like experience. The inner-beauty of a product is felt when it becomes almost unnoticed, allowing the site authors and editors to focus on publishing content and providing useful interactive functionality to their readers and customers.

I say this as someone who has been immersed in web content management for major news media companies since 1995. I have spent over a decade leading teams evaluating, implementing, maintaining and developing content management and publishing systems, including some industry award winning ones. My teams (including me personally) have been working closely with writers, editors, designers, photo/multimedia staff, sales and marketing folks at companies whose livelihoods depend on publishing content. I’ve also maintained my personal web sites since 1994.

It is impressive how well WordPress has worked as a CMS for the blogs and pages on this site. It is simple to use and painless to configure, manage and upgrade. It minimizes overhead and maintenance work.

WordPress plays well with others. It doesn’t require you to convert all your static content and pages powered by other CMS systems and custom scripts into WordPress. This allows you to conveniently migrate content to WordPress over time, preserving the URLs and keeping your site functional.

No wonder so many non-technical people and technologists alike use it for their sites: I switched to WordPress inspired by reading the personal blog of a colleague and CTO at another major media company who had also switched to WordPress. It is one of the best solutions for personal web sites and small to medium size organizations.

WordPress also powers the blogs of several major media companies with millions of daily page views. It has an well-designed architecture that makes it an excellent choice for large-scale use. It is used by a large and growing number of sites, including CNN, Fox News, Wall Street Journal, Yahoo, General Motors, Southwest Airlines, People Magazine, Apple Computer, Sony PlayStation US, C|Net, NY Times, Ziff Davis, Xerox, Delta Airlines and many others.

WordPress is a great choice because

  • Simple to use for writers and editors
  • Quick and simple to install, maintain and upgrade for systems administrators
    • E.g. automated daily backups to remote systems using a plugin
  • Good architecture for programmers to extend functionality if needed
  • Search engine-friendly and people-friendly URL structure
  • Dynamic publishing model of content managed in and served from a relational database. Content management and delivery are seamlessly integrated.
    • Presentation, as in design, is well separated.
    • This is a superior approach compared to other blog / CMS systems that recommend publishing static files.
      • In the file publishing model, those files are then served directly by the web server or processed by a web application server / CMS. That architecture, used by other blog platforms does not scale well and has been found to be error-prone, especially under heavy publishing/editing/commenting use.
    • If needed, external caching1 can be used that provide all the benefits of static file publishing without the drawbacks.
  • Excellent content management in a relational database
  • Rich feature set for advanced web publishing needs
  • Large and growing user base, well-supported and actively developed by the community
  • A large and growing number of plugins that add functionality to WordPress
    • WordPress is used by so many people that it is often likely that someone has developed a good solution for what you require. The WordPress directory is teeming with plugins, themes and other extensions developed and given by the community.
    • For example, support for OpenID as a client and server, site usage tracking with web analytics.
  • Plethora of third-party commercial support options available if needed
  • Free of license costs. Simple to operate and operate. Low total cost of ownership. An economical solution.
  • Reliable. Good performance. Scalable. Secure.
  • Open source

What WordPress currently lacks

  • A simple, standard way to place a widget in the main content area of a blog post or WordPress page. Currently plugins that need to place a widget there require putting in some special markup whose syntax varies with each plugin. Many use an HTML <!–comment–> syntax in the Code editing mode. Some use a syntax of [commands in braces] in the Visual editing mode.
    • A good solution would be for wordpress to allow widget placement and manipulation completely within the Visual content editing mode. Behind the scenes, in the code view, all plugins would use consistent markup syntax and it would be editable using a menu option in the Visual editing mode.
  • A way for certain widgets to only appear in the sidebar(s) of particular WordPress Pages or particular blog posts.
    • A good solution would be to have the ability to place a widget only on certain URLs that match a regular expression. Also, the edit form should have an option to include a widget only on a particular post or Page.

Alternatives

Another excellent choice for a blogging CMS is MovableType. I’ve had extensive experience with it and like it a lot too. MovableType and WordPress are the two leading products in their category.

If you are looking for a full-fledged content management system, consider Drupal or Plone. After a successful run for many years, my own Java-based Cofax is heading towards retirement.

If you need to build your own custom CMS, build using frameworks like Python with Django, Ruby on Rails or Groovy with Grails.

Rating: ★★★★★

  1. E.g. content delivery network like Akamai, an accelerator/cache like Squid or Varnish []