Thursday, August 4, 2011

32 Questions Developers Should Ask a Startup Founder

Latest update Oct 2019

Almost every day I'm talking to early stage startup founders (see Free Startup CTO Consulting Sessions) about what they plan to do. I tend to ask a lot of questions, challenge aspects, make suggestions. But I've often been very surprised by one aspect of these conversations. Many of these founders have talked with several developers or development firms about their plans. Yet, I'm often the first person who's asking them questions that I consider to be pretty basic. Of course, it's way more complex than just these questions. It needs to be a conversation. There's just too much variation. Still, if you've not heard these questions from a developer, they are not helping you as much as they should.

Background Questions

Before I jump into the developer questions, let me start with some background questions around the business and product that a developer needs to know. Think of these as the big upfront questions:

1. Who are the customers? What’s their specific need / pain? Please be able to provide me with a few specific examples of different types of customers, what they need, what the system will do for them.

2. Tell me about the business. How are you funding this? What level of funding do you currently have?  Who's helping you with fundraising?  Are there other Founders?  Do you have legal (Founder Agreement, IP, etc.) in place? 

3. What are the big milestones you have as a business? Do you have any specific deals done that are a basis of this? Where are you today and what's happening right now?

4. What have you done so far to validate the concept?

5. What’s different, special here? Where’s the mystery (see Matching Algorithm)?

6. Who are the other stakeholders involved? Other types of users? Partners? Administrators?

7. How will you be taking this to market? What channels will you use (e.g., Ads, Viral/Social, SEO for Startups)?  Is anyone working with you on this? 

8. What are your key Startup Metrics? How do you make your money? How do you measure success?

9. What already exists in your space? Who are your big competitors? What are some good examples of similar sites? How will you differentiate from these?

10. What special data, content, APIs, etc. are you going to leverage? What’s the state of the relationships that brings you that data? What’s the state of those systems?

11. Where do you stand on your brand, name, logo, positioning? Examples of other brands/sites that are similar from a brand perspective?

12. Are there any specific hard dates or important time sensitive opportunities?

13. What do you see as some of the bigger risks / challenges?

14. Major Phases / Major Features - What are the major features in the major phases for the product? What set of functionality would make your company launch-ready?

15. What has been captured so far? Are there specs? Mock-ups? Wireframes? Comps?

Questions Developers May Have Forgot to Ask

So here are some of the questions that developers may not have thought to ask and a little bit of commentary around each question.

1. eCommerce - Is this subscription? If so, how many kinds of subscriptions? What are the rules for subscriptions? Discount support? Free-trials? Bundling? Coupons? Often this ties to marketing support. In other words, you want to offer a discount to a given group to provide incentive. Is it pay-to-play? Do you transact immediately or on delivery of some product or service? Do you have a merchant account already set up? Do you have a payment gateway?

2. Targets - Are you developing for desktop, tablet, mobile?  Are you looking at responsive design or design for a single mobile resolution or something in between?  Is this browser only or are you considering a native application?  Can you do a hybrid web/native application?  Which devices will you test on specifically? This is an area where things are changing rapidly.  Most new sites (but certainly not all MVPs) need to account for mobile delivery which increases the design and development effort.

3. Registration - will you support Facebook Connect or similar authentication? Will you also have a separate login? See also - When to Use Facebook Connect – Twitter Oauth – Google Friend Connect for Authentication. Do you need to round trip an email to validate the email? Captcha? How much member profile information do you need before allowing a user to login?

4. Member Profiles - What data is included? Is there a step-by-step wizard? Pictures?

5. Social Integration/Viral Outreach - are you integrating in some way with social networks? Is your integration limited to login and “like” buttons or are you building a presence within the social networks themselves? Messaging? Any other kind of viral outreach? See Branchout an Example of Viral Spread Opportunity for Startups. Refer a friend? Cloudsponge for email invites to large group?

6. Communication/Forums - are there discussion forums? Commenting? Messaging? Flagging? Moderation?

7. Social Interaction - how do you represent users/members to one another? Is there interaction? What kinds? Friends? I would actually suggest that asking if you want friending/connections is a bit of a trick question. Generally, the answer should be "no." How, if at all, are users grouped by the system? By background (employer, university)? By preferences?

