Development Methodologies – Agile vs. Waterfall vs. Scrum

An oft-repeated mentality in not just software development, but throughout startup culture in general has been that agile or Scrum are universally better approaches to product creation and we should all embrace it with open arms. I whole-heartedly disagree, but before we get into that, let’s talk about what these methodologies actually are and where they came from.

Waterfall model

The waterfall model, like other software development methodologies, has its roots in large-scale manufacturing of complex goods, like construction projects. It has a planning phase in which every aspect of the project is defined, and a development phase where the implementation of that plan happens, and it concludes in a delivery phase where the final product is released and the process begins anew. At its core this is how large-scale projects have been done for centuries, and it’s completely rational. But, the requirements of the project must be known in their entirety up front, as well as any constraints because once the project gets going, it’s too late to make changes.

Agile model

Agile was created specifically to address the shortcomings of waterfall in software development, and it really started to ramp up with the adoption of the internet. Agile essentially restructures software such that the software is not the end product.

If we think about another manufacturing process that parallels waterfall, say building a house, the product is the house. It’s delivered one time, at the end of construction, and the customer has no ability to extract any value from the product until it is finished. In the early days of software this was exactly how it worked. A team would work away on a project until it was finished, at which point they would get it printed on disks and distribute to customers.

With the widespread adoption of the internet in the late ’90s things started to change. Suddenly, software could be distributed incrementally with downloadable updates. Fast-forward a few years and most software shifted to a Software as a Service (SaaS) model. In this environment, the software as a whole is no longer the entirety of the end-product, rather it becomes a platform on which features, mini-products if you will, are continually being delivered over time and each one is capable of immediately providing value to the customer.

Now that we’ve changed the definition of the end-product from a single, complex deliverable to many iterative deliverables, the methodologies used by large, complex manufacturing processes no longer make the most sense. Instead, the industry began to look at manufacturing processes with shorter lifecycles and higher volume of output, like the Japanese auto industry. In these environments, the opportunity to continually improve both the product and the process with each new unit produced is possible, and while we still certainly need a plan, we just need a plan “good enough” to get us through the first few cycles. After that, we can learn from the inefficiencies of the process and improve over time.

So agile is incremental, continuous, and requires a different delivery model in order to be effective.


Scrum is a framework for the application of the agile methodology to software projects. There are other flavors of agile, but Scrum has become one of the most popular, and for good reason. Scrum has a few basic tenants:

  • Work is completed in consistent intervals, called sprints.
  • Features are called stories, and every story in the backlog must have a level-of-effort estimation.
  • Over time teams can better gauge how much work they can complete in a sprint by measuring velocity, the average number of story points completed in all past sprints.
  • Every sprint has a kickoff, during which the stories to be completed are defined and dependencies are named, and a retrospective, where a team can learn from successes and challenges of the sprint.
  • Daily standup meetings keep communication flowing and hold team members accountable.

The benefits of Scrum are numerous, but as a product manager the key benefit for me is in its planning capability. When we departed from the waterfall approach planning, in particular long-term planning, became extremely difficult. With Scrum we can track our velocity, break work up into estimate-able stories, and have a reasonable game plan for how we can split those stories up over time.

Methodologies are just tools. Use the appropriate one!

Scrum / agile has been a game changer in the product development world, not just in software. It’s been adapted over time to address the needs of particular hardware products and even services with success. But let’s keep in mind these methodologies are just tools, and as tools they have appropriate and inappropriate uses.

Just like we would never build a house one room at a time (and let the residents dwell in the completed rooms), some projects—even in software—simply don’t lend themselves to agile.

Where agile doesn’t fit

If the product development lifecycle has a fixed end

Agile relies on continuous development in order to be effective. It’s the embodiment of “better done than finished” and as such, requires successive iterations to improve on the things that aren’t up to par.

If the delivered product can’t easily be updated

If you can’t update your product after it’s released into the wild, you can’t really use agile. Sure, you can adopt agile-like processes to work towards a fixed release date, but once you cut a release there’s no going back.

If the scope of the project is fixed-in-time and wholly known

One of the fundamental concepts in agile is that project scope is minimally defined and is variable, meaning it changes over time. If your scope is completely defined and won’t be variable, the up-front effort to plan every phase of development won’t be wasted as it would be in agile. In fact, if the scope isn’t changing at all it’s much better to plan and optimize the entirety of the development lifecycle in advance to eliminate risk and uncertainty down the road.

