TRADEOFFSMatthew Lehner @matthewpearse
Building Software Relies on Two Inputs:
!
Timeand
Money
Businesses Have Money
!
You have time
We have the best jobs on earth
!
We get paid to build things that help to the
world better
First Assumption: We’re here because
we love building software
Second Assumption: We wouldn’t mind higher salaries or a
greater level of autonomy over our
work
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
Better developers have more freedom
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
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)
A STORY 4 years ago I sent my first pull request
The Problem
The Solution
I could build a webpage
<html><%= weird_stuff %>
</html>
<html><%= different_weird_stuff %>
</html>
C++
Ruby has a low barrier to entry
Ruby
We don’t pick languages because
they’re fast.
We pick languages because we can be
productive with them
Productivity happens when our brains are
free to solve problems
Second Problem: Focus
Managed Hosting vs.
Random Scripts + Docker Hacking
+VS
Bare Minimum Setup• Application Server
• SSL Encryption
• Database Server
• Server Monitoring
• Automated Backups
Should Also Have
• Load balancing
• Easy Horizontal Scalability
At Face Value
EC2 Micro:$0.013/hour
Heroku Dyno:$0.05/hour
At Face Value
EC2 Micro:$0.013/hour
Heroku Dyno:$0.05/hour
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: ????
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: 1 day (optimistic)
How much does a developer cost?
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
Developer Salary Math
Cost per hour:
$288
A Deeper Dive
• Heroku set up time: 30 minutes
• EC2 set up time: 1 day (optimistic)
A Deeper Dive
• Heroku set up cost: $144
• EC2 set up cost: $2,304
• $1
Heroku cost per month
$111.50USD
• $1
Heroku cost per month
:(
$18USD
AWS cost per month
:)
AWS cost per month
Practically Speaking
SETUP COSTS
Heroku: $144 AWS: $2,304
MONTHLY COSTS
Heroku: $868 AWS: $139
Monthly Breakdown
0
1500
3000
4500
6000
Sept Oct Nov Dec Jan Feb
Heroku AWS
MERRY CHRISTMASI got you some traffic for your site
Monthly Breakdown
0
1750
3500
5250
7000
Sept Oct Nov Dec Jan Feb
Heroku AWS
If your primary responsibility isn’t managing servers,
this will to slow down forward progress.
Servers are cheap, their resources are
unlimited. You are not cheap,
you have finite resources.
Mythical Man-Month
Mythical Man-Month
Adding manpower to a late software project makes it later - Brooks’ law
We can’t add more people to projects
and finish them faster
Adding people to a team increases complexity and
increased complexity lowers productivity.
Developers are not horizontally scalable
However, we can work effectively on individual parts of a
complex system
To make the right choices we need to be aware of:
• The impact on the business’ bottom line
• The effect on our productivity
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
Top Related