BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles How Startups Get Software Built

How Startups Get Software Built

Bookmarks

Key takeaways

  • Startups need to fail fast, pivot, and above all listen to customers intently; the startup coder needs to embrace the customer over the code to create software that is simple and intuitive and improves the customer experience
  • The startup coder must combine a frenetic speed and passion to pivot with forward thinking in terms of brand extension and company scale
  • The startup coder must balance competing priorities including speed, cost, quality, UX, design, scalability, etc.
  • The startup coder must be comfortable with vulnerability and failure
  • The startup coder can be a founder, an employee, or an outsource provider; the most important element is the right mindset

For most startups, technology is a critical differentiator. Whether tech is at your core (think Google or Uber), or your core business is tech-enabled (think Zenefits or Zappos), if you’re a startup, software development is likely the bridge between your target consumer’s pain point and your revenue reality. The software is the thing that gets the idea off the cocktail napkin and into the customer’s hand.

The Startup Scene:

The environment of startups is dynamic, unpredictable, and even chaotic, forcing entrepreneurs to act quickly, fail fast, and learn faster to find a market niche and acquire a sustainable income. Sixty percent of startups don’t survive the first five years, and 75 percent of venture capital funded startups fail. Most of this is due to the high risk of startups, missed market windows, and other business reasons.

In order to get traction, a startup has to get its first customer fast and get its first 10 customers even faster. All this should take 24 months. And revenue-wise you should get from 1 mill in revenue to 10 mill as quickly as possible—15% growth month over month once you hit 1 million.

The idea behind the speed of customer and revenue acquisition is that the right team will use every single customer and every single dollar to refine the offering. The urgency keeps the team close to the ground, focused on listening to and hearing customer input, applying it in the simplest way possible and going at it again and again and again.

If your team is focused on what they think is cool rather than on what the customer wants, you’re in the wrong game. The customer allows you to get in the game and win the game as long as you’re putting the customer, not the code, on a pedestal. It’s like parenting: if you want your kid to end up as a successful adult you’ve got to remain close to and listen to your kid as he grows and changes. You might think he should be a climatologist for NASA because it’s cool, but your kid will be successful if he is nurtured and guided and coached toward the position the world—not you--needs him to play.

Coders are Critical:

To what extent programmers on your team in particular impact success or failure is hard to quantify, but clearly, software and those who make it play a critical role in grabbing the market before the competition. See this

Coding for a startup is different from coding for an established company. The startup culture is unique and extends to every angle of the business, from finance to sales to operations to software development. Your offering must be simple and inexpensive. You must be laser focused on your customer and change your offering quickly and constantly based upon customer experience. No silos, no sacred cows. Please see this

Not just any code will do, and not just any coder will do. The coder, whether one of the founders or not, must be married first to the customer, not to the code. In particular, the software mindset must:

* Understand the customer perspective and apply differentiated technology to meet customer needs:

Your software must disrupt existing technologies or companies, improving the user experience by making it more intuitive, more simple, more robust, etc. So for a coder, if the startup business leader talks about speed to market for a health tracking app; or a smooth, intuitive, uninterrupted customer shopping experience for an online flower store; or instantaneous and customer-specific price quotes for a lender; the coder needs to know what that means and how to apply that to software development tools, methods, and functionality.

This doesn’t mean all programmers associated with the project need to understand all of the business and how that translates into technical decisions—but the technical lead does, and needs to be able to explain it to the technical team. This way, the team can make small decisions that add up to big outcomes, that are in line with the overall vision to create a product that customers want.

* Balance competing and dynamic priorities:

The technical vision requires that technical lead balance competing priorities, say among speed, quality, cost, UX, design, scalability, etc. These priorities are different for every startup and also shift within each specific startup.

If my startup is in the medical device industry where lives are at stake, quality code is going to take priority over speed to market or expense. If I’m in the app as taxi cab business, speed to market and quality code are probably of equal priority: the customer needs to get picked up every time, and the startup needs to stay well ahead of the fast-approaching competition.

The technical lead needs to balance these priorities but also needs all team members to be on board with them. If I hire a programmer who is fixated on 100% code quality and my startup is a social app, I may miss the market opportunity. From 2007-2013 Twitter used what was termed a “Fail Whale” image that they’d post on their website when they were having technical difficulties due to rapid release of new features and functionality. Clearly, innovation took precedence over quality—and that worked for them.

Success is just progress disguised as multiple failures:

Another critical mindset of both the technical lead and supporting team is being comfortable with vulnerability and failure. Startups are about experimenting to identify ideas and elements and characteristics worthy of further investment. Programmers must be energized, not deflated, by the idea that there is NOT a single defined solution for the problem at hand or the goal in mind.

Roles on the team:

The coders on your team are really a function of your founders and your project goals. Your project may require a software engineer and a quality engineer, or one programmer may assume both roles. Your project may involve an architect who is also a product owner or business analyst. There is no precise formula associated with a startup. The staff is dictated by the project. You do, however, want to avoid the expense and bottlenecks of over-staffing.

Platform and Methodology Matters:

The technical team needs to combine a frenetic speed and passion to pivot with forward thinking in terms of brand extension and company scale. Angel investors and venture capital investors want to see not only a point solution but one that can grow to be a platform down the road. This requires a coding brilliance applied to a shifting horizon and a perpetual focus on thrilling the end user.

A related imperative is choosing the right platform to accommodate these requirements. Platform could mean an operating system, or a programming language, or a framework built on top of a programming language. It both supports and limits, like the foundation of a house.

