Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Some background

I work at a small startup: 4 devs, 1 designer, and 2 non-technical co-founders, one who provides funding, and the other who handles day-to-day management and sales. Our company produces mobile apps for target industries, and we've gotten a lot of lucky breaks lately. The outlook is good, and we're confident we can make this thing work.

One reason is our product development team. Everyone on the team is passionate, driven, and has a great sense of what makes an awesome product. As a result, we've built some beautiful applications that we're all proud of.

The other reason is the co-founders. Both have a brilliant business sense (one actually founded a multi-million dollar company already), and they have close ties in many of the industries we're trying to penetrate. Consequently, they've brought in some great business and continue to keep jobs in the pipeline.

The problem

The problem we can't seem to shake is how to bring these two awesome advantages together. On the business side, there is a huge pressure to deliver as fast as possible as much as possible, whereas on the development side there is pressure to take your time, come up with the right solution, and pay attention to all the details.

Lately these two sides have been butting heads a lot. Developers are demanding quality while managers are demanding quantity.

How can we handle this? Both sides are correct. We can't survive as a company if we build terrible applications, but we also can't survive if we don't sell enough. So how should we go about making compromises?

Things we've done with little or no success:

  • Work more (well, it did result in better quality and faster delivery, but the dev team has never been more stressed out before)
  • Charge more (as a startup, we don't yet have the credibility to justify higher prices, so no one is willing to pay)
  • Extend deadlines (if we charge the same, but take longer, we'll end up losing money)

Things we've done with some success:

  • Sacrifice pay to cut costs (everyone, from devs to management, is paid less than they could be making elsewhere. In return, however, we all have creative input and more flexibility and freedom, a typical startup trade off)
  • Standardize project management (we recently started adhering to agile/scrum principles so we can base deadlines on actual velocity, not just arbitrary guesses)
  • Hire more people (we used to have 2 developers and no designers, which really limited our bandwidth. However, as a startup we can only afford to hire a few extra people.)

Is there anything we're missing or doing wrong? How is this handled at successful companies?

Thanks in advance for any feedback :)

share|improve this question
2  
Am answering in comment because I expect this question to be closed as off-topic (could apply to any business not just software). First, the only reason to sacrifice pay is to gain equity; otherwise you're just being played. Second, the solution to your problem is compromise: developers have to understand and recognize when 'good enough' is sufficient, and managers have to remember that quality takes time and structure. Balance both, and you win. Specific tactics would fill a book; fixing this is not your problem, it's the owner's problem. –  Steven A. Lowe Sep 17 '12 at 9:08
    
Thanks for the advice. I'm also worried about the question getting closed since it's taken a more business-oriented focus that I'd expected. The problem definitely has implications for all business, but I think the situation is unique with software. I was expecting the discussion to be more focused on ways to efficiently manage software projects, but that being said I'm still happy with the feedback! –  BAM Sep 17 '12 at 23:42
add comment

3 Answers

up vote 6 down vote accepted

Be strategic and specialize. Target one industry and develop a standardized software solution for that industry that you can improve and customize over time. This will accomplish several things for you:

  • Rather than duplicating code for each project, you'll be building off previous work.
  • Each client you add will expand your software ecosystem as you add new features for their needs. And it will all be paid for.
  • Software quality will improve over time as you're able to add unit tests and fix bugs reported by multiple clients.
  • Specializing and focusing on a single industry vertical will help you earn a reputation in that market. That, in turn, will allow you to charge more.
  • Defining your target market will also help you hone your marketing message. Once you're able to optimize your sales funnel, it should pay for itself.

When choosing a specific industry to target, it'll take both a strong business sense and a strong development lead, so you'll have to work together with your non-technical founders to identify the best opportunity. In particular, here are some things you should consider:

  • Do market research. Talk to people, discover market pain points, and use that information to help inform your product selection.
  • Choose an industry that has a big enough problem that you can solve that they're willing to pay significant money for it.
  • Look at the difficulty of breaking into the market. How entrenched are the established players?
  • Find a market that is big enough to make it worth it.
  • Select a problem that can be at least partially solved quickly with a minimal solution at first. This will enable you to have a low startup cost and you'll be able to iterate with each new client.
  • Structure your contracts so that you retain ownership to all source code.
  • Factor in the cost of finding new clients. How costly is client acquisition versus their potential value to you?
  • Repeatedly target the same client profile, especially in the beginning.
  • Consider constructing a business model that allows you to charge clients regularly, either through license fees or subscription fees. SaaS will give you a predictable income, which stabilizes your financial situation and will allow you to add developers over time and pay existing developers what they're worth.
  • Think about how your software could potentially be used and adapted in other industries once you become in one market. Develop accordingly.

Update: I can't be completely sure from your comment, but it sounds like part of the problem might be a lack of focus from the marketing side. Perhaps an example might help:

Google Adwords is a popular method of advertising, but unfortunately, it's very easy to waste a lot of money for not very many results. Some people will buy ads for a lot of keywords related to their market, not realizing that there is a difference between broad match and phrase match keywords. They also ignore the fact that some search queries have high commercial intent and some have low commercial intent. And they may not be aware that there is a serious difference in the effectiveness of ads on search engine results pages and ads on a regular website or that ads at the top of the page perform better than ads lower on the page.

And what about the ad text? Is the title link compelling? Does it state the problem the searcher has and offer hope for a solution? Have multiple variations of the ad been tested?

What's more, it's not just the ad that matters. Does the landing page match the promise of the ad copy? What is the conversion rate of your landing page once people arrive? How can that be improved?

Suppose you're selling a product online and that your landing page has a conversion rate of 2% for paid customers. Now suppose that your CPC (cost-per click) is around $5 and that your average one-time transaction is $150. For every paid customer, you'll need an average of 50 people to visit your site, which means that you'll need to spend $250 in advertising. Clearly, it isn't worth it. You're losing $100 on every transaction, so what do you do?

In the scenario above, you have 3 variables: your conversion rate of 2%, your CPC of $5, and your average transaction value of $150. What would happen if you could double your conversion rate to 4%? Your average acquisition cost would drop $125, meaning that you're making $25 instead of losing $100. What if you find a keyword that has a CPC of only $2.50? Again, your advertising cost is reduced from $250 to $125. What if you're able to bring the average transaction value up through upsells or by providing incentive for repeat sales? Suddenly, you're profitable.

It would incredibly wasteful in a financial sense to try to fine-tune your Adwords advertising like this if you're running 30 campaigns concurrently. The best approach is to focus on one campaign at a time. Test it, optimize it, make it profitable. Start with small amounts of money (but enough to test it for meaningful results). Once you have it tuned to the point that you know, for every X dollars spend on advertising, you'll make Y dollars in revenue, then you can safely expand your advertising budget on that keyword campaign to as much as you can handle. And when you're assured that you have one profitable campaign, then move on to the next one, incorporating the lessons you learned from the first. Rinse, repeat.

It sounds like you might be running 30 campaigns at once, but in a macro sense, going after all types of customers, hoping that one of them might stick. You might get lucky, but I think you may be better off figuring out what type of customer makes the most sense for your company and then targeting them exclusively. There are so many moving parts to the sales funnel that it will take time to optimize it. You can't optimize it if you're targeting multiple groups. If you don't develop a process, this problem won't just go away over time. By trying to do everything, you may end up doing nothing.

I would try to identify your biggest opportunity that has the lowest development cost and start there. Refine your marketing and iterate on a product. Try to find a business model for recurring revenue. Once you have a well-oiled machine in that market, take it to the next market, using everything you learned. Best of luck!

share|improve this answer
    
Awesome advice. We've definitely been trying our best to specialize in certain industries. Due to financial strain, though, we're finding that we have to accept whatever we can get! –  BAM Sep 17 '12 at 3:05
    
Sorry, I was kind of unclear about what I meant by "whatever we can get". We are trying to focus on certain industries, like higher education and transportation, but we've also got some assorted contracting jobs (right now we're working on an iOS port of an existing Android app). My issue is we've been spreading ourselves thin as developers, since we're working on several projects simultaneously instead of one or two larger, more focused jobs. –  BAM Sep 18 '12 at 1:47
    
