Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The only thing that matters
And it’s not code quality
Imagine the following situation
Product: Hey John, please take a look
at user story #714
Developer: Sure
User story #714:
“Japanese Hedge funds want to know about
every transaction of more than $10M against
their local currency...
User story #714:
“Japanese Hedge funds want to know about
every transaction of more than $10M against
their local currency...
Developer: Cool, I’m on it
Product: Thanks buddy
Our developer, John, is working, and
produce the following code:
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
Do you see anything wron...
The only thing that matters
And it’s not code quality building the right thing
Hi, my name is Adir Amsalem,
I like to build things,
And I think most of you
evaluate your work by the
wrong metrics.
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
Product features come from 2 sources:
1. Product Manager ideas
2. Customer requests
Let’s see how it happens
Product Manager ideas:
1. Think about something in shower
2. Make sure it’s beneficial for customers
3. Make sure it suppo...
Customer requests:
1. Customer complain: “%@&^%$#@!#$”
2. Put yourself in customer position
3. Understand the case and tra...
Great, let’s continue
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
Who’s evaluating or interacting with our
work:
1. Future us and other developers
2. Customers
What might come up?
How developers evaluate our work:
1. Is this readable?
2. Is this flexible?
3. Is this scalable?
4. Is this testable?
5. I...
How customers evaluate our work:
1. Is this useful?
2. Is this makes me feel good?
Developers
1. Is this readable?
2. Is this flexible?
3. Is this scalable?
4. Is this testable?
5. Is this simple?
Customer...
We’ve been developing products for
years, and we evaluate our work
completely different from our
customers
Now, you might step up and say:
But hey!
I’m just a developer.
That’s the Product Manager role.
So...
1. You’re not “just a developer”
2. That’s your role as well
There is no “my role” and “their role”.
There is “our role”.
And our role is to build a kickass
product.
So let’s do it
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
“Usually, the riskiest aspect of new
products is not technology (whether it
can be built) but market (will people use
it a...
Doing the right thing is only
possible by releasing
features early and receive
feedback from users.
“Building something no...
First-mover advantage is
the advantage gained by
the initial (“first-moving”)
significant occupant of a
market segment.
“I...
Work estimation of 12
months is ridiculous, it
never ends as planned.
You don’t need to release
everything at once.
Releas...
Nobody cares that you
work on your product for
over a year and you’ve
already coded 90% of it.
For your customers, 90% of
...
But most importantly...
Know your domain
Knowledge is the key to success
Remember the code from the
beginning?
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
The problem here is easi...
Let’s review it again
User story #714:
“Japanese Hedge funds want to know about
every transaction of more than $10M against
their local currency...
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
Anyone?
if (transaction.currencyA === ‘YEN’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘JPY’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
if (transaction.currencyA === ‘JPY’ &&
transaction.usdEquivAmount >= 1e7)
{
// send email alert
}
If John understood what he was doing,
instead of just coding what he has
been asked to, this mistake would not
happen
Be smart. Know your domain.
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
Curious what else you can do?
1. Take a look at your competitors
2. Participate in product discussions
3. Come up with ideas & suggestions
4. Use your product
The possibilities are endless
But what about all the engineering
qualities...
Am I saying they’re not important?
But what about all the engineering
qualities...
Am I saying they’re not important?
NO! They’re super important.
As long as you build the right thing
Agenda:
1. The tale of a product feature
2. How our work is evaluated
3. How we can bridge the gap
4. What’s next
Takeaways #1
1. Release early
2. Make something people want
3. Make it work, then make it better
4. Dream in years, plan i...
Takeaways #2
1. Know your domain, knowledge is the key
to success
2. Take a look at your competitors
3. Participate in pro...
Build the right thing
Thank you!
Share this with your friends
if you find this useful.
The only thing that matters
Upcoming SlideShare
Loading in …5
×

The only thing that matters

1,032 views

Published on

Ever wondered what's the real value of the code you write?

"The only thing that matters" is a presentation aimed for developers and its goal is to help you understand what really matters about the code you write.

The presentation describes ways to evaluate your work, highlights the difference between developers' and customers' perceived value and explains how you can bridge this gap and produce better products.

Published in: Technology
  • Be the first to like this

The only thing that matters

  1. 1. The only thing that matters And it’s not code quality
  2. 2. Imagine the following situation
  3. 3. Product: Hey John, please take a look at user story #714
  4. 4. Developer: Sure
  5. 5. User story #714: “Japanese Hedge funds want to know about every transaction of more than $10M against their local currency. Therefore, we’ll send an email alert every time such a transaction happens”
  6. 6. User story #714: “Japanese Hedge funds want to know about every transaction of more than $10M against their local currency. Therefore, we’ll send an email alert every time such a transaction happens”
  7. 7. Developer: Cool, I’m on it
  8. 8. Product: Thanks buddy
  9. 9. Our developer, John, is working, and produce the following code:
  10. 10. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  11. 11. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  12. 12. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  13. 13. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  14. 14. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  15. 15. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert } Do you see anything wrong with this code? We will get back to it later.
  16. 16. The only thing that matters And it’s not code quality building the right thing
  17. 17. Hi, my name is Adir Amsalem, I like to build things, And I think most of you evaluate your work by the wrong metrics.
  18. 18. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  19. 19. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  20. 20. Product features come from 2 sources: 1. Product Manager ideas 2. Customer requests
  21. 21. Let’s see how it happens
  22. 22. Product Manager ideas: 1. Think about something in shower 2. Make sure it’s beneficial for customers 3. Make sure it supports company goals 4. Add it to roadmap
  23. 23. Customer requests: 1. Customer complain: “%@&^%$#@!#$” 2. Put yourself in customer position 3. Understand the case and transform “want” to “need” (a.k.a “faster horses”) 4. Repeat steps 2-4 from previous slide
  24. 24. Great, let’s continue
  25. 25. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  26. 26. Who’s evaluating or interacting with our work: 1. Future us and other developers 2. Customers
  27. 27. What might come up?
  28. 28. How developers evaluate our work: 1. Is this readable? 2. Is this flexible? 3. Is this scalable? 4. Is this testable? 5. Is this simple?
  29. 29. How customers evaluate our work: 1. Is this useful? 2. Is this makes me feel good?
  30. 30. Developers 1. Is this readable? 2. Is this flexible? 3. Is this scalable? 4. Is this testable? 5. Is this simple? Customers 1. Is this useful? 2. Is this makes me feel good? Do you see any difference similarity?
  31. 31. We’ve been developing products for years, and we evaluate our work completely different from our customers
  32. 32. Now, you might step up and say:
  33. 33. But hey! I’m just a developer. That’s the Product Manager role.
  34. 34. So...
  35. 35. 1. You’re not “just a developer”
  36. 36. 2. That’s your role as well
  37. 37. There is no “my role” and “their role”. There is “our role”. And our role is to build a kickass product.
  38. 38. So let’s do it
  39. 39. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  40. 40. “Usually, the riskiest aspect of new products is not technology (whether it can be built) but market (will people use it and pay for it)”
  41. 41. Doing the right thing is only possible by releasing features early and receive feedback from users. “Building something nobody wants is the #1 company killer"
  42. 42. First-mover advantage is the advantage gained by the initial (“first-moving”) significant occupant of a market segment. “If you're not embarrassed by the first version of your product, you've launched too late"
  43. 43. Work estimation of 12 months is ridiculous, it never ends as planned. You don’t need to release everything at once. Release small chunks by splitting work to phases.
  44. 44. Nobody cares that you work on your product for over a year and you’ve already coded 90% of it. For your customers, 90% of nothing is still nothing.
  45. 45. But most importantly...
  46. 46. Know your domain
  47. 47. Knowledge is the key to success
  48. 48. Remember the code from the beginning?
  49. 49. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  50. 50. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert } The problem here is easily recognized by anyone with knowledge in financial systems.
  51. 51. Let’s review it again
  52. 52. User story #714: “Japanese Hedge funds want to know about every transaction of more than $10M against their local currency. Therefore, we’ll send an email alert every time such a transaction happens”
  53. 53. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert } Anyone?
  54. 54. if (transaction.currencyA === ‘YEN’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  55. 55. if (transaction.currencyA === ‘JPY’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  56. 56. if (transaction.currencyA === ‘JPY’ && transaction.usdEquivAmount >= 1e7) { // send email alert }
  57. 57. If John understood what he was doing, instead of just coding what he has been asked to, this mistake would not happen
  58. 58. Be smart. Know your domain.
  59. 59. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  60. 60. Curious what else you can do?
  61. 61. 1. Take a look at your competitors
  62. 62. 2. Participate in product discussions
  63. 63. 3. Come up with ideas & suggestions
  64. 64. 4. Use your product
  65. 65. The possibilities are endless
  66. 66. But what about all the engineering qualities... Am I saying they’re not important?
  67. 67. But what about all the engineering qualities... Am I saying they’re not important? NO! They’re super important.
  68. 68. As long as you build the right thing
  69. 69. Agenda: 1. The tale of a product feature 2. How our work is evaluated 3. How we can bridge the gap 4. What’s next
  70. 70. Takeaways #1 1. Release early 2. Make something people want 3. Make it work, then make it better 4. Dream in years, plan in months, ship in days 5. It’s not done until it ships
  71. 71. Takeaways #2 1. Know your domain, knowledge is the key to success 2. Take a look at your competitors 3. Participate in product discussions 4. Come up with ideas & suggestions 5. Use your product
  72. 72. Build the right thing
  73. 73. Thank you! Share this with your friends if you find this useful.

×