Some platforms seem to outsiders to be fine but will be disastrous of you choose them for your specific needs. Azure may be great for Olyve.com but not for Proflowers.com. The Windows platform may be great for many but would have been disastrous for PayPal compared to Unix in terms of scalability. The best way to pick the right platforms is to have good programmers and let them choose.

In general, startup coders prefer using technologies that can quickly accommodate change in the product and its management. Examples include general-purpose infrastructures, such as configuration management, problem reporting, tracking, and planning systems, and scheduling and notification systems. Easy-to-implement tools, such as whiteboards and technologies that can handle fast-paced changing information, will lower a startup’s training and maintenance costs. To mitigate the lack of resources, startups often take advantage of open source solutions, which also give them access to a large pool of evaluators and evolving contributions. Please see

Your choice of tools, platforms, and methodologies are a function of your priorities, which change over time. If speed is priority number one, you may choose a cloud-based platform that comes ready-made with add-on features and services (like Azure Cloud) but which may 1. Cost more than other options and 2. Not provide best in class in all component areas. Down the road, you may choose to examine other options as your priorities change with customer feedback and company growth.

In terms of methodologies, software development, like the startup as a whole, must be agile, evolutionary, and opportunistic. Agile methodologies embrace change and allow development to adapt to the business strategy. Fast release with an iterative and continuous integration approach shortens the lead time from idea conception to production with fast deployment. A variant to agile is lean methodology, which identifies the riskiest parts of a software project and provides a minimum viable product to facilitate testing and modification for the next iteration 

Outsource, Insource, Other?

Does your key software development lead have to be a founder? Not necessarily. What the founding team does have to embody is a set of complementary characteristics that allow the startup to see the opportunity from all angles, pivot fast, and stay close to the customer. This involves sales, marketing, and technology. It involves innovation and structure, taking risks and exercising caution, and maintaining break-neck, full-throttle commitment. These skills and characteristics don’t have to be embodied in every founder, but every founder has to respect them as core values. Please see.

Where your programmers come from isn’t just a function of whether one or all of your founders happens to be a software engineer. It’s also a function of what you want to get done, using which languages, platforms and methodologies, how quickly, and with how much money. The most important aspect of developing software in-house or outsourcing is not so much where the coders live as who is leading them. Is it someone who knows code? Great. Is it someone who knows your customer and your business? Even better. Is it someone who is 100% committed to startup speed and values? You’re all set. This person can be a founder or a hired employee. This person can be a consultant or part of an outsourced team. But this person must be driving the technical vision.

If your software developers are outsourced you have a few potential advantages. When 74 percent of high-growth Internet startups fail due to premature scaling, one advantage of outsourcing is that you can upscale, downscale, rightscale and pivot very quickly and efficiently.

The other is that you can deal more rapidly with the problem of a programmer who is married to the code instead of the customer or is in some other way not up to the demands of a startup culture. If you’ve got a coder like the latter on the founding team, you can find a roadblock before getting off the starting block. If, however, a hired gun has the wrong attitude, you can change the dynamic by changing the code, the vendor, or both, pretty much instantaneously.

Roger Dickey, founder of Gigster and proponent of startups outsourcing software development, thinks it’s easier to get 5 prototypes done fast and selected based upon customer needs if you outsource. His view is that you can avoid some of the code attachment that can be deadly to a startup. I’d agree but with the caveat that if you’re outsourcing, you’ve got to have someone internally who knows technology and business, can speak both tech to tech folks and business to tech folks in a way that is easily understood and applied in a coding environment.

In-house and founders as programmers and/or tech leads have advantages as well. The most important is that with your code being such a critical component of your success, you want to have as much ownership and control over it as possible. When seeking angel or VC funding, presenting your founders as encapsulating the secret in the sauce in terms of both skills and attitude, is attractive to investors, who tend to fund people, not ideas. If your mojo is coming from a vendor, that’s a bit risky for an investor.

Whether outsourcing or insouring software development, you must have the following dynamic among the coders, the other founders, and the customers: communication, trust, discipline, and open discussion. Find people who offer these traits internally or externally, but they are critical for success.

What Does Success Look Like? A Lot Like Day One.

The idea that the growth is in the journey, not the destination, is more true in startup environments than anywhere else. Success means the journey continues, more of the same: More experimenting, more pivoting, more scaling, refactoring, failing…. The challenges attached to the startup in phase I, if you are to continue with success in subsequent phases, remain somewhat similar. Priorities may change to scaling, brand growth, managing (much) larger technical teams in multiple locations, etc. But these challenges benefit from the same mindset required to get off the ground in the first place. Perhaps the pace is at times less frenetic, but the commitment to the customer and to continuous iteration and integration and communication, remains.

If this process sounds uniquely fun, interesting, and challenging, you’re probably a startup founder on the road to success.  

About the Author

Yousef Awad joined Integrant in 1997 after a successful career in programming, database administration and project management.  He is responsible for establishing the company’s wholly owned development centers in Amman, Jordan and Cairo, Egypt.  With over 130 full-time employees, Integrant specializes in providing custom software development, offering clients outsourced teams that allow IT departments to stay in control of their projects and expand their software development teams effortlessly. Beyond Integrant, Yousef’s passion is to bring an understanding of the power of programming to children and young adults.  Yousef is working towards giving younger children access to coding classes that provide  real-world, hands-on mentoring.

Rate this Article

Adoption
Style

BT