Recently I was exploring again on how to build a founding team and the partnership charter. In short, I think it’s about ways to look for a cofounder, what to look for in co-founders, ways and terms to keep and motivate them on team once get them and how to deal with common exceptions in startup world such as when the idea stucks, when one founder want to quit or exit and when the startup fails due to different reasons.
Below are the notes:
- The book The Partnership Charter provides a lot of insights on what should we consider on partnerships. It’s a must read if you are a first time entrepreneur and want your startup a rewarding journey.
However, it doesn’t address some pratical problems like what kind of co-founders to choose, how to split the equity pie in a founding team, where to find your cofounders, etc.
- The Magical Founding Team Mix For Web Startups answers who with what skill-set to look for a potencial co-founder.
- How to pick a co-founder has tactic advices on where and how to find a co-founder.
- How to Build an Insanely Great Founding Team tells us what to looking for when finding a cofounder.
- Once you have your founding team, Ten rules for better founding teams provides ten rules to consider to make it better.
- Five tips for finding a co-founder
- We also needs Startup Founder Agreements to formalize the agreement on paper and consider throughly on legal issues and had better seek professional help at this stage.
- THE FOUNDERS’ PIE CALCULATOR gives a simple formula on how to split equity among founders. It’s not enough though. We need to consider a lot of scenarios such as vesting and cliff, how to deal with part-time cofounders, etc.
- We also need to reserve equity pools for early or senior employees, investors and options for rewarding or other purpose. I remember I read some useful suggestion on Quora before.
- Venture Deals is another must read for first time entrepreneurs on the legal terms regarding investment and equity. After reading this, we’ll also know what we should consider on forming partnership beforehand for the future equity dilution event.
For years, I’ve been thinking what design is and what’s the work involved. From a developer’s perspective, I thought developing an app is to do requirement gathering, software design, coding, testing and graphic support. It’s quite a engineering thing and that’s what I was taught in school. However, I found that from a designer’s view, developing an app may include defining the problem, mockup and prototyping, interaction design, user experience design, user interface design, graphic design and one last thing — coding. Developers tend to think design is only graphic design while designers are thinking coding is one last step in developing an app. Some even call it encoding rather than coding…
Now after trying to design my first fully owned iOS app by myself, I found design an app including the following activities and I’ll describe them in these three categories (framework borrowed from book Software Engineering: A Practitioner’s Approach): Tools, Methods and Processes.
- Define the problem you want to solve and create an application definition statement (An application definition statement is a concise, concrete declaration of an app’s main purpose and its intended audience.)
- Tools: Pen and paper, google docs.
- Methods: Thinking, drawing, write down
- Processes: Think about and write down the idea, the target users, all the possible features; filter out the irrelevant features using target users’s preference; create a consistent statement
- Brainstorm the business model of the app
- Tools: Business Model Cavas
- Methods: use the business model generation method
- Processes: refer to the book Business Model Generation
- Specify user profile and write user stories and find the tasks included
- Work flow Design: create user workflow chart
- Tools: Pencil and white paper.
- Methods: think and research on existing similar apps’ work flow
- Processes: think about the senario in the user stories and design a nature workflow
- User Interface and Interaction Design: sketch rough user interfaces and make connections among them according to workflow chart.
- Tools: I don’t know how to use Ps or Ai well enough to get the job done and I tried the free mockup template from KeyNotopia with Keynote, Balsamic Mockup. I chose pen and small iphone screen size post-it in the end. They are fast and easy to use. No heavy learning workload needed.
- Methods: think and research on apps that are well designed.
- Processes: Learn from the well designed app and think about suitable ways to design our own app
- Reference: Pattern Tap, Pttrns,
- Graphic Design: design each screen using a unified theme and specify the transition style between each iteration.
- Prototype the design and test. Build a prototype using Xcode’s story board and get people to test. If the design is ok, then proceed to development phase, else go back to step 1 of design phase.
- Software internal design: define the data structure, separate the app in MVC pattern and decide the suitable structure to use. (backend, data transfer format, framework used…)
- Testing and refactoring
After gave it a try and summarized the practice, I found that even as a developer we can design and build apps. We only need graphic designer in two activities: Graphic Design and Coding (to cut the image for developer to use). However, I’d like to work with real designers who have the ability and skill set for not just graphic design but user interface design, user interaction design, user experience design, user psychology awareness and an open mind. Meanwhile, I’ll keep practicing my app design practice using this guide. Let’s figure out how to build great apps.
- How to Prototype Like a Pro Using Tools You Already Know
- iOS Human Interface Guidelines
- App Development Accelerator Guide
- Business Model Generation
Article Working in Progress
Recently this question came to my mind since I’ve working on a side project with my partner for several months and we’re thinking about ways to make the venture fulltime.
Most of the information I post here is from Google the internet and mainly for our own use. I can not guarantee they will be still valid or update to date when you see them. It’s the homework I did anyway.
There are many stages in Funding and this article focuses on the Seed Round (and for Internet/Mobile industry).
- Angel Den: I love their website since it provides a lot of useful information. More details than any other websites below. Look here and here.
- Golden Gate Ventures: in Plug-In@Blk71 area. Team of three which are quite friendly. They provide accelerator and seed funding program. Actually it’s their founder that replied my discuss about incubator providing salaries to founders in this post then I found the program. They just opened for application and looks cool!
- JFDI.Asia: A quite active incubator, need to know more abou it. The guys behin d it are well read
- BANSEA: Business Angel Network Southeast Asia, which holds event regularly.
- Tigris Capital: investor of PropertyGuru. The website is very similar to BAF Spectrum’s (see below).
- Neoteny Lab: An early stage fund focused on consumer Internet startups in Asia and the Middle East. The investor of Path, Viki and Tripvillas.
- Walden International:
- Finn Evdemon Capital Partners
- SPRING Singapore Approved Business Angel Funds: these funds also have a co-financing option with Spring SEEDs Fund
- SPRING Startup Enterprise Development Scheme (SPRING SEEDS): equity-based co-financing option with Spring Singapore approved Business Angel Funds
- Business Incubation Programmes from SMU
- Technology Enterprise Commercialisation Scheme (TECS)
- Technology Innovation Fund from CSIT
- National Research Foundation: I didn’t find any information from their website regarding seed funding anyway.
- iJam Incubators
- Athena Innobator
- Azione Capital
- Expara IDM Ventures
- FrontEdge Capital
- NUS Enterprise
- NTU Ventures
- Stream Global
- Thymos Capital
- http://plugandplaysingapore.com/ in Plug-In@Blk71 area.
- Friends and Family: I don’t recommend anyone about this choice unless the friends and family are rich and giving you money instead of considering it an investment.
If you are also seeking Seed Fund or want to know about venture captal investment, this book Venture Deals is highly recomended.
Regarding how to choose a Rails Production server, below are the links of related discussion.
How to make Phusion keep one instance alive:
[update1:] there is a similar article which is more update to date How to Install Xcode, Homebrew, Git, RVM, & Ruby 1.9.3 on Snow Leopard, Lion, and Mountain Lion
[update2:] if the installation of RVM and Ruby went wrong, we can remove the RVM using the following command
rvm cleanup all
then try to install RVM and Ruby again.
Recently I got a lot of troubles with Ruby 1.9.3 and Rails after upgraded the Xcode to latest Xcode 4.2.1. The root problem is the new Xcode shipped with LLVM GCC instead of GCC 4.2 and made it default for the GCC command. In addition, the location is not /developer anymore. It’s in /Applications now.
The details and solutions are best listed in these two posts:
- Can’t install Ruby under Lion with RVM – GCC issues
- Unable to install 1.9.3-head on OS X Lion 10.7.2
After tries the solutions, below are the steps I chose to solve the problem:
- Update HomeBrew and Git (I’m using brew to install commands)
brew upgrade git
- Install RVM using the official guide or upgrade the existing one
rvm get stable
- Install Xcode 4.2.1 or the latest, then install the command line tool of it.
- Use xcode-select to choose the correct path for your new xcode.
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
- Install independent Gcc4.2 if gcc-4.2 is not available from here.
- Install Ruby 1.9.3 using the following command:
CC=/usr/bin/gcc-4.2 rvm install 1.9.3
or (I didn’t test it though)
rvm install 1.9.3 –with-gcc=gcc-4.2
rvm use 1.9.3 –default
- Update Gem system and other gems
gem update –system
- Install latest Rails
gem install rails
After this, I’ll install Mysql and other gems or tools for development. I sure there will be other troubles but keep the above in mind make me more confident to deal with them.
Problems I encountered:
- cannot load such file — mysql2/mysql2 (LoadError)
Solution: delete the content in .bundle in the project folder
[This is a live article recording my learning process of Git, I'll update it progressively]
Recently I started learning Git and planned to use it for future projects. I found there are two useful online hosting for git repository:
- Github: Free only to open source project and there are a lot of cool people and project there. Ideal for open source projects.
- Bitbucket: Free to use to small teams, no matter open source or not. Ideal for personal projects.
Resources and Books
The process of learning Git is not as smooth as CVS or SVN’s which indeed I just used them without serious learning. I learned the Safari Online Videos on Git and found the following resources for further learning:
- Manage source code using Git from IBM Developerwork
- Git by Sample
- Repositories Organizer Help for Xcode from Apple Developer
- The Git Community Book
- The Help portal of Github
- Bitbucket Documentation Home
I listed the useful Git command here in Github.
Process on setting up a new repository for a new project using Bitbucket
I’m still not sure about the correct work flow for using Git with online hosting and XCode. For now, I’ve done the following steps for my projects:
- After created account for Github and Bitbucket, I chose the latter for my personal projects. The setting up stage includes setting the email and name in Git, generating SSH key and adding the key in these two websites. You may find the steps in their support page.
- Add a new repository for my project on Bitbucket. After this, we would get the URL for the project. In our local machine, do git clone at the proper folder:
$ git clone firstname.lastname@example.org:username/new_project.git
It’ll clone the empty repository to our local machine. For example, if we do it under /Working Project, it’ll clone the repository at /Working Project/new_project.
- Create the project in XCode and choose the same folder (/Working Project/new_project in the above sample) as the repository just cloned.
After this, go to Finder and check the folder structure in file system. If there are unnecessary hierarchy in the folder, flat it by moving the project upper a level in the repository.To avoid unnecessary folder hierarchy, I just chose a temporary folder to hold the project, then copy the content to the local git repository for it (/Working Project/new_project in the above sample).
- Create .gitignore in the repository root file, add .DS_Store to the first line.
$ touch .gitignore
- Add the files and commit, then push to remote repository in Bitbucket.
$ git add . $ git status $ git commit -m"Init Empty Project"
- Push to remote repository:
git push -u origin master
So far we’ve created an online repository and a “empty” project, ready for development.
Process on checking out an online repository and contributing source code
It’s similar to above steps. I use at least two branches for development: master for release and developing for working under development.
- Clone the project to local machine
$ git clone email@example.com:username/new_project.git
- to be updated
Process on branching
This section will include instructions on creating new branch, merging branch and other branching tasks.
Process on tagging
This section will include instructions on tagging.
Process on rebasing
This section will include instructions on rebasing.
比如最近读完的《Steve Jobs by Walter Isaacson》，Walter Isaacson的文笔很不错，Steve Jobs的生平也很有意思，值得一读。
年尾的时候买了个Kindle Touch 3G，很好用，不像ipad那种看了一会眼镜就不舒服，而且可以直接在Amazon上买书。我打算把大部分书都卖掉，留着电子书就好了。不是不喜欢藏书，实在是搬家太麻烦了。