So to wrap up, I believe most software projects these days are great fits for agile, and Scrum is a really solid framework to follow. If you would like to learn more about Scrum and how to implement it check out Scrum Guides, a resource from Scrum’s creators.

How to improve email deliverability

Deliverability is a commonly discussed topic among digital marketers, and for good reason! It’s the lifeblood of many businesses and unfortunately it remains a complete mystery to many of them. Fortunately it’s also something that you have quite a bit of control over.

It’s a common misconception that all email marketing platforms have similar deliverability. I’ve often heard marketers say if you have delivery issues you should figure out what you’re doing wrong instead of jumping ship for a new shiny platform. I appreciate the sentiment, but for the budding entrepreneur this is destructive advice. If you don’t have a solid reference point, how do you know if there’s room for improvement in the first place?

Deliverability is 99% about you and your content.

But that last 1% can stop you in your tracks.

Let’s get this out of the way first. If you’re trying to cut corners or are failing to do some basic email marketing housekeeping you’re going to have a bad time. Here’s a really brief list of things that will land you on the wrong side of the spam filter:

  • Buying email lists. If you’re sending emails to people who didn’t explicitly opt-in to receive them you’re going to get some high complaint rates. Just don’t do it.
  • Going long periods without emailing your list. Emailing a cold list yields poor results. Set up an automated nurture sequence and make sure you keep up with new content. Recycling newsletters back into your nurture sequence is a great way to build content over time.
  • Sending from a domain you don’t own. If you’re sending from a Gmail or Yahoo! address deliverability will be poor. Use your own domain, and make sure you follow your email platform’s instructions to configure your DNS records.
  • Making unsubscribing difficult. If someone can’t figure out how to unsubscribe they’re going to just report you as spam.

“Email” is just a set of agreed-upon standards

We think of email as a singular thing, but in reality it’s a set of standards that many, many different organizations and individuals have written to define the nuances of how messages should be formatted and how they are sent from server to server.

Email has become an incredibly complex technology. It’s a multi-layered beast of a process to get a simple message from me to you. To simplify what’s happening, there’s two primary layers of checks and balances that happen when an email server receives a message: (1) authorizing that the email came from a “trusted” source, and (2) using some intelligent screening to guess if it’s a message you actually want to read.

In order for this process to work we’ve developed some common standards that ensure Yahoo! knows how to verify an email sent by Google, for example. But those standards are really complex, too. The degree to which everyone in the industry has adopted unified standards has a pretty wide range, and if your email marketing platform misses a step or allows their technology to fall behind the result is a drop in that confidence level email servers compute when they receive your message.

Before you work on anything else, ensure your email identity is rock-solid.

There are 3 technologies you need to know about that work together to verify the identity of the message sender: SPF, DKIM, and DMARC.

SPF (Sender Policy Framework)

SPF records allow receiving email servers to check if the server that sent the message is on the list of approved senders. You set this list by creating a TXT record on your domain that lists which servers are allowed to send mail for your domain.

Sidenote: some DNS hosting platforms support a separate record type specifically for SPF records, these are not TXT records but a specific SPF type. Do not use these records as the majority of email service provider deployments don’t actually look at this record type.

Let’s look at a typical SPF entry. This is the TXT entry I have for my domain:

v=spf1 ~all

You can see I’m allowing messages to be sent from servers that can be discovered using the and domains. The “~all” is the catch-all for any message that isn’t sent from one of the listed domains, and the “~” prefix tells servers to mark it as a message that should fail, you can also use a “-” to indicate these messages should fail outright instead of just being marked differently.

The SPF Specification defines a limit of 10 on the number of lookups servers can perform when validating a message, but the thing to keep in mind is a single domain entry may result in multiple IP lookups. That entry is actually 3 lookups (at the time of writing), so it’s a good idea to limit the number of domains you specify here—and thus the number of services you send email from—to 2 or 3.

DKIM (DomainKeys Identified Mail)

DKIM is a pretty complex technology, so I’ll try to keep this brief. What DKIM allows you to do is digitally sign your emails with a unique signature. When email servers receive your message, they can check to see if the message was signed with your signature, and if not, they know it wasn’t really from you. You absolutely need to set this up. If you haven’t done this you’ll end up in spam folders more often than you’d like, and when your messages do get through many email clients like Gmail will display a warning to users that looks like this:

It’s subtle, but over time they’ll make this more prominent to encourage more email senders to adopt DKIM.

The adoption of DKIM has not only been slow, but many email platforms only have partial implementations.

DKIM can come in two primary flavors. Your email platform itself can sign all messages (including other senders on the same platform) using their own key, or they can sign messages using your own custom key. Using a custom key is better in all respects. It’s another layer of validation that messages are coming from you, the owner of the domain, and not an imposter.

Some email marketing platforms, most notably Infusionsoft, do not support using your own DKIM key and instead sign all messages using their own key. This is not treated as favorably as domain-specific keys when validating a message sender so, ceteris paribus, another platform that supports custom DKIM keys would yield better results.

DMARC (Domain-based Message Authentication, Reporting and Conformance)

DMARC simply sets up a policy that tells email servers how to handle messages that pass or fail the SPF and DKIM validation. It also allows you to specify an email address to send pass/fail reports to, which will help you identify if and why your messages are being rejected so you can resolve the problems. The reports get pretty technical, so I recommend using the free DMARC digest tool from Postmark. Review the weekly digests and over time you can correct things that are causing your messages to get rejected.

Email Sender Reputation

When your email server receives a message they do some pretty complex analysis to try to figure out if it’s a message that you will actually want to read. They do this by looking at the subject line and the contents of the email, but they also factor in a reputation score for the server sending the message. Because of this, your deliverability is directly tied to the behavior of everyone else sending messages from the same server as you. Email marketing platforms do their best to protect their own reputations, and they have a few methods for doing this like shutting down accounts with too many complaints (quick reminder here to backup your list in case this happens to you) and attempting to enforce quality control measures like double opt-ins.

Double Opt-in vs Single Opt-in

Email marketing platforms harp on this one a lot, but the reality is there is no difference between an email address collected with a secondary opt-in step compared to one that wasn’t. The belief here is that someone who takes the extra step to confirm that they want to receive messages from you will be more likely to open future messages, and thus if you’re using a double opt-in process your list will have a better overall impact to the server’s reputation score than if you collected addresses using a single opt-in process. Some email platforms like Infusionsoft will actually send messages to double opt-in and single opt-in contacts from different servers, so this is something to watch out for.

But… double opt-in isn’t necessarily the only way to ensure engaged contacts and high open rates.

In fact, sometimes using your email provider’s clunky double opt-in process will be worse for the overall customer experience, and thus worse for curating an engaged email list.

Take the case of a lead magnet delivery campaign. If you’re asking someone to opt-in to receive a download, then you send them an email asking them to confirm that they want to receive that link to download, and then finally sending them the actual lead magnet delivery email after that, you’re inserting an unnecessary email into the process and thus an additional barrier to that person getting what they’re looking for.

It’s better to focus on your overall list engagement than to force a double opt-in process on all new contacts.

And yes, sometimes that means pruning cold subscribers.

Combining marketing messages with transactional messages

Email marketing platforms that send through the same servers as transactional messages will have higher overall reputation scores because millions of transactional emails are being sent and are being opened alongside marketing emails.

Transactional messages like e-commerce receipts and “reset password” emails have ridiculously high open rates. Mailchimp, for example, offers the Mandrill service, and if you use both your aggregate engagement metrics will look more favorable and thus will boost your sender reputation. ConvertKit uses a service called Mailgun behind the scenes, which you can also use for transaction messages. Another option is to use Amazon’s SES. While you cannot directly send marketing messages via Amazon SES you can set up Infusionsoft to send through Amazon SES via WeDeliver.

Sending from a Dedicated IP Address

Some email platforms offer the ability to buy a dedicated IP address to send your email from. This isolates you from the behavior of other email senders on the platform, separating you from the existing reputation of the platform. That may sound attractive, but just like a credit score no history can be just as big an issue as bad history. Managing IP reputation is more involved as well, the big platforms leverage complex techniques to maintain reputation scores that would no longer be available to you. So my advice is don’t do it!

In addition to your email platform’s reputation, you have your own sender reputation.