8. Location/Geography - are you using geographic information? How? Is your application location-aware? Will you tap into geolocation services provided by the browser or license a third-party lookup table? How does the application behave when location data is not available?

9. Gamification/Scoring - any kind of scoring and/or gamification to encourage participation? Are there achievements and badges? A leaderboard among users or groups?

10. Video (and Audio) - if you have video, are you hosting it or can we use YouTube, Vimeo? Do you need to process user-contributed media? What about reporting and moderation? Do you want Flash video, HTML 5 video, or both? Does it need to playback on mobile devices?

11. Notifications - what notifications are needed in the system? Dismissable? Do they generate emails or other external notifications? Do you need to provide RSS?

12. Email - are you sending out emails periodically? Are these blasts manually created? Are there complex rules for when emails go out? How often are emails updated, i.e., do you need to be able to edit the email easily? Do we want to use an email service provider to help with delivery? Do you need to track views and bounces? What are your privacy rules?

13. Marketing Support - what will the system need to do in order to help track with marketing and tracking marketing effectiveness? Are there specific landing pages? Tracking URLs? Referral sources? Affiliate tracking?  Do you need to do any significant A/B testing?

14. SEO Support - will URLs need to be well formed? Will back-end support for SEO be needed?

15. Content Management - do we need to allow easy editing of content in the system? How robust does this need to be? Arbitrary new pages? Lists of pages in the interface? Dates/times for posting? Content access controls? Are regular users contributing content or only system administrators?

16. Dates/Time Zones - Do we need to handle multiple Time Zones and do conversion automatically?

17. Search - is there search? What is searchable? How advanced does it need to be initially?

18. Logging/Auditing - do we need to log certain operations in order to help with customer support or for auditing?

19. Analytics/Metrics - what are the key startup metrics that you will need to track? Are there specific metrics needed for future funding rounds or for operations? Beyond simple web analytics, what is needed?

20. Administration - what will you need to be able to do from a back-end? Administer users? Dump out data?

21. Reporting - What needs to be reported? Are data dumps (CSV for Excel) sufficient? Important note here: reporting can be endless, keep it small.

22. Accounting - Do we just need to dump out transactions or is there more to it? Are you tracking inventory? What does the system need to provide to support fulfillment?

23. Customer Service Support - Do you need specific interfaces and support for customer service? Ticket tracking? Are customer service reps heavily constrained or free to make arbitrary changes (and run arbitrary transactions) on behalf of users?

24. Security - are there any specific kinds of security risks? Does the site need to throttle potential malicious activity?  This generally is a significant discussion itself.

25. Performance Requirements - What is the expected Volume of Requests?  What are the response time characteristics required?  What is the complexity of the application?  See: What are the Technical Performance Characteristics of your Startup for more details.

26. Integration Points - are there any third-party systems that we will need to be able to integrate with?

27. Existing People Capabilities - what capabilities such as graphic design, user interaction, product manager, QA do you already have access to? Who? How much availability?

28. Hosting - is there anything in place for hosting? Any preferences? Do you need help getting hosting going?

29. Site Management - what will be needed in terms of site management?

30. Platform – are there pre-existing technical platform decisions that must be considered?

31. Team – is there or will there be multiple segments in the development team? If so, are specific software development processes necessary?

32. Product Management – Do you have a clear vision of the initial product and a plan for sequencing changes after the initial launch? Do you have the internal staff to manage changes?

33. Compliance – What regulatory compliance do you need to support?  GDPR?  CCPA?


Wednesday, July 13, 2011

StartupRoar - Great Content for Startups

Today I join Ben Yoskovitz, Vinicius Vacanti, Jill Hubbard Bowman and Steve Blank and others in announcing the launch of StartupRoar.

image

This site aggregates and filters content from thought leaders who talk about topics such as Marketing, Sales, Design, Revenue, Hiring, Social Media, Business Models, Metrics, PR, Venture Capital, Angel Investors, Bootstrapping, Incubators, Agile and many others.

As you might imagine, when you go to the page on Customer Development, you find the best and the latest content from people like Steve Blank and Vinicius Vacanti.  For example:

Similarly, when you look at IP / Intellectual Property for Startups, it's dominated by Jill Hubbard Bowman's wonderful content.  Or looking at issues around Founders you find the great post from Ben Yoskovitz on Founder DNA – How Investors Evaluate Startup Founders.  Click around on the various topics to find some amazing resources.

The home page always shows the latest and greatest content coming out.  You can also “change edition” to focus on content written today, yesterday, this week, this month, this year, or other date ranges.  The top items from StartupRoar This Month are some really great pieces:

You can subscribe to a daily or weekly feed of content and you can follow StartupRoar on Twitter.

One thing to make clear, StartupRoar is a jump off point.  All content is shown as a snippet and links directly back to the source.  The site aggregates content but doesn't own it or try to copy it.  The goal is to bring together very high quality content selected by curators, provide a way to navigate through that content, help surface content that might be missed, and be a jump off point to the rich, vibrant startup content community.

Wednesday, June 22, 2011

Visual Basic Reinvented

Back in 2006, I posted about the Promise of Web 2.0 - Comparison to Macros, IDEs, and Visual Basic and pointed out that Visual Basic was a huge innovation that allowed many new developers to build applications.

We've been using Google Apps as the basis for developing some very interesting online applications.  The announcement today Building UI in Apps Script just got a whole lot easier that shows how you can use a drag and drop - Visual Basic like.  It's very crude, but interesting to see.

image

This is a long way from what you can do with Microsoft Office, Scripting, Visual Basic.  However, because of the cloud nature, this is interesting to see.  That said, it could very well be that Microsoft is able to beat Google to this.

Wednesday, June 15, 2011

Branchout an Example of Viral Spread Opportunity for Startups

imageBranchout, often called LinkedIn meets Facebook, has done a lot in their application to provide users motivation and opportunity to spread the word about the service.  The purpose of Branchout is helping people to network their way to jobs.  However, funny enough, I don't see the job search and showing you who you know at the company as being particularly well done.  As one review put it:

Searching by company to find connections you might have is arduous at best, and in my mind, basically useless.

But that's not the focus of this post.  Instead, I want to look at how they've integrated themselves with Facebook and particularly how they engage users to help viral spread.  And it certainly seems to have worked with reports of:

Branchout has seen explosive growth in January 2011, growing from 10K to 250K monthly users, with a total usership now in the hundreds of thousands.

That's impressive growth!  How did they do it?

Getting Going Is Easy

Branchout has done a great job making registration easy.  You connect with Facebook.  They ask for a little bit additional information and that's it, you are up and going.

They've also done a nice job of importing LinkedIn background information.  It brings in Work History and Education.  It allows you to easily edit items.

You are up and going in just a few clicks.  Of course, there's a lot more on any kind of application like this to really get things setup, but Branchout has done a good job making that happen incrementally.

As an example, they walk you through getting your profile more complete.

image

and as part of completing your profile, it helps you spread the message around Branchout.

image

But the next step is a bit questionable.  Is it even acceptable as part of Facebook's Terms of Service to require someone to Like something in order to "complete" it?  This one pushes maybe just a little too hard.  Later in this post, I'll talk about some of the downside of how they've made this viral.

image

One thing I liked in the design is how they treated completion of the profile:

image

It's now complete and you just dismiss it from that area.

Primary Interaction - Social Interaction

Okay, my profile is complete, now what?  Well it's interesting that when you look at the home page interface, most of the interface is really about social interaction.  Everything on the left side below your picture is an opportunity to build your network, I've got some details below about a few of them.  The right column also contains opportunities to expand your network.  It does have jobs and companies a little bit, but it's much more abut social interaction.

image

I'll explore a few of the social interactions that help with viral growth.

Endorsements

I think they did a good job on endorsements.  They use the profile completion to get you to do your first endorsement, so it's more natural to do them in the future.  They have the following information on your home page about what's happening with endorsements to get you into it more often.

image

When you go into the process of endorsements, they show you your friends and allow you to filter to those who are members and those that have career info.  Once you select someone, it's very easy to add an endorsement.  And, of course, that person gets notified and you can tweet or post your endorsement as well.  When you are done, it asks you to endorse more people.

image

image

image

People can also request endorsements which further promotes this and the interface to provide an endorsement for them is very easy to use.

image

Network and Connection Statistics

