Tradeoffs
-
Upload
matthewlehner -
Category
Technology
-
view
126 -
download
2
description
Transcript of Tradeoffs
![Page 1: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/1.jpg)
TRADEOFFSMatthew Lehner @matthewpearse
![Page 2: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/2.jpg)
Building Software Relies on Two Inputs:
!
Timeand
Money
![Page 3: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/3.jpg)
Businesses Have Money
!
You have time
![Page 4: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/4.jpg)
We have the best jobs on earth
!
We get paid to build things that help to the
world better
![Page 5: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/5.jpg)
First Assumption: We’re here because
we love building software
![Page 6: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/6.jpg)
Second Assumption: We wouldn’t mind higher salaries or a
greater level of autonomy over our
work
![Page 7: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/7.jpg)
I want to propose an idea: The ability to make
better business decisions makes you a
better developer. I’m not talking about straight up engineers, but people with jobs building software with
practical applications
![Page 8: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/8.jpg)
Better developers have more freedom
![Page 9: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/9.jpg)
WHY?
• Our salaries have to come from somewhere
• If our work is not creating more value than it costs the people who sign our cheques then they’re going to run out of money, and we’ll be unemployed
![Page 10: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/10.jpg)
WHY?
• Understanding the relationship between your work and the business value that it creates gives you a better ability to make decisions that will allow you to have more freedom over what you do (more money, or time off)
![Page 11: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/11.jpg)
A STORY 4 years ago I sent my first pull request
![Page 12: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/12.jpg)
The Problem
![Page 13: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/13.jpg)
The Solution
![Page 14: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/14.jpg)
I could build a webpage
![Page 15: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/15.jpg)
<html><%= weird_stuff %>
</html>
![Page 16: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/16.jpg)
<html><%= different_weird_stuff %>
</html>
![Page 17: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/17.jpg)
C++
![Page 18: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/18.jpg)
Ruby has a low barrier to entry
![Page 19: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/19.jpg)
Ruby
![Page 20: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/20.jpg)
We don’t pick languages because
they’re fast.
![Page 21: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/21.jpg)
We pick languages because we can be
productive with them
![Page 22: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/22.jpg)
Productivity happens when our brains are
free to solve problems
![Page 23: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/23.jpg)
Second Problem: Focus
![Page 24: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/24.jpg)
Managed Hosting vs.
Random Scripts + Docker Hacking
+VS
![Page 25: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/25.jpg)
Bare Minimum Setup• Application Server
• SSL Encryption
• Database Server
• Server Monitoring
• Automated Backups
![Page 26: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/26.jpg)
Should Also Have
• Load balancing
• Easy Horizontal Scalability
![Page 27: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/27.jpg)
At Face Value
EC2 Micro:$0.013/hour
Heroku Dyno:$0.05/hour
![Page 28: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/28.jpg)
At Face Value
EC2 Micro:$0.013/hour
Heroku Dyno:$0.05/hour
![Page 29: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/29.jpg)
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: ????
![Page 30: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/30.jpg)
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: 1 day (optimistic)
![Page 31: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/31.jpg)
How much does a developer cost?
![Page 32: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/32.jpg)
MATH TIME!• Average HK Dev Salary: $30,000/month
• Equipment, office space, utilities, benefits, taxes: $20,000
• Total cost per month: $50,000
• Per year: $600,000
• Per week: $11,538
![Page 33: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/33.jpg)
Developer Salary Math
Cost per hour:
$288
![Page 34: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/34.jpg)
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: 1 day (optimistic)
![Page 35: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/35.jpg)
A Deeper Dive
• Heroku set up cost: $144
• EC2 set up cost: $2,304
![Page 36: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/36.jpg)
• $1
Heroku cost per month
$111.50USD
![Page 37: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/37.jpg)
• $1
Heroku cost per month
:(
![Page 38: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/38.jpg)
$18USD
AWS cost per month
![Page 39: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/39.jpg)
:)
AWS cost per month
![Page 40: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/40.jpg)
Practically Speaking
SETUP COSTS
Heroku: $144 AWS: $2,304
MONTHLY COSTS
Heroku: $868 AWS: $139
![Page 41: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/41.jpg)
Monthly Breakdown
0
1500
3000
4500
6000
Sept Oct Nov Dec Jan Feb
Heroku AWS
![Page 42: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/42.jpg)
MERRY CHRISTMASI got you some traffic for your site
![Page 43: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/43.jpg)
Monthly Breakdown
0
1750
3500
5250
7000
Sept Oct Nov Dec Jan Feb
Heroku AWS
![Page 44: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/44.jpg)
If your primary responsibility isn’t managing servers,
this will to slow down forward progress.
![Page 45: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/45.jpg)
Servers are cheap, their resources are
unlimited. You are not cheap,
you have finite resources.
![Page 46: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/46.jpg)
Mythical Man-Month
![Page 47: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/47.jpg)
Mythical Man-Month
Adding manpower to a late software project makes it later - Brooks’ law
![Page 48: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/48.jpg)
We can’t add more people to projects
and finish them faster
![Page 49: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/49.jpg)
Adding people to a team increases complexity and
increased complexity lowers productivity.
![Page 50: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/50.jpg)
Developers are not horizontally scalable
![Page 51: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/51.jpg)
However, we can work effectively on individual parts of a
complex system
![Page 52: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/52.jpg)
To make the right choices we need to be aware of:
• The impact on the business’ bottom line
• The effect on our productivity
![Page 53: Tradeoffs](https://reader033.fdocuments.in/reader033/viewer/2022052905/5585434dd8b42a5e018b4f9b/html5/thumbnails/53.jpg)
Framework for maximum awesome
1. Work on things you like, and solve problems with technologies you’re excited about
2. Work towards mastery of the technologies you use every day
3. Evaluate how your day-to-day work creates value for your employer and focus on increasing this