Independent of the server’s reputation, your domain carries a reputation score that goes with you no matter which service you send email from. Focus on boosting engagement, and make sure transactional messages that have higher open rates (e.g. e-commerce receipts) are sent from the same domain.

There are services like Sender Score that will report on your sender reputation if you want to learn more about how well you’ve been doing.

Testing, and more testing!

To reiterate, what you’re going for in building up your sender reputation is higher open and click rates. And how do you achieve that? By actively reviewing campaigns to see which subject lines are getting opened, what type of content your list likes, and split testing!

Some things to try:

  • Tailor subject lines to different segments of your list. Different audiences respond to different things, do you have both men and women on your list? Independently measure open rates for each segment and try out different variations to see what sticks.
  • Try sending messages at different times during the day. Timing can be everything, and it can sometimes be hard to predict when your list will be most engaged. Mix up days of the week, split test mornings vs. evenings.
  • Vary your call to action (CTA) placement. Open rates are one measure of engagement, click throughs are another. Optimizing this can not only boost message engagement but also helps with other metrics like email ROI.

In summary

To wrap up, deliverability is complex, but it is mostly about engagement. You’ll be far more successful if you implement identity verification technologies like SPF, DKIM, and DMARC but even with those in place the most important thing you can do is focus on your boosting your sender reputation by providing compelling content your readers want to open.

The Enterprise Product Adoption Problem

We as product creators have lofty visions for how our products will create value in the real world. We envision workflows where our product is central to the daily lives of users and feature sets that our customers will rave about. Our marketing material glows, our sales team consistently gets enthusiastic feedback, and we feel good about that.

But in the B2B world, where buyers and users are often different groups of people, what happens next? Do the intended users of our products welcome them whole-heartedly and completely shift their existing processes to incorporate this new tool their bosses signed off on? More often than I would like to admit, I’ve seen my products either shelved completely or used for individual, isolated tasks that only take advantage of a fraction of my product’s features.

There can be many reasons why your product doesn’t end up getting used to its fullest extent. Set up interviews with a handful of users (10ish is a good goal) and find out what’s going on.

Some common culprits:

1. The product doesn’t actually solve the need you thought it did.

This one can be hard to swallow, but the first thing you need to look at is whether or not the value you perceive is valid in the eyes of your target market.

What to do about it:

Go back through your assumptions and find out what you missed. Is the whole concept based on a faulty premise? Or perhaps there’s one key component missing that compromises the overall value—a missing piece in the workflow. Ensure your team knows exactly what your users need and how that need fits into their broader process.

2. Your users aren’t aware of the capabilities of the product.

Enterprise products tend to have a lot of moving pieces and some have a steep learning curve. I’ve conducted many user tests that resulted in a “I didn’t know it could do that!” type of response.

What to do about it:

This is perhaps the best outcome you could have. Put together a training and education strategy that includes regular feedback sessions with users and focused, value-driven lessons.

3. Your users have competing priorities that outweigh the value proposition your product offers.

Let’s be honest, there’s very few organizations with spare man-hours floating around, and if your product is going to demand a time-investment that doesn’t directly lead to time-savings elsewhere in the organization it will likely sit idle.

What to do about it:

There’s two approaches you can take here.

  1. Get buy-in from management that the value your product can offer to the organization is worth committing resources to.

    This approach can be challenging, but it can pay off once you get a handful of success stories under your belt. Put together case studies outlining the adoption in other organizations and the real value they achieved as a result. Have best-practices and step-by-step implementation procedures ready to go. Align sales, account management, and delivery / customer success teams so everyone communicates a consistent value message to the customer at large, not just the person signing the check.

  2. Re-evaluate your sales & delivery structure and determine if a product / service combination offering is a better fit.

    It can sometimes be easier for enterprise customers to get budget approval for outside consulting support than to free up internal resources or increase headcount. Determine if your product could potentially be used either partially or entirely by an outside consultant to drive the same value. Partner with a consulting agency to start selling join offerings or consider bringing in a consulting function to your delivery org.

4. Your users fear the disruption of process change.

Introducing any change carries some risk. Your sales team may have won over the executives, but unless there’s a strong champion advocating for your product internally you may not get buy-in from the staff on the floor. They’ve been doing their job just fine and your product might lead to mistakes they’ll be blamed for.

What to do about it:

This is perhaps the most challenging problem to solve, but not by any means impossible. Change management is hard. Your customers likely don’t do it well. What can you reasonably do to guide users through a period of transition?

  1. Communicate why things are changing for them.
    Clearly communicating why your product will not only be beneficial to the organization, but to users individually, will be essential to gaining support. Again, case studies of success stories, documentation of best practices, and delivery expectations will go a long way to ease uncertainty.

  2. Get management buy-in, eliminate fears of blame.
    Form relationships with your buyers and set expectations on what a period of transition might look like. Try to guide them through communication to their organization reinforcing commitment to your product and understanding of what the potential impact could be to your users.

  3. Form relationships, establish position of support.
    Stay on the radar of your users — reach out to them regularly, actively offer help. Create product champions out of users by recognizing successes (particularly to their managers), and offering incentives for engagement. Make them feel like they have you on their side, that they are not alone if they need help getting up to speed.

Writing a Good Business Plan

Continuing to migrate answers away from Quora. This post was a response to the question, “How can I write a good business plan?” Original

A good business plan answers the five W’s (plus an H), not necessarily in this order.


Who will be responsible for ensuring goals are accomplished? Who will be responsible for each segment of business operations? Who are they and how are they qualified to do what you say they can? Who is the target market? Who are your competitors?


What is the industry the business will operate in? What specifically will you do and what differentiates you from what currently exists? What do you need to be successful and what will it cost? What growth do you expect and what are the goals you’ve set for the company? What will the organizational structure be and what business model will you follow?


When do you plan on launching? When do you anticipate accomplishing growth goals? When will you break even?


Where will your company physically be located? Where is your target market located? Where does your company fit into the industry?


Investors want to know “Why should I invest in you?” Why do you want to start this business? Why will you be successful? Why will customers choose you over alternatives?


How will you reach your goals? How will you make yourself known to potential customers? How will you position your company in relation to competitors and how will they respond?

Keep in mind that your business plan is as much for you as it is for potential investors – cover all your bases, know the industry inside and out, have backup plans in place in case the industry shifts unexpectedly.

Optimizing Customer / Stakeholder Satisfaction

Continuing to migrate answers away from Quora. This post was a response to the question, “Should customer satisfaction be maximized or optimized?” Original

I think this question boils down to the difference between two theories on the purpose of business in society: does business exist to serve the financial interests of it’s owners and investors or does it exist to satisfy a void in society?

Conventional theories suggest business exists to make a profit, though personally my views on that slightly differ. Do the best interests of business owners and customers compete with each other? In the short term, yes — and as such it makes sense to optimize the satisfaction of customers to a level that yields the greatest profit for the business. Though in the long term I think business interests very much align with customer interests and if a business exists because it believes in it’s product and believes it will benefit society it should maximize societal satisfaction to a point where the marginal benefit to society is zero, or in other words no further satisfaction can be attained without detracting from the satisfaction of other stakeholders.

The maximization of stakeholder satisfaction is what is key here. A business cannot operate successfully in the long term if it compromises the livelihood of its customer base. Nor can it sustain growth if it does not satisfy its investors. It can’t attract talented and innovative people if it doesn’t satisfy its employees. The idea of competing interests is a myth — maximizing benefit to all produces the greatest probability of sustained long-term success.

Hiring for Culture Fit vs Experience

This post is the first of several to migrate answers away from Quora. I’ve long since abandoned the platform but the content I created there I think is still pretty valuable. The response has been reworded slightly from the original such that it makes sense in isolation. Original

I’ve seen plenty of examples of both hiring purely on experience and hiring with a stronger emphasis on culture fit. Which is better? My take away from it has been that, like most things, it depends.

The most creative and talented developers can learn just about any language, and many times they bring skills and design ideas with them from previous languages and frameworks that perhaps veterans of the language would not. What you want is someone who is capable of thinking in terms of secure and efficient application design, but who can also come up with new and innovative ways of solving problems and are aware of the external forces driving and funding their development.

Conversely, it can be extremely costly and time consuming to have to train a new employee. It would be much easier to find someone who can hit the ground running and immediately start adding value to your business process.

The ideal use case would of course be to find someone that fits the first description, but also is competent in the language in question. Depending on your technology stack this may be difficult to find, so my advice would be this: keep an open mind. Start looking for that perfect match, but if the finances allow it and you find matches that could be perfect once they learn your system, don’t rule them out. In the long-term it would be much better to hire a rock-star developer that may take a while to learn your systems than a mediocre one simply because they have experience in the language being called for.