Possibly Branchout focuses too much on your network.  It feels a bit like the early days on LinkedIn.  They definitely push you to be a heavily connected user and give you lots of data.

image

When you drill down a bit:

image

image

Badges

I actually think they did badges pretty well.

They give everyone a badge "Early Adopter" and give you an opportunity to post it.  You can also post a Badge Request.

image

They've made it super easy for you to send badges to other users.  Possibly too easy as it likely devalues them a bit.  More on this below. You can either first choose a badge and then award it or choose a user and award a badge.

image

image

image

Notice also that on the user screen (Alan Edgett), you can give a badge, vote for Alan, request an endorsement, send a message or give an endorsement.  All of these generate social interaction.

I actually think that this particular implementation of badges is a bit weaker than what I've seen in other applications.  If you are looking at how your application can/should use badges, it might be good to review a few other sources.

5 Reasons Why You Shouldn’t Just Add Badges To Any Old Game or Website talks specifically to the issues of being careful about adding badges appropriately and not rewarding just any old action.

A lot of games and services are now copying foursquare to offer badges for actions, and in their rush to get ahead they are offering badges earlier and more often, to make players feel more rewarded. As a reviewer, I play with these services every day and now feel as if a badge has zero positive value, and is just an annoyance.

4 Reasons Marketers Should Add Badges to Social Apps - gives several reasons, but also points out that it's important to show how badges are "earned."  In the case of Branchout, they really are just votes, not as much earned.  There are a few other badges, but it's not clear how you obtain them.

Influence user behavior If users are clear on how badges are earned, badges drive desired user behavior. In our app, unearned badges are obscured visually and accompanied with instructions on how the badge is earned. In the Intel Phone of Tomorrow Challenge, users learn that the Ethernet Badge is earned by successfully inviting three friends to play and the Pocket Protector Badge is earned by commenting on 10 different ideas.

Quizzes

At first when I saw quizzes, I didn't think they would be viral.  Turns out they've done a couple of things to make them viral.

image

Within a quiz they have a question or two that asks you about your friends and when you choose one, it defaults to sharing this on their wall.  I have no idea how it chose these friends.

image

They also give you the opportunity to share your results.  They push pretty hard on this by making the little tiny "x" to dismiss and the BIG blue Post to My Wall where you would normally find the default interaction.

image

They also allow you to invite your friends to take this quiz.  I'm not sure if that really sparks that much interaction, but worth a try.

image

Hot or Not

As long as we are trying everything to go viral, let's also add in a proven winner - Hot or Not.  In this case, it's in the context of who you would want to work with.

image

See the little check box on the bottom left.  It's on by default and it shares the result with the winner.  If you uncheck it and begin to go through and choose people, pretty soon you get the following pop-up.  And the word "ignorant" is used to dissuade you from choosing that option.  Having it come up every few times is a bit annoying.

image

Once I was done going through 30 votes, I then understood what it mean to "vote" for someone which we saw in the interface associated with the user.  I get to see my "Friends with the most Votes".  Of course these are the people who are most connected hence they get the most votes.  So, this is really not quite the same as Hot or Not, but still similar and another way to provide viral growth.

image

Too Much Social Interaction?

There's been a fair bit of discussion that Branchout is a bit too aggressive in its push for social interaction.  From a post BranchOut, Inherently Viral Services And Customer Acquisition On Social Networks they point to the following kinds of responses that being overly aggressive in pushing viral can cause:

image

image

image

image

Monday, June 13, 2011

Choosing a Programming Language and Framework for Your Startup

We had an interesting presentation at the LA CTO Forum by the CTO of a startup who chose Groovy / Grails as the framework for their startup.  t prompted a good discussion around how CTOs go about choosing the programming language and framework for their startup.  

Some common themes from the discussion:

Know Where You Are Going

Before you can possibly make a choice around language and framework you need to ask all the important questions that are talked about in Startup Software Development – Do Your Homework Before You Develop Anything and  Startup CTO or Developer.  

Closely Aligned Functional Needs

The most common reason that a language and platform is chosen is because there's an existing set of (often open source) functionality that you can tap into that aligns closely with your functional needs.  For example, you may have content management and community needs that closely align with Drupal.  There are some cautions around these choices, but it is often the basis of a choice.

