Date post: | 11-Jan-2017 |
Category: |
Business |
Upload: | growth-hacking-asia |
View: | 768 times |
Download: | 1 times |
STARTUP ENGINEERINGGROWTH HACKING ASIA
2
STARTUP ENGINEERING
Outsourcing vs Building a Team
Not always a case of black and white, what are the pros and cons and more importantly, how do you know when to pick one over the other.
Choosing your Technology Stack
What programming language and framework do you build your product on, and where do you deploy it to.
Managing your Product
How to make use of readily available tools to make things easier for your team.
PUTTING SOMETHING ON THE MARKET
3
ON HIRING AND OUTSOURCING
STARTUPS HAVE SUCCEEDED (AND FAILED) WITH BOTH HIRING AND
OUTSOURCING
Hire your team once you’ve
achieved product market fit and
raised enough capital to build the
team right.
HIRE WHEN READY
FIND OUT WHAT’S RIGHT FOR YOU
Pay for quality, or pay anyway. Find
outsourcing partners that can
provide additional value, not just an
extra pair of hands.
PAY FOR QUALITY
Early stage startups face great
difficulties building a team. It’s
easier to outsource it, unless a co-
founder can built it.
OUTSOURCE EARLY
4
OUTSOURCING VS HIRING
“It’s expensive to work with cheap people”
http://www.codelitt.com/blog/how-to-handle-client-comparing-hourly-to-cheap-overseas-development/
5
EARLY STAGE STARTUPS
You Have No Bargaining Power
Good hires have tonnes of opportunities. You will be forced to settle. Gets expensive if you are offering equity.
Experience Managing a Product Team
Assuming you cobble together a team, made up of freelancers and friends, your challenge now is to make all this somehow work.
It’s Not Your Main Focus
Founders have many responsibilities; hiring a team and managing it to build a product can take away a lot from customer development, fundraising, etc.
AND HUMAN RESOURCES
6
BUILDING A TEAM
You Have Traction, People Want to Join
Cool product bro! You have product market fit, hire away! No major pivots at this point.
You’ve Hired Your CTO, Right?
Your first developer needs to be top dog, otherwise other good developers will not join.
You’re Ready to Go All In
Building a tech team is a long term commitment. Retention can be a problem if developers are not sufficiently engaged. Do you have a good runway, and an exciting roadmap?
7
OUTSOURCE!
Choosing Between Cheap & Expensive
Don’t take prices at face value. Cheap software development comes at a very high cost!
Fixed bid vs Time & Materials
Fixed bid doesn’t always mean lower risk, chances are, it increases it.
Dedicated vs Shared Team
Are the developers you work with burdened with several projects at a time?
8
HIRING YOUR CTO
Technically competent and a leader
It’s important to hire a CTO that can lead and coach the team. Great developers don’t want to work in a team where they are not able to grow.
No technical knowledge, get help
How do you ensure the quality of CTO, when you don’t come from a technical background? Find a friend, or hire someone who has been there, done that.
Is he or she future proof?
CTOs need to be able to wear multiple hats. At an early stage, they are expected to build product, and to scale out the engineering team at a later stage. Vest their equity accordingly.
9
TECH STACKS
CHOICE OF TECHNOLOGY DOESN’T MATTER
There’s no shame in building things
the ‘wrong way’ first. Use this to
your advantage by keeping
complexity low.
LESS IS MORE
UNTIL IT DOES
If you want to hire good developers
later on, you need to understand
what it takes to build software.
INVEST IN THE RIGHT CULTURE
Early stage startups: it’s alright if
your app is not scalable now. Scale
up when you have funds and
traction.
OPTIMISE FOR AGILITY
ARCHITECTURESYSTEM
Image retrieved from https://github.com/system-engineering-hdm/ScalaDeploymentApp/wiki/Amazon-Web-Services
11
http://stackshare.io/stacks
12
A PRIMER
What is a backend of a web or mobile app?
Backend includes server (where your app is hosted) and database (where your data is stored) technologies. It is a web application that can serves your web front-end, or talks to your mobile app.
What is the front-end of a web app?
You may have heard of HTML, CSS, JavaScript, etc. These are bits of code that are read by the web browser, much like how MS Word opens .docx files.
What about mobile apps?
Mobile app developers typically do a mix of backend and front-end work. Front-end work on mobile is different from that of the web.
TO WEB AND MOBILE APPS
13
BACKEND
API
MOBILE APPS
WEB BROWSERS
DB
14
EARLY STAGE STARTUPS
Optimise For Agility, Not Scalability
You are looking for product-market fit, so you need to be able to test your validations as fast as possible. Don’t optimize prematurely.
Shaving Pennies Don’t Always Add Up
Save money where it counts, but don’t choose the $10 hosting plan over the $30 when it is going to cost you developer time.
Be Prepared To Throw Away Code
Sunk cost is sunk cost. Code is really good at holding businesses back, figure out your next steps and throw bad code away.
AND TECHNOLOGY STACKS
15
GETTING IT RIGHT
Invest in Code Quality & Automated Testing
Your technology is a first class business concern, and you should treat it that way. If you do not invest your team into building your product the right way, you will lose talent.
Don’t Reinvent the Wheel
Stand on the back of giants, by using well-built open source libraries. Sometimes, it makes sense to write your own, but be wary of the total cost of ownership (TCO).
Avoid Major Code Rewrites
Rewrites are more costly than planned for, and can kill a startup. Typically worthwhile as a strategic play for larger companies, and even then rarely. If you rewrite, treat it as a new product.
16
ON PRODUCT MANAGEMENT
BUILDING THE RIGHT FEATURES
Saying that everything is important
is a failure to prioritize, and will
eventually lead to project failure.
PRIORITIZE
AT THE RIGHT TIME
Improve the process for building
and testing features organically, one
step at a time.
OPTIMIZE
Product management is not so
much a process for building, as it is
for learning.
LEARN
17
EARLY STAGE STARTUPS
Validate Ideas with Non-Product MVPs
Identify key assumptions and validate them with experiments that cost next to nothing. Don’t start with building a product right off!
Come up with Visual Specifications
Start with user stories, simple sentences that describe the value of features you are building. Use sketches and storyboards to flesh out detail.
Once Again, Less Features is More
Building the entire product outright is risky use of time if we don’t if people will use the features. Find out what went right or wrong.
AND PRODUCT MANAGEMENT
https://medium.com/@mdubakov/visual-specifications-1d57822a485f
18
BACKLOG IN-PROGRESS DONE
Source: Running Lean, Ash Maurya
19
BACKLOG IN-PROGRESS DONE
Source: Running Lean, Ash Maurya
20
BACKLOG IN-PROGRESS DONE VALIDATEDLEARNING
IN-PROGRESS VALIDATEQUALITATIVELY
VERIFYQUANTITATIVELYDESIGN CODE PARTIAL
ROLLOUTFULL
ROLLOUTBACKLOG
BU
GS
FEAT
UR
ES
Source: Running Lean, Ash Maurya
21
TOOLS
22
TINKERBOX STACK
CODE QUALITY CONTINUOUS DEPLOYMENT
On average, our projects score
87.17% test coverage, based on 27
of our recent projects, giving us
confidence in our codebases.
TEST COVERAGE
1 2
3
We employ static code analysis on
our codebases, using CodeClimate.
On average, we scope a GPA of
3.59 (max 4.0), of 34 projects.
Using Heroku, or equivalent set up,
we configure automated pipelines
for deploys to our staging &
production environments.
STAGING PRODUCTION
CLOUDFLARE
(CDN)
APPSIGNAL
GITHUB
CIRCLE CI CODECLIMATE
AUTOMATED DEPLOYMENTS
TYPICAL DEPLOYMENT SETUP
SLACK
23
WWW.TINKERBOX.COM.SG BUILD WEB AND MOBILE APPS THE RIGHT WAY
JARYL SIMJaryl has been programming for about 15 years, starting off with C/C++. He has been writing ruby & rails since 2007.
HTTPS://GITHUB.COM/JARYLGITHUB
HTTPS://TWITTER.COM/JARYLTWITTER