Expect the Unexpected: Plan for KPI Variation

As a product manager I spend a lot of time thinking about key performance indicators (KPIs). How can I measure the success of my initiatives and how can I track that my products are contributing to organizational goals like revenue targets or market penetration?

Decide what to measure.

What are your objectives for your product? What organizational goals does your product contribute to? These questions should drive the metrics you choose to pay attention to. Choosing what to measure is perhaps not as difficult as choosing what not to measure, or at least what not to pay as much attention to. There are some great articles out there on different strategies and types of product measurement.

Your KPIs should give you a complete view into your product performance, but how can you use these metrics to guide product decisions? What happens if your KPIs show poor product performance? Ideally you would want to take a step back, re-examine the market and your product position and make a strategic decision to steer your product back to where you want it to be. But in the real world, there isn’t always time for this. End-of-quarter reviews loom overhead. Board meetings and resource allocation adjustments are being made. It’s tempting to make changes specifically to change KPI values, instead of focusing on the broader product strategy and what the metrics are supposed to be indicators for.

Expect the unexpected.

A standard part of any business or financial analysis is the “sensitivity analysis” where we determine the impact if there is any variance in figures determined through assumption or that carry any significant risk. Business strategists use something similar called scenario planning, sometimes called a “what-if” analysis. The goal here is to think about what you are most dependent on, and think through what would happen and what your plan of action would be if your dependencies are compromised. What if a competitor lowers prices? What if your infrastructure’s firewall is breached? What if a key resources becomes unable to work?

Because we are measuring the success of our product based on our KPIs, we have clear criteria for scenario planning that we can then use to make actionable plans. Rather than reacting to an unexpected metric, we can get ahead of the game and come up with a game plan to shift strategy or execute tactics to regain ground towards our goals.

Get ahead of the game.

Scenario: My product’s free-trial downloads are hitting targets but conversions are well below estimates.

This is a very real scenario, but if we’ve planned ahead we can take action early and potentially solve the problem before the next generation of trial users reach the paywall. Have a pre-written loss analysis survey that you can send to that first batch of lost customers. Have UX metric funnel reports pre-generated so you can quickly find out what the points of frustration are in your product’s usability. Have a backup pricing strategy you can run by lost customers to see if it appeals to them more. The plan of action will vary, but if you think through the possibilities of what might happen with regard to your metrics you can realign your product performance before it veers too far off course.

Outgrow Niche Markets With Core Competencies

It’s fairly common knowledge that an effective approach to differentiate and capture market share is to focus on a niche market and serve that market’s needs better than the competition. This can be a great strategy for new entrants to the market, but as any marketer will tell you the phrase “niche market” is just another way of saying “small market.” So how can you avoid pigeonholing your business into a market with no opportunity for growth?

Focus on your core competencies.

Core competencies are what truly differentiate you from the competition and form the cornerstone of your business. It’s your special sauce that the other guy doesn’t have. Running lean, your business model may go through a handful of pivots before finding the one that sticks. But through each pivot consciously identify what your competencies are—they may even be the basis for your pivots.

According to C. K. Prahalad and Gary Hamel, the authors who coined the term, a core competency needs to fulfill three criteria:

  1. It should be difficult for competitors to imitate.
  2. It should be reusable both with new products and new markets.
  3. It should directly contribute to the user experience.

Companies that effectively develop core competencies go on to create core products. A core product may be a component of another product, or it may be the base product of a product line. Your core product might be your minimum viable product. Develop your core product with future products and markets in mind. In the software world, this means making your products modular so components can be added, removed, or reused.

Leverage core products to enter new markets.

Very few opportunities are unique to a single market. By focusing on core competencies and core products rather than the opportunity specific to the niche market you’re currently targeting you can open up to the broader opportunities common across markets. This often results in a better product design for your niche market as well. After identifying the broader opportunity that exists across markets you can lay out a roadmap for incrementally expanding to new markets as you mature. Like any good roadmap, this will be a living document that will evolve as you grow.