Similarly, you may also have an existing code base or set of libraries written in a language.  This may push you in that direction.

Of course, if you are developing native mobile apps or building something on top of a particular code base or you need to integrate tightly with something, all of those factors may push you directly towards a particular language and framework.  For example, you might choose Sencha if you are building apps that run natively on several platforms (e.g., desktop, mobile, browser).

Existing People

In many cases, the choice comes more out of who's involved and existing code than based on what the "best choice" would be.  Most of the time, there are people / stakeholders who have a particular skill set.  Or you might have an investor (or founder) who's convinced that you need to work in a given language (some VCs love Ruby right now). 

Misconceptions

When I talk with founders and VCs there are often quite a few misconceptions around the choice of language and framework.

Misconception #1 - "You can build things 10x faster in Ruby."

With Ruby/Rails, Groovy/Grails and many other language/framework choices, some aspects of development are significantly faster.  It's way easier to get your pages setup in these languages than by choosing Java alone.  Of course, I'm not sure that anyone chooses Java alone.  They start with lots of other things.  Still there's no doubt that some aspects come quickly.  But if you are building anything with significant functionality to it, then first, don't believe the 10x.  You may get 3x improved speed for roughly 10-20% of the effort of building your site.  The rest is just down and dirty algorithmic programming.  It won't be significantly different in most languages.  Bottom line, you really are not seeing that much different between Ruby/Rails and Groovy/Grails in terms of development speed.

Misconception #2 - "Ruby is the obvious choice."

From Groovy/Grails :: Ruby/Rails :: 2011 State of the framework:

Rails and Grails are both excellent frameworks with their current releases. You really can't go wrong with either. Here are some things I find interesting about them though:

  • Rails (Ruby) does not scale as well as Grails (Groovy).
  • Rails is slightly better with NoSQL alternatives currently, but Grails is catching up quickly
  • Rails has more plugins.
  • Rails is more mature and has more features at this point in time because it's been around longer
  • Rails REST support is amazing
  • There are many more "big" Rails websites than Grails
  • Grails integrates with the JVM better than JRuby

In addition, I'm not quite sure why Ruby has become such a strong brand.  There are LOTs of language and frameworks to choose from.  If you don't believe me, take a look at some interesting data on what programming languages TIOBE Programming Community Index for June 2011 are in use and the current trends. 

Position
Jun 2011
Position
Jun 2010
Delta in Position Programming Language Ratings
Jun 2011
Delta
Jun 2010
Status
1 2 Java 18.580% +0.62%   A
2 1 C 16.278% -1.91%   A
3 3 C++ 9.830% -0.55%   A
4 6 C# 6.844% +2.06%   A
5 4 PHP 6.602% -2.47%   A
6 5 (Visual) Basic 4.727% -0.93%   A
7 10 Objective-C 4.437% +2.07%   A
8 7 Python 3.899% -0.20%   A
9 8 Perl 2.312% -0.97%   A
10 20 Lua 2.039% +1.55%   A
11 12 JavaScript 1.501% -0.58%   A
12 11 Ruby 1.484% -0.61%   A
13 9 Delphi/Object Pascal 1.070% -1.50%   A
14 16 Lisp 0.935% +0.28%   A
15 15 Pascal 0.731% +0.00%   A
16 - Assembly* 0.673% -   B
17 21 Transact-SQL 0.651% +0.16%   B
18 25 RPG (OS/400) 0.637% +0.22%   B
19 23 Ada 0.606% +0.17%   B
20 - Scheme* 0.579% -   B

 

If you look at Ruby's numbers it shows decline which I'm not sure I believe, but I also don't buy into the hype that surrounds it either.  It's a good language/framework, but it's not that savior that some believe.

I would also suggest that languages and frameworks have come and gone for many years.  Right now happens to be one of the most innovative times I've personally seen with new languages, frameworks, etc. coming around pretty much non-stop.   Not all of the newest languages are going to be winners.  If you are planning to build something that will last, I would claim there's risk in choosing something that's the newest thing.

So what's the bottom line?  This is a complex decision.  Get get help (see Free Startup CTO Consulting Sessions).  Get a few different perspectives.  And when a VC asks if you are building it in Ruby - be prepared with a smart answer.