(that being said, I appreciate the marketing insight. I'll definitely share these tips with the co-founders of the company) –  BAM Sep 18 '12 at 1:49
add comment

Are you or your coworkers familiar with The Lean Startup movement? If management is demanding quantity that raises a red flag - because your customers don't want products with lots of features. They want products with those features they really care about. Building features customers don't care about is waste. And development has to be smart about quality. There is a right time to focus on quality: After a feature has been validated by the market, but before you scale it. Focusing on quality at the wrong time is another form of waste.

Other sources of information on the Lean Startup Movement are the Lean Startup Circle google group and Steve Blank, who arguably initiated the movement.

share|improve this answer
2  
If your last paragraph is stating that Steve Blank started the Lean Software Development movement, that is incorrect. The term "lean software development" and the application of the lean principles to software development was started by Mary Poppendieck and Tom Poppendieck, who co-authored several books on the topic. –  Thomas Owens Sep 16 '12 at 16:35
    
Sorry, answer was written late at night. I meant "Lean Startup" not "Lean Software Development". I have corrected. –  MebAlone Sep 16 '12 at 17:58
    
Interesting... I'll definitely check this out. Thanks for the feedback. I agree with you that we should let the customer define the company's focus and direction, but so far, all of our projects have been fixed-scope, fixed-price, single delivery systems (with maintenance). Should we instead be focusing more on multiple, incremental deployments to the client? How do you go about pricing something like that? –  BAM Sep 17 '12 at 2:57
    
The links in the answer offer infos where you can buy books/seminars about LeanStartup. Do you have links what the basics of LeanStartup is? –  k3b Sep 17 '12 at 7:56
    
@k3b Everyone's pushing their books and workshops, but there's lots of good info in those blogs. Another excellent blog on Lean Startup principles is ashmaurya.com –  MebAlone Sep 18 '12 at 4:18
show 1 more comment

The dilemma is that

  • "Cost",
  • "Time",
  • "Quality" and
  • "Scope"

are interrelated: you can only choose three of them as described in http://en.wikipedia.org/wiki/Project_management_triangle .

Since most of the time Cost (available money) and Time (next trade faire) are fixed successfull companies manage the scope or feature-list: they concentrate on features that really matter where
the customer is willing to pay for.

@VirtuosiMedia execelent answer shows a way how to identify these features.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.