I have found the most successful expansions out of a niche market are into other niche markets. Medical supply chain software can be repurposed to serve the supply chains needs of the food service industry, for example. A dating website’s relationship-matching algorithms could be used to help people find roommates or cofounders. If your core competency is the foundation on what makes your business unique that unique advantage will travel with you to new markets.

Setup a wildcard TLD using Dnsmasq on OS X

I run a lot of local and remote development applications, and in order to organize these I started using custom TLDs with descriptive domains and configuring my hosts file to point to the relevant virtual machine. This worked great at first, but it didn’t take long to become cluttered and difficult to manage. Since the hosts file doesn’t support wildcards, I decided to use Dnsmasq to forward requests. I’m a big fan of Homebrew, but Dnsmasq is available via MacPorts as well. These instructions will assume Homebrew is being used.

$ brew update
$ brew install dnsmasq

The next step is to set up your dnsmasq.conf. The installer probably told you to run this command:

$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

Now let’s edit /usr/local/etc/dnsmasq.conf to include our custom DNS routing rules. The convention here is /[TLD]/[IP]. You can use IPv6 addresses as well. I’m setting up domains for two virtual machines such that *.vm1 domains resolve to one VM and *.vm2 domains resolve to my second VM.


Copy Dnsmasq into LaunchDaemons to ensure it starts up on every system login.

$ sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons

Then load it up!

$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

The next step is to make sure outbound requests check Dnsmasq before any remote DNS servers. For this to take place you’ll need to edit your Network preferences and add above any other entires. On most networks these days your DNS will be discovered automatically which makes this a challenge. The simplest solution, I’ve found, it to simply use Google’s public DNS servers in addition to Dnsmasq. This won’t work on all networks, which is where OS X’s Network profiles come in handy. I created a new profile for Dnsmasq with the following DNS server order:

The latter two are Google’s DNS servers, which should work in most cases. If you run into a situation where it does not (in a cafe or an airport, for example), you can simply change the profile back to the default Automatic and proceed as normal. There are some solutions out there for customizing resolver which would preserve automatically detected DNS servers, but I’ve found this method to be less than bullet-proof. It’s much more predictable to simply switch Network profiles.

Any time you make changes to your dnsmasq.conf file you will need to reload it. The easiest way to do this is to find the process and kill it—it will be started up again automatically. You may want to bind the below to an alias.

$ sudo kill $(ps aux | grep '[d]nsmasq' | awk '{print $2}')

That’s it! You should now be able to create any arbitrary subdomains off your new TLDs and route them through your virtual machines.

Accounting for Economic Development

Social-cause organizations regularly have the difficult task of communicating performance on their efforts. This is in part for self-validation and encouraging and motivating internal participants in the organizations, but perhaps more importantly progress information is used to persuade additional funding sources to commit resources towards assisting the organization reach its funding goals. Economic development organizations in particular face the challenge of demonstrating real impact to their target regions.

There appears to be no standard when it comes to how these economic development organizations report progress to stakeholders. Many focus more strongly on the emotional aspect of reporting by demonstrating examples of success stories that resulted from the organization’s activities. The general goal in this type of reporting is to put a face in front of stakeholders that will ultimately make them have positive feelings and associations with the organization. This approach, while lacking in objectivity, is widely used among every organization in this category for a simple reason: it works. Grantmakers and donors are hardly looking for a tangible return on investment and instead are focused on the idea or the image that they are making a significance in the lives of others.

This is certainly not a universal rule in the industry — as the number of social entrepreneurs grows and an increasing number of organizations in this space struggle with meeting their goals, funding sources are taking a step back and asking how their contributions are being used and how that translates to tangible achievements in the organizations market.

Existing Reporting Metrics

There are a variety of existing ways in which economic-development organizations report progress through metrics. For the purposes of this examination we will focus on One Acre Fund as they publish a semi-annual report including these metrics. These metrics are as follows:

Families Reached

The number of families participating in the program is a good indication of how pervasive the efforts of the organization have been in regard to the local economy. This number can be reported accurately based on the records the organizations keeps on participants.

Children Enrolled

The estimated number of children whose lives are being improved as a result of the organization’s efforts demonstrates the improved well-being and quality of life. This number is estimated based on the average number of children per family in conjunction with the above metric. In some cases it may be possible to report this accurately.

Acres Cultivated

