technology, performance and scalability - presentation - anjesh tuladhar
DESCRIPTION
Mr. Anjesh Tuladhar, one of the trainers during Ncell App Camp 2014, talked about the what the participants should do now for the competition and have a vision for future regarding their apps in terms of technology, performance and scalability.TRANSCRIPT
Technology, Performance and Scalability
Anjesh TuladharYoungInnovations
Ebay: Current statusRevenue: USD 16 billion (2013)Employees: 33500 (2013)
Q3 2012 Q3 2013 Q3 20140
20
40
60
80
100
120
140
160
108.3
134.9
152.3
Ebay Users (in millions)
Ebay: Evolvement over time1995 – set of perl scripts build over a weekend
1997 – replaced with C++ system
2002 – rewritten in java
Right architecture to support 1995-ebay isn’t going to be right one for 2002-ebay
How many users will be using your app in 1-3 months?
1,000,000100,000
10,0001,000
10010
1
How can your app attract the first
100/10/1 users
to pay for the services your app provides? ?
How much
time do you have to build the application
?
Focus?
• Business case• User Experience and Design• Minimum Viable Product (MVP)
MVP
Minimum Viable Product is the small thing you can build that delivers customer value
Doesn’t mean unfinished product at all!
Analyse each feature and ask what if I take it out
Technology• Technology is definitely Important• Just remember– No over-engineering
Avoid Over-engineering
Over-engineered design is design that leads to difficulty in implementation, makes maintenance a nightmare, and turns otherwise simple code into a twisty maze of complexity
Strategy pattern
Strategy pattern vs
Simple Switch case
High-level Architecture
mobileWeb
SystemAPIinternet
Web services?• SOAP• REST• JSON-RPC• …
Security in API• Do you want to over-engineer the security or just have in basic
setup– Basic authentication– Oauth– Custom
• Maybe start with basic and then later move on to Oauth or other more secure mechanism
Don’t risk the personal info of your users
Error handling• Errors are part of your application. • Does your application handle the errors well?• Do you think your user will come back to use your
buggy app?
There will be no excuse if you app was working yesterday or just an hour ago.
Source code versioning• Make sure you always have the good commit to come
back to
Are tests important?No if you can sleep sound at night
100% coverage is not needed, but make sure that the key functions have unit-tests
Automated DeploymentDo you want to save time during your deployment?
Do you want to avoid panic during last minute deployment?
Performance• Is you app slow to use and respond?• Performance can also get hit by users – maybe it’s
little early to look into users hit performance
Your interface should be quick to load and provide feedback
ScalabilityHow important is it now?Your near future user base is the answer.
Scalability is ability to handle more users
What are the minimum key features (MVP) that you can have in your app
in the limited time for the first 100/10/1 users and
get paid for your services?
Thank you