Category: Tech

  • Technical Review in a Company Acquisition

    As part of the Pardot acquisition a few years ago, there was an extensive technical review during the due diligence. As you would expect, the idea was to evaluate the technical underpinnings of the product and to try and assess if it was well made and will continue to perform as the company grows. Only, a technical review by a third-party is incredibly difficult as languages, frameworks, deployment strategies, etc. are all different and nuanced.

    Here are a few areas of technical review in a company acquisition:

    • Code Walkthrough – Much time was spent walking two senior engineering managers through how the code was organized and styled. Here, the goal wasn’t to evaluate every line of code, but rather to see that it was maintainable and that we were thoughtful in our approach.
    • Architecture – After the code walkthrough, the next step was to draw out the architecture of the product and explain how all the modules interfaced with each other. With a standard Model-View-Controller approach, the basics are usually straightforward.
    • Data Storage – With so much information being stored across so many different customers, data storage and retrieval was a big deal. Of particular note were the areas where data was growing the fastest as well as our strategy for keeping up with the growth.
    • Deployment – When a software engineer makes a change, what happens before customers get to see or use that change. How much human intervention is required? Is it automated? What tests have to pass? Where does the code go?
    • Hosting – With a complicated web-based application, the number of servers and services can be quite large. An acquirer wants to understand how manageable the hosting configuration is and how hosting costs grow as the customer base grows (hopefully there are some economies of scale in the hosting costs as revenue grows).

    Note that nowhere during the process was there a consideration for how well our product could integrate with their product or if our product was written in the same language and/or style as their product. For acquisitions whereby the product is going to continue on as a standalone application, the goal is make sure that it’s well made and will continue to perform as the business grows. Technical reviews, in my limited experience, are much easier than expected.

    What else? What are some other thoughts on technical reviews in a company acquisition?

  • Legacy Code Base Challenges

    Continuing with yesterday’s post 90 Days of GitHub Commits, jumping back into software engineering has really driven home to me why it’s so hard for successful software companies to keep up with new upstarts. Once a product is working, and the startup starts scaling, all the engineering efforts are focused on keeping up with growth, not with the latest technologies. And, over time, as the code gets deeper and broader, it becomes even more difficult to modernize things.

    Here are a few thoughts on legacy code base challenges:

    • Think of the products you use on a regular basis. Now, think about their user interfaces, especially the ones that are the most legacy (e.g. payroll, CRM, etc.). The older the application, the more antiquated the interface due to a large customer base and the tremendous difficulty updating it.
    • Newer technologies often make software engineering faster, more scalable, and more maintainable (when used correctly), which gives an edge to startups using the latest technologies.
    • Complicated customer use cases for a limited audience can be even more challenging for legacy products as the market no longer demands the functionality, yet it still has to be maintained because certain customers use it (watch out for frankenstein products).
    • Entire markets of new products to mobile-enable legacy products have emerged (e.g. Catavolt) showing that legacy software companies have serious difficulties staying up-to-date

    A common question I hear from people outside the software world when talking about a startup idea is “can’t Google/Facebook/Microsoft just update their product to include this functionality?” Yes, it’s technically possible, but there are so many competing priorities and legacy challenges that it won’t ever get done. And, that’s one reason why startups can start with a niche and grow into a formidable competitor.

    What else? What are some more thoughts on challenges with legacy code bases?

  • 90 Days of GitHub Commits

    As part of my 2015 Year of Code plan, I made a small goal to commit code daily for 90 days straight to get back into things and learn as much as I can. My last run at serious software development was in 2008, so it’s been many years since I’ve done it on a regular basis. Now, I feel proficient and productive again.

    Here are a few takeaways after writing code for 90 days straight:

    • GitHub – Git, and GitHub in the cloud, make version control easy and integrated. Before, we had hosted a version of Subversion in-house and it worked, but wasn’t nearly as seamless. Add in pull requests, code reviews, tight issue tracking with code commits, and things are much better.
    • AWS – Amazon Web Services is insanely powerful. Between OpsWorks, RDS, ElastiCache, EC2, and more, AWS completely changes how software is managed and scaled in the cloud. I now understand why AWS is a $5 billion a year business for Amazon.
    • Continuous Deployment – Running automated tests and deploying code to production was historically a tedious process. Now, as soon as code is committed, tests automatically run and code is pushed to the appropriate servers, without human intervention.
    • Special Purpose Conversion Languages – One major trend that wasn’t around before is writing code in one language to produce code in another language, specifically CoffeeScript for JavaScript, HAML for HTML, and SCSS for CSS. Clearly, smart people weren’t happy with some of the tedious aspects of popular languages and markup formats, so the solution was to write code in a more understandable way to produce other code. I like it and it works well.
    • jQuery – Writing JavaScript (through CoffeeScript) and plugging in pre-built components has never been easier. The eco-system and available modules make putting together interactive front-ends enjoyable.

    Overall, software engineering has made solid progress. Now, things are more maintainable, distributed, and productive compared to several years ago. I’m a fan of the innovation and can better appreciate how the new tools and systems have decreased the time to market for talented teams.

    What else? What are some other new trends in software engineering compared to several years ago?

  • Creating a Great Environment for Software Engineers

    Continuing with yesterday’s post on Recruiting Software Engineers, Kevin Strasser of TribeBoost offered a great comment that software engineers are looking for more than just money — the environment must also be attractive. Here are some thoughts on creating a great environment for software engineers based on Kevin’s thoughts and others:

    • Autonomy, Mastery, and Purpose – Encourage autonomy, mastery, and purpose for all team members (straight from Dan Pink’s book)
    • Results Only Work Environment – Have a Results Only Work Environment where team members can work where they want when they want
    • Unlimited Vacation Policy – Don’t track vacation days, sick days, or flex days, rather, focus on the required results for that position
    • Great Equipment – Provide the latest MacBook Pros, Thunderbolt monitors, Herman Miller Aeron chairs, and anything else that helps maximize productivity
    • Workspace Variety – Offer different shared and private areas to work as some tasks are more collaborative and some are more heads-down
    • Big Picture Understanding – Share a Simplified One Page Strategic Plan with everyone so that there’s a greater understanding of the entire business and direction

    Creating a great environment for software engineers and team members takes work and continual refinement. Following these best practices and working hard to create one of the best places to work makes it easy to attract great talent.

    What else? What are some more thoughts on creating a great environment for software engineers?

  • Recruiting Software Engineers

    Just this past week I’ve received two separate requests for help recruiting software engineers. I think it’s a sign of the times with technology continuing to be hot and the corresponding shortage of software developers becoming more acute. So, as someone who’s trying to recruit developers, what are some best practices?

    Here are a few ideas for recruiting software engineers:

    • $10,000 referral bonus – Offer a $10,000 referral bonus to any employee that refers a software engineer that is hired and stays with the company for six months
    • Twitter – Build a brand online through social media and use it as part of the recruiting process
    • LinkedIn – Use LinkedIn, both on the job posting side as well as directly soliciting employees of other companies, to find great talent
    • Alumni Career Fairs – Sponsor both student career fairs as well as alumni career fairs (e.g. GA Tech has an alumni career fair)
    • Technical Meetup Groups – All the major programming languages have regular meetup groups (e.g. the Atlanta iOS Developers meetup) and engineers that attend them are interested in honing their craft
    • Recruiters – External recruiters are a way of life in the technology world and the key is to find ones that understand the importance of culture and fit when placing candidates

    Recruiting great software engineers is a real challenge, and with serious effort, readily achievable. Build a methodical process and try a number of different avenues to find the right candidates.

    What else? What are some more thoughts on recruiting software engineers?

  • Year of Code

    Back when Adam and I started Pardot in 2007, I spent the entire first year writing code full-time and it was awesome. We were blazing a new trail with SMB marketing automation and adding new functionality every week. As the business grew, my software engineering efforts slowed and I focused my energies on ways to best grow the business. After we sold Pardot, I spent the past two years split between the Atlanta Tech Village and Kevy, trying to get both off the ground. Now that construction has been done at the Village for a couple months, I’ve had the opportunity to jump back in and write some code.

    In fact, my goal is to continue writing code part-time throughout 2015 — a year of code. Here are a few ideas on the year of code:

    • My target is 500 hours of coding over the course of the year (~10 hours/week), but it’ll ebb and flow based on priorities
    • My guess is that it takes 50 – 100 hours to achieve proficiency again
    • Most of my skills from 2007 are fairly applicable today, if only rusty
    • My effort is focused on non-core or net-new items that aren’t yet customer-facing

    Like Allen Nance says in Old Dog, New Tricks, the world is becoming more technical and a deeper understanding is important. I’m looking forward to the year of code.

    What else? What are some other thoughts on writing code part-time for a year?

  • Reduce Friction to Improve Product Adoption

    Recently I was talking to an entrepreneur about his product. The market already had a couple of inferior solutions to the problem he was solving, each with their own pros and cons. His new product provided a more elegant platform, but also increased the friction for product adoption. Product adoption is a major challenge to building a successful business.

    Here are a few thoughts on reducing friction to improve product adoption:

    • Research the most commonly performed tasks
    • Figure out how to reduce the number of steps required to get the most value
    • Ask users if they could wave a magic wand, how would the product work
    • Find out what users like and dislike most about the product
    • Track the time to wow

    Minimizing product adoption friction is one of the best ways to maximize customer success. An unused product is an unsuccessful product.

    What else? What are some more ideas on reducing friction to improve product adoption?

  • Enterprise Software Public Company SaaS Valuations for Q2 2014

    Once a year I like to inventory the public company SaaS valuations (see 20132012 and 2010). Earlier this year SaaS valuations shot up a good bit, but have subsequently come back down over these past few weeks. We’ve also had several SaaS companies acquired over the past year including ExactTarget, Eloqua, and Responsys as well as new IPOs like Cvent and ChannelAdvisor.

    • salesforce.com (NYSE:CRM) – customer relationship management SaaS company.
      Market cap: $30.86 billion
      Last reported quarter’s revenues: $1,145 million
      Employees: 13,300
    • NetSuite (NYSE:N) – enterprise resource planning (accounting, inventory, etc) SaaS company.
      Market cap: $5.53 billion
      Last reported quarter’s revenues: $122.96 million
      Employees:  2,434
    • Constant Contact (NASDAQ:CTCT) – email marketing for small business SaaS company.
      Market cap: $874.21 million
      Last reported quarter’s revenues: $78.87 million
      Employees: 1,235
    • LogMeIn (NASDAQ:LOGM) – remote machine access SaaS company.
      Market cap: $981.18 million
      Last reported quarter’s revenues: $49.02 million
      Employees: 675
    • LivePerson (NASDAQ:LPSN) – live chat SaaS company.
      Market cap: $506.71 million
      Last reported quarter’s revenues: $47.83 million
      Employees: 796
    • Demandware (NYSE:DWRE) – ecommerce SaaS company.
      Market cap: $1.69 billion
      Last reported quarter’s revenues: $35.54 million
      Employees:  383
    • Marketo (NASDAQ:MKTO) – marketing automation SaaS company.
      Market cap: $950.39 million
      Last reported quarter’s revenues: $32.29 million
      Employees: 519
    • ServiceNow (NYSE:NOW) – IT asset management SaaS company.
      Market cap: $6.66 billion
      Last reported quarter’s revenues: $139.09 million
      Employees: 1,830
    • Workday (NYSE:WDAY) – HR and financial management SaaS company.
      Market cap: $12.48 billion
      Last reported quarter’s revenues: $141.87 million
      Employees: 2,600
    • Cvent (NYSE:CVT) – Events management SaaS company.
      Market cap: $990.58 million
      Last reported quarter’s revenues: $30.70 million
      Employees: 1,450
    • ChannelAdvisor (NYSE:ECOM) – Ecommerce channel management SaaS company.
      Market cap: $542.43 million
      Last reported quarter’s revenues: $19.34 million
      Employees: 216

    Valuation wise, the two biggest movers were Constant Contact and Demandware doubling in value over the past 12 months. SaaS/cloud computing companies continue to command larger valuations relative to other technology companies.

    What else? What are some other observations on public company SaaS valuations?

  • Gap Between Prototype and Robust Product

    While assembling a prototype to assess market demand is dramatically cheaper than 10 years old, there’s still a serious gap between minimum viable product and robust product. Software, like any product, can always be improved. Unlike many physical products, the complexity of a software product is not always understood even after a fair amount of usage.

    Here are a few thoughts on the gap between prototype and robust product:

    • All software has bugs, but over time the frequency of new known bugs will decrease (assuming minimal new functionality introduced)
    • Some software is inherently more complicated resulting in more time and effort required to achieve a robust state
    • One gauge to assess product robustness is to get it to the point where there aren’t any known blocker bugs and to have configured 10-25 new customers without any issues (bugs are always going to be present but the severity isn’t always going to be high)
    • Product robustness and product/market fit aren’t correlated as the product can be solid without market fit

    Prototypes aren’t the same as robust products but they are very important. Entrepreneurs need to budget for continued product development and pay attention to issues.

    What else? What are some other thoughts on the gap between prototype and robust product?

  • 947 Different Marketing Technology Companies

    Scott Brinker, a.k.a. Chiefmartec, has an amazing supergraphic up with 947 different marketing technology companies in his post titled Marketing Technology Supergraphic 2014. Just looking at it you get the sense that there are way more tools and technologies out there than anyone would have expected. Only, there are even more as many startups carve out niches and don’t show up on the radar.

    Here are the categories in the supergraphic:

    Marketing Experiences

    • Email Marketing
    • Mobile Marketing
    • Search & Social Ads
    • Display Advertising
    • Video Ads & Marketing
    • Creative & Design
    • Communities & Reviews
    • Social Media Marketing
    • Events & Webinars
    • Calls & Call Centers
    • Customer Experience / VoC
    • Loyalty & Gamification
    • Personalization
    • Testing & Optimization
    • Marketing Apps
    • SEO
    • Content Marketing
    • Sales Enablement

    Marketing Operations

    • Marketing Data
    • Channel / Local Marketing
    • Marketing Resource Management
    • Digital Asset Management
    • Agile & Project Management
    • Marketing Analytics
    • Dashboards
    • Web & Mobile Analytics
    • Business Intelligence

    Middleware

    • Data Management Platforms / Customer Data Platforms
    • Tag Management
    • User Management
    • Cloud Connectors
    • APIs

    Backbone Platforms

    • CRM
    • Marketing Automation
    • Web Site / Web Content Management / Web Experience Management
    • Ecommerce

    The next time an idea pops in your head, check out the supergraphic and use it as a starting point for research.

    What else? What are some thoughts on the different marketing technology company categories and companies listed?