This represents the physical area being cultivated by participants in the organization’s program, which can be reported accurately based on the organization’s records. As this number increases it is indicative of an improving economy. From a micro-finance perspective this could be reported in conjunction with an assets-under-management figure.

Yield per Acre

The efficiency farmers are able to obtain through the cultivated acreage shows the progress the training component of the organization is making, as well as demonstrates that the demand in the local economy is able to support growth.

Family Income

The income each family is earning directly correlates to that family’s well-being and, in aggregate, the financial stability of the region.

Repayment Rate

The percentage of participants who received support in the form of lending and were able to repay it with their earnings demonstrates the stability of the economic environment and correlates the success of the individual farmers with the program itself.

While the above metrics are certainly descriptive of the results derived by the operations these organizations participate in, they leave much to be desired. First and foremost, these are the metrics reported by a single organization, and while other organizations have similar internal metrics, they report them in different ways and with different measurement criteria. The metrics calculated and reported may include more or less information than mentioned here, or perhaps none at all.

Each organization is competing for the same contributed dollar as the next. Donors and foundations alike have focused areas of interest and finite resources available for contribution. These parties currently make their decisions based on things like the reputation of the founders, how compelling the organization’s story is, and the data becomes secondary. For the smaller, lesser known organizations this presents a challenge because the founders don’t have the relationships or history that the more mature organizations have, and they have smaller marketing resources available to help craft and communicate their visions. What the industry needs today is a model for consuming data on effectiveness in a standardized way.

SROI for Nonprofits

Social Return on Investment is a method developed by The SROI Network and results in an easy-to-consume metric that displays social return as a financial figure. Calculations and assumptions are plainly stated, displaying the sources of interpreted data and evening the playing field for small and large nonprofits alike. We can us One Acre Fund as an example.

Identifying Scope & Stakeholders

The SROI Network’s Guide to SROI states that to begin an analysis, we must first identify the scope of what the analysis will include and which stakeholders to include in the analysis. In the case of an organization like One Acre Fund, the scope of the analysis will include relevant information for reporting the progress and how it relates the the beneficiary of the social programs the organization operates. Therefore, the relevant stakeholders are these very same beneficiaries.


The only real input worth measuring are financial inputs, and these are already accounted for internally in these organizations as they keep financial records for the micro-finance component of their program models. Other inputs such as time are somewhat irrelevant — time is accounted for in financial terms through salaries and the participating farmers have no other means of income and therefore no opportunity cost of spending their time elsewhere. Financial contributions come in from funding sources, they are used to purchase supplies and pay salaries, and issue new micro loans to farmers.


A revenue stream helps pay for operating expenses, but the real return that is the goal of the organization is a steadily increasing income among farmers in the regions they operate in. Since farmers who participate in the program report earnings, this information is easily obtained along with historical context. Other metrics may also make sense depending on the organization. Some organizations blend an environmental component to their programs, and others include contributions to the local education system. In these cases it may make sense to do a deeper analysis of the long-lasting effects of investment in local education and the environment.

Potential Controversy

Analyzing social returns in terms of financial figures can become controversial when speaking in terms of human well-being. In developing nations there is generally little or no cost associated for things like elderly care or medical expenses. The result is that many of the important metrics associated with human well-being cannot appropriately be accounted for as they would, in effect, be quantifying the value of the invaluable. This is a difficult problem because the ultimate goal of social-cause organizations is to improve high-level metrics like infant mortality rates or life expectancy. While still very important, in the SROI framework these metrics should be excluded and discussed in another context.

SROI is not without its pitfalls. The assumptions made and sources used for analysis may vary between organizations, potentially skewing any comparisons made between two figures. Some organizations may choose to include or exclude elements for calculation that others do not. At first glance one may be tempted to take the numbers at face-value, but the beauty of the SROI model is the transparency that goes into how every figure in the model was derived. For this reason, making adjustments to obtain a more accurate comparison between two organizations may be a simple accounting exercise.

The metrics currently being reported by organizations targeting economic development are currently few and far between. The lack of consistency among the metrics reported and how those metrics are calculated makes comparing the effectiveness of organizations extremely difficult. The SROI framework remedies this through an easy to understand financial figure and by providing transparency into how that figure was generated. While still subject to distortion and bias between organizations, the transparency into how it was calculated could provide funders a richer set of data on which they can use to make decisions.