1) Produce publicly visible artifacts which demonstrate that you're able to apply technology to impact business outcomes. You do not need many of these; ~3 is fine. You do not need to block on the other steps. You do need to plausibly connect the technology to a business outcome; blockchain and beginner-level cryptography probably do not get you there.
2) Begin getting into conversations with people who either a) have purchasing authority or b) talk to people with purchasing authority, at your target clients or firms very similar to them. This can be as simple as bonding over technical things with technical people. You want to become Internet buddies with e.g. senior engineers / team leads / etc at software companies.
3) Walk the network of your new friends to engagements, either at their firms or peer firms. Do not make another WordPress site for the average business; make something for a software company.
4) For every engagement you land, attempt to get referrals to more clients, attempt to land follow-on work with the same client, and attempt to land ongoing maintenance/retainer/etc agreements with the client.
And then: https://news.ycombinator.com/item?id=4247615
(2) Raise your rates.
(3) As you work for clients, keep a sharp eye for opportunities to build "specialty practices". If you get to work on a project involving Mongodb, spend some extra time and effort to get Mongodb under your belt. If you get a project for a law firm, spend some extra time thinking about how to develop applications that deal with contracts or boilerplates or PDF generation or document management.
(4) Raise your rates.
(5) Start refusing hourly-rate projects. Your new minimum billable increment is a day.
(6) Take end-to-end responsibility for the business objectives of whatever you build. This sounds fuzzy, like, "be able to talk in a board room", but it isn't! It's mechanically simple and you can do it immediately: Stop counting hours and days. Stop pushing back when your client changes scope. Your remedy for clients who abuse your flexibility with regards to scope is "stop working with that client". Some of your best clients will be abusive and you won't have that remedy. Oh well! Note: you are now a consultant.
(7) Hire one person at a reasonable salary. You are now responsible for their payroll and benefits. If you don't book enough work to pay both your take-home and their salary, you don't eat. In return: they don't get an automatic percentage of all the revenue of the company, nor does their salary automatically scale with your bill rate.
(8) You are now "senior" or "principal". Raise your rates.
(9) Generalize out from your specialties: Mongodb -> NoSQL -> highly scalable backends. Document management -> secure contract management.
(10) Raise your rates.
(11) You are now a top-tier consulting group compared to most of the market. Market yourself as such. Also: your rates are too low by probably about 40-60%.
Try to get it through your head: people who can simultaneously (a) crank out code (or arrange to have code cranked out) and (b) take responsibility for the business outcome of the problems that code is supposed to solve --- people who can speak both tech and biz --- are exceptionally rare. They shouldn't be; the language of business is mostly just elementary customer service, of the kind taught to entry level clerks at Nordstrom's. But they are, so if you can do that, raise your rates.
- The two most important words in your business plan are "segmentation" and "qualification". While being open to lots of different kinds of projects, try to pick 1 or 2 kinds of projects that you can standardize and package. It's easier to succeed selling a couple things well than it is to succeed selling everything just adequately.
- Pick a kind of customer you want to work with. Aim on the higher-end side. Build collateral that will appeal to those customers: case studies, how-tos, industry news bulletins, open source packages. Find places to meet those kinds of customers and introduce yourself to them. You'll get wildly different answers on how well cold-calling and cold emails work (nobody will disagree that LinkedIn private messages do not work). My take is: if you're good at cold calling, cold call; otherwise, don't bother.
- Which you prioritize depends on where you are, but I'd prioritize content and collateral that you can use either locally or online. Again: build packaging around just a few offerings, and try to make that packaging unique. It should feel producty, and the way in which you turn your team into a product should communicate something interesting about your worldview.
- I don't think you should sell yourselves an available subcontractor. For the subs, good sub relationships are bought, not sold: if you advertise yourself as being willing to sub, you're communicating something about your willingness to get rolled. Your best sub relationships will come from bumping into people at shared large clients.
- No, don't have mentors or coaches, at least in a formal way.
- No, do not hire a salesperson. The world of employed account managers is divided into good salespeople, who can work anywhere they want to and don't want to work for your small consulting firm, and bad salespeople whose real talent is selling people like you on getting paid a salary without helping the business. It's incredibly hard to hire and manage a sales team and most consulting shops --- let alone the young ones --- don't have sales teams. The ones that do tend to have been founded in part by a salesperson. Since that's not you, good news: you're many years away from having to worry about this. Act like salespeople don't exist.
- Bill weekly, or at worst daily. Never bill hourly.
- Raise your rates.
Price higher than you feel comfortable with. Approximately every SaaS team devalues their software because, unlike their clients, they were actually capable of writing it. Your clients don't care that it was "only a few weeks of work" or "really not as good as $UNRELATED_SOFTWARE_YOU_COMPARE_IT_TO" or "not as polished as Apple." Also, if you haven't run a business before, you have no idea how much businesses pay for pedestrian services like e.g. trash takeout, business insurance, monthly bookkeeping, etc.
Concretely, my standard "knowing nothing else" pricing for B2B SaaS is a three plan grid with $49/$99/$249 . If you're servicing informal firms like e.g. many Shopify sellers, you can add in a $29 price point. You don't want to service businesses for below $29 a month; you will suffer enormous pain in doing so and you will find that they churn and burn through software for a variety of reasons unrelated to you, for example because they go out of business, they have such severe cash-flow constraints such that sending you an email asking for a $5 discount is a good use of their time, etc.
You're not going to get pricing right the first time around. No one does. This is fine. Over time, you are likely going to raise prices across the board, as you improve your product, get a tighter focus on which customers benefit from you (which is isometric to improving the product, from the customer's perspective -- c.f. a below comment from tptacek on packaging), and get more confident in your team/offering. There is a simple way in SaaS to make price increases a non-event: grandfather in existing customers at their existing price. If your company is growing, your revenue for the next month is dominated by existing clients but your revenue as T goes to infinity is dominated by new clients, so I tend to just recommend people grandfather indefinitely. Yes, this does result in a couple of early adopters getting $1k a month of services for (in some cases) $19; I consider that a marketing expense to reward people for loyalty.
There are a lot of microtactical things you should build to support experimentation with prices. One is backend infrastructure to allow your CS team to change someone's plan at any time; another is some sort of crediting feature or special one-off pricing (one-time or ongoing), because as T goes to infinity you'll probably want to do both of them. I'll write about them some day.
You can track churn rates by the plan people are on, but I find that that isn't terribly useful early in the life of a business, since you'll have relatively few accounts in any bucket. For this reason, I often have a shadow attribute on plans to do "bucket by relative size of account", such that e.g. folks on Small Business at $49, Small Business (March vintage) at $34, Starter Edition For YC Companies at $45, etc all bucket into the same place for churn calculations.
Prefer giving people free things (exceptional acts of service, for example) to giving people discounts. They'll remember them for longer and you absorb the costs once, early in the relationship, rather than every month. Any recurring discount you issue in SaaS is essentially a liability on your books. (And existing happy accounts are a de facto asset, though GAAP doesn't treat them that way.)