Ever asked why great engineers prefer working for certain companies? Or why certain companies are more admired than others? In this lecture I will share few ingredients of the strong engineering culture and why technologists prefer working for one company than for another.
2. Intuit Confidential and Proprietary 2
Why great engineers prefer working for certain companies?
3. Intuit Confidential and Proprietary 3
About me
- Chief Architect of Intuit Israel
- Innovation Catalyst at Intuit
- Vice President of IASA Israel
- Background in development, operations, and
management
- Astronomer and astrophotographer
- Father of three
https://www.linkedin.com/in/michaelkalika
Michael Kalika
Rishon LeZion, Israel
4. Intuit Confidential and Proprietary 4
What is Engineering Culture?
Customer Obsession and Design Thinking
Learning From Failures
Open & Inner Source
Autonomy, Mastery and Purpose
Agenda
6. Founded by
Scott Cook &
Tom Proulx
1983
Went public
on Nasdaq
1993
20 locations,
9 countries
Locations
9,000+50M ~$6.8B FY19
Revenue
Customers
worldwide
Employees
worldwide
Who we are
7. 2004 - 2019
Most Admired:
Computer Software
2002 - 2019
100 Best Companies
to Work For
2019
Most Innovative
Companies
2019
Companies Best
Positioned For Breakout
Growth
Recognized as one of the world’s leading companies
2017 - 2019
Best High Tech
Companies to work for
9. Intuit Confidential and Proprietary 9
Culture
A set of shared values, goals, and principles that guide the behaviors, activities, priorities, and
decisions of a group of people working toward a common objective
Karl E. Wiegers - American software engineer, author, consultant and trainer
Engineering Culture and System Architecture are reflections of corporate values
Me
12. Intuit Confidential and Proprietary 12
Our product manager is the
one who tells us about the
customer and the problem we
need to solve. Do I need to
know anything else?
What is the biggest
customer pain?
Who are my
customers?
Would our customers
recommend our
products to their
friends?
How do we measure
customer satisfaction
and conformance to
requirements?
13. Intuit Confidential and Proprietary 13
Design Thinking
Is an iterative process that helps understand users (customers), challenge assumptions, and
redefine problems.
https://www.interaction-design.org/literature/article/what-is-design-thinking-and-why-is-it-so-popular
14. Intuit Confidential and Proprietary 14
Core capabilities: our recipe to execute with excellence
WHAT TO SOLVE HOW TO SOLVE
CUSTOMER-DRIVEN INNOVATION (CDI) DESIGN FOR DELIGHT (D4D)
An important,
unsolved
customer
problem
…that we, and
those we
enable, can
solve well
…and build durable
competitive advantage
SUCCESS
IS
HERE
Deep customer
empathy
Go broad to
go narrow
Rapid experiments
with customers
DELIGHT
15. Intuit Confidential and Proprietary 15
End customer who
consumes products
or services
EXTERNAL
Backend teams who
consume your APIs
or messages
INTERNAL
INTERNAL
Data Scientists or Analysts
who need data from your
systems
Who are your customers?
INTERNAL
Front End Engineers
who consume your
APIs or widgets
Coworkers who need
infrastructure service
INTERNAL
Manager who need
to share project
status with
stakeholders
INTERNAL
Those who consume your work
17. Intuit Confidential and Proprietary 17
Problem Statement
I am:
Engineer, working on a new capability composed from multiple microservices
I am trying to:
Create and automate Cloud Native CI/CD in multiple environments with tests, security and code quality scans
But:
I have to invest a lot of work effort
Because:
I have nobody who could do it for me and nothing out of the box that I could use
Which makes me feel:
Slow, frustrated and exhausted.
18. Intuit Confidential and Proprietary 18
Ideal State
In a perfect world:
Within few clicks I could have all environments and CI/CD pipelines to the Cloud ready out of the box for me
The biggest benefit to me is:
I can focus on improving the product and delighting customers instead of developing boilerplate code
Which makes me feel:
Happy, efficient and on top of my work
19. Intuit Confidential and Proprietary 19
Customer Empathy: Do Follow Me Homes (FMH),
connect with customers by doing interviews, listening to
calls, reading reviews etc.
Go broad to go narrow: Use the insights you learnt to
pick a critical problem to solve. Go broad on
brainstorming or systematically find solutions. Then pick
one solution, create more variations and narrow what to
tackle.
Rapid prototyping: Conduct iterative rapid prototyping
with "cheap" experiments to quickly determine the
customer experience and collect feedbacks.
INITIATION &
PLANNING EXECUTION CLOSEOUT
Customer Empathy: Share the results with customers and
get feedbacks on the solutions you are building.
Go broad to go narrow: Use the “go broad to narrow” on
refining and reiterating the solution based on customer
feedbacks. During testing and code reviews make sure you
capture and document all defects, but narrow and fix on
most the critical.
Rapid prototyping: Ensure you solutions products and
system architecture support and contain experimentation
capabilities such as A/B testing, feature flags and “canary
deployments”.
Customer Empathy: Once the solution is in production,
listen to or interact with customers to see how the
solution fixed a problem or how a new feature is being
received.
Best practice: Connect with your Customer Success team
to circle back with the customer.
Go broad to go narrow: Use the insights you learnt from
customers and conduct retrospective with the team on
what worked well and what not. Go broad and then focus
on what really matters.
Rapid prototyping: Create ideas for the next
experiments and prototypes based on what you learnt.
20. Intuit Confidential and Proprietary 20
Problem Explorer
Go broad to go narrow
What’s stopping?
What else?
1. Knowledge and
experience in DevOps
2. Time
Why solve this?
Why else?
Deploying everything
manually is not
productive, time
consuming and prone to
errors
Original Problem
(start here)
I need a generic and
automatic way to deploy
my microservice to
multiple environments in
the Cloud by testing and
scanning the code
Narrower
Problem
How to implement
automated CI/CD without
spending significant time
and resources?
Broader Problem
The more manual work we
do, the less time we have
to delight customers,
innovate and invest in
what matters
21. Intuit Confidential and Proprietary 21
Solution Prioritization
High Value
Low Cost
Low Value
High Cost
Build Buy Ask for Help
Do partially,
trade-offs
22. Intuit Confidential and Proprietary 22
Paper Prototyping
Source: http://aaronbrako.com/prototyping
23. Intuit Confidential and Proprietary 23
Digital Prototyping
Source: https://sympli.io/blog/lean-ux-and-low-fidelity-prototyping-with-adobe-xd-and-sympli/
24. Intuit Confidential and Proprietary 24
What about backend?
https://stoplight.io/studio
http://wiremock.org
https://editor.swagger.io
26. Intuit Confidential and Proprietary 26
FAILURES are
Unavoidable
successful people don't
fear failure but understand
that it's necessary to learn
and grow from
— Robert Kiyosaki
27. Intuit Confidential and Proprietary 27
Each problem is
an opportunity
because it can
tell a story about
why and how it
occurred.
Philosophy of Root Cause Analysis
It is critical
that everyone
takes a personal
and active
role in
improving
quality.
The "true"
problem must
be understood
before action is
taken.
Be focused and
open-minded
MUST 1
MUST 2
Be patient and
quick
MUST 3
Be relentless, but
avoid critiques
28. Intuit Confidential and Proprietary 28
WHY
Drove fast
5 WHYs
WHY
Late to work
WHY
Woke up late
WHY
Alarm clock
didn’t ring
WHY
Forgot check
if it was set
last night
Problem: Alex made a road accident
29. Intuit Confidential and Proprietary 29
Record Times and Customer Impact
Start Time Time to Detect Time to Engage Time to Repair Time to Restore
10-04-2020 07:26:00 PM
12 Minutes
10-04-2020 07:38:00 PM
23 Minutes
10-04-2020 07:49:00 PM
49 Minutes
10-04-2020 08:15:00 PM
51 Minutes
10-04-2020 08:17:00 PM
Products / Modules / Services Impact Details
(# Transactions / Customers impacted / Errors seen)
% Impact
Product XXX Service YYY was unavailable and observed 1,541,719 request failures. 45
30. Intuit Confidential and Proprietary 30
Document Action Items
# Corrective Actions Owner / Team Due Date Task Reference
(JIRA or similar)
1 Configure “house on fire alerts” John Smith November 1st 2020 RCA-1234
33. Intuit Confidential and Proprietary 33
Closed Software is built like
cathedrals, carefully crafted by
individual wizards or small bands of
mages working in splendid isolation.
— Eric Raymond, “The Cathedral and the Bazaar”, 1997
Intuit Confidential and Proprietary 33
34. Intuit Confidential and Proprietary 34
Open Software seems to resemble a
great babbling bazaar of differing
agendas and approaches.
— Eric Raymond, “The Cathedral and the Bazaar”, 1997
Intuit Confidential and Proprietary 34
35. Intuit Confidential and Proprietary 35
This accelerates innovation across
the industry and facilitates
adoption of services and
products you offer.
When an open source project
becomes popular, you benefit
from a massive influx of outside
contributors, so the project and
the ecosystem evolve more
rapidly.
36. Intuit Confidential and Proprietary 36
There are 3 main reasons why it’s important to be an active
player in the open source community: 1) it allows us to adopt
advanced technologies that are robust, free and not tied to a
vendor; furthermore, many critical new innovations are
available first in open source; 2) it increases our tech profile,
both internally and externally, and helps us with hiring; and 3) it
helps our code stay fresh because there’s a whole community
keeping it relevant and evolving it.
— Marianna Tessel, Marianna's Thoughts - December 2019
Intuit Confidential and Proprietary 36
37. Intuit Confidential and Proprietary 37
The number one reason NOT to open source a project is that it includes, or
links to your company’s “secret sauce” or sensitive data because doing so
can create security issues or erode competitive advantage.
Why not open source?
40. Intuit Confidential and Proprietary 40
Strategy
What are our goals? What do we want to achieve?
Engineering Time Investment and Commitment
Feature Development, Issues, Pull Requests Reviews, Forums, Meetups, Blogging. How do we reward successful open source projects?
Education & Mentorship
Education and Mentor about open source practices, clean code, community building etc.
Compliance
Legal aspects, reviews and licensing
Marketing & Communication
How to get smartest professionals contributing to open source projects? Partnership building. Communication with external partners and
communities.
Open Source Program Management
Coordination and management of the above
Open Sourcing Requires Investment in
41. Intuit Confidential and Proprietary 41
How to Measure?
Area Measurements
Project adoption • # Dependent internal products
• # Visitors to GitHub repo
• # Followers on GitHub
• # Downloads
• # Forks
• # Stars in GitHub
• # Mentions in social media
• # Meetups, hackathons
• # Contributing companies
• # Dependent external products (need to track media & community for that)
Activity • # Pull requests submitted, opened, accepted and rejected
• # Issues submitted
Contribution • Internal vs External contributors ratio
• Ratio of commits per contributor - external vs. internal
Productivity and Efficiency • Length of time pull requests remain open
• Length of time issues remain open
Investment • Time engineers spend on actual development of the project
• Time spent on project promotion activities - engineers vs. non-engineers
• Budget spent on project promotion, consultancy etc.
44. Intuit Confidential and Proprietary 44
Inner Source takes the lessons learned from developing Open Source
software and applies them to the way companies develop software internally
45. Intuit Confidential and Proprietary 45
We are Fraud Fighters team, responsible for Fraud
elimination
We evaluate every customer transaction for suspicious
activities, execute policies and trigger decision actions
We would like to enhance one of our ML models and need
additional attributes as a part of the login event messages
Unfortunately Corporate Identity team are extremely busy
and cannot address our request within next few sprints
What can we do?
“Fraud Fighters” Team
46. Intuit Confidential and Proprietary 46
“Fraud Fighters” Team Options
1. Cry & Beg
2. Trade-off resources or quality
3. Escalate
4. Make the required changes in Auth service ourselves and create Pull Request
47. Intuit Confidential and Proprietary 47
My name is Lisa and I am senior engineer with 5 years
experience in Java backend engineering
I would like to become an architect and want to broaden
my horizons
Recently, I’ve accomplished few online courses looking
for practical opportunities to apply my new knowledge in
Front End and/or Data Engineering
Does someone need help in those areas?
49. Intuit Confidential and Proprietary 49
We are centralized infrastructure team who have a
new and brilliant idea for Cloud cost management
optimization
We are currently limited in the resources and looking
for peers who can help us
Does someone want to use this opportunity to learn
new things, solve complex challenges and create a
high impact?
50. Intuit Confidential and Proprietary 50
Inner Source Benefits
● Helps in breaking down silos
● Encourages internal collaboration and barrier removing
● Increases speed
● Knowledge sharing
● Accelerates new engineer onboarding
● Motivates creating and maintaining Beautiful Code
● Helps identify opportunities to contribute software back to the open source world
51. Intuit Confidential and Proprietary 51
● Collective Ownership - Mindset reorientation adopting internal developers as our first
customers, and helping them to become co-owners
● Appoint Decision Makers - Maintain a public list of Trusted Committers (TC)
● Document Requirements and Expectations from TCs
● Allocate sprint time for PR reviews
● Document Resolution Rules (escalation paths)
● "On-call" TC Rotation
● Defined SLA and Process for Reviews
From Code Ownership to Code Stewardship
52. Intuit Confidential and Proprietary 52
More guides
https://innersourcecommons.org
https://github.com/InnerSourceCommons/InnerSourcePatterns
54. Intuit Confidential and Proprietary 54Intuit Confidential and Proprietary 54
It doesn't make sense to hire smart people and then tell them
what to do; we hire smart people so they can tell us what to do.
— Steve Jobs
55. Intuit Confidential and Proprietary 55
At Intuit, each and every employee is
expected to think like an entrepreneur,
and it’s everyone’s job to create, to invent,
and to look for new and better ways to
improve our customers’ lives.
56. Intuit Confidential and Proprietary 56
Unstructured Time
10% unstructured time to work on own initiatives like
● Being innovation catalyst.
● Participating in Capability Innovation Circle program and joining initiatives in other teams or
business units.
● Work on a special passion initiatives.
57. Intuit Confidential and Proprietary 57
Global Engineering Days
It’s a week outside the race of scrum where
technologists are free to work on a special
passion project, something fun, something
that might not normally be a priority.
58. Intuit Confidential and Proprietary 58
Horizon Innovation Program
● Share your business idea by submitting a 3 minute video and answering a few
questions.
● A Portfolio Team reviews and selects a few.
● The chosen initiatives receive resources, funding and advisors to build it.
● You build the next Intuit business that Powers Prosperity around the world.
59. Intuit Confidential and Proprietary 59
Key Takeaways
Be Customer Obsessed and encourage Design Thinking
Use Go broad to go narrow technique
Do Follow Me Homes with your customers
Learn from Failures and share Lessons Learnt
Consider Open and Inner Source in your company
Practice Autonomy, Mastery and Purpose in your teams
1
6
2
5
4
3