2. About me - Shekhar Gulati
● Heading technology at Xebia
● Experienced in building distributed systems
● My passion is building junior engineers and mentoring senior engineers
4. How many of you have written code in last?
A. 24 hours
B. 1 week
C. 1 month
D. 1 year
5. How long you have been following Agile?
A. Less than one year
B. Between one and two years
C. Between two and five years
D. More than five years
6. How long you have been following Agile?
A. Less than one year
B. Between one and two years
C. Between two and five years
D. More than five years
I am following Agile & XP practices
since 2005 ~= 15 years
7. Most of you will agree that today we have the
best tools/technologies and processes to
deliver successful projects
8. $ 1.3 trillion
Money spent on digital transformation initiatives in 2018
Source: Forbes: Link
9. Research tell us that 70% of these initiatives
did not reach their stated goals
Source: McKinsey Survey: Link
11. Example of big organizations that failed
Source: HBR: Link
12. I was also involved in one such
transformation initiative and that also had a
similar fate
13. Top reasons why transformation initiatives failed
1. Lack of clear transformation strategy
2. Lack of teamwork
3. Initiative became limited to technology modernization initiative
4. Lack of necessary talent
14. Technology was not the reason why these
initiatives failed. It is the soft human aspects
that caused failure
17. Technology Evolution
In 2005-8, Java +
XP Programming
In 2009-12 Clean
Code + Software
Craftsmanship
In 2012-2014
NoSQL, Cloud
Since 2014 Microservices, JS,
Docker, Kubernetes, Serverless,
DDD, FP, AI/ML, etc.
Full Stack
Engineers
20. Modern Software Development
Things I have not covered:
1. Your application might be
broken as services
2. You will be managing
multiple services
3. You have to learn
distributed system patterns
4. You will have container
orchestrator like Kubernetes
5. You might be developing in
multiple programming
languages
22. We can argue whether this complexity is
accidental or essential
23. Fred Brooks in “No Silver Bullet” essay wrote
1. Accidental complexity relates to problems which engineers create for
themselves
2. Essential complexity is caused by the problem to be solved, and nothing
can remove it
24. The fact of the matter is that most of us are
building complex systems today
25. In 2017, a consortium was formed by IBM,
Etsy, IEX, and Ohio state university to
understand how engineers cope up with the
complexity of these systems
37. Diffusion of developer attention across files is associated
with insecure code
Unfocussed contribution is an indicator of how much attention a developer
focus on specific files being developed
A file has high unfocussed contribution when developers of a file are also
busy modified other files
High unfocussed contribution → more insecure code
The research team analyzed popular open source code repositories like
Chromium and Apache
DARPA-funded research
38. Strategies and mental models for improving attention and
focus
1. Planning your work
2. Breaking things down
3. Pomodoro technique
4. Maker vs manager schedule
5. Saying No
40. We will never win the race against the
technology
We just don’t know which technical skill will
be popular tomorrow
41. The only way to be in this race is by building
developers with an open and learning
mindset
42. Strategies and mental models for building a learning
organization
1. Building junior developers in-house
2. Understand your Circle of competence
3. The magic of Compounding
4. Learning from first principles
a. Validate your assumptions
5. Share what you learn
44. Bigger teams are correlated with less secure code
Team size is simply number of developers
The more developers that work on a file, the more likely it is to have security
weakness and vulnerabilities
In Linux kernel, source code files with changes from nine or more developers
were 16 times more likely to have a vulnerability
DARPA-funded research
45. Lots of editing of other’s code is associated with vulnerabilities
Interactive churn is the number of source code
lines that a developer modifies that were last
modified by another developer
Files with a known vulnerability in their history have
more interactive churn than files without a known
vulnerability
46. Smaller teams are more accountable and
productive -- Two Pizza Teams
47. Strategies and mental models for effective team work and
collaboration
● Creating “how we work” document. Describe social norms of the team
○ Structure of the document
■ Agile process
■ Internal team communication details
■ External team communication details
■ Logistics (meeting times, seating arrangements)
■ Roles and Responsibilities
■ Conflict Resolution (emotional safety, escalation)
● Psychological safe environment
○ Let people make mistake
○ Talk about your own mistakes before criticizing the other person
○ Become interested in others
○ Hanlon Razor
○ Don’t expect people to follow rules if you don’t define them clearly
51. Strategies and mental models for leadership
1. Do regular 1:1
a. Make the other person feel important
b. Let the other person do a great deal of the talking
c. Try honestly to see things from the other person's point of view
d. Begin with praise and honest appreciation
e. Have a structure to 1:1
f. Feedback loop
2. Find the right incentive