Most real world software development practices are reactive, focus on near term features and small sub set of quality metrics like latency and throughput. More often than not, this is suboptimal and results in Low ROI on effort and change resistant software. In this talk, I present a multi-dimensional view of system development, which will serve as a reference to categorize challenges, benefits and nuances. What, why, how and more of System Development are explained using this model. In this talk, I will present learnings, and tradeoffs where the above principles were applied in Linkedin multi-products and elsewhere. It would be useful to engineers and managers involved | interested in development of non-trivial systems
6. • Odds(Tribal Knowledge being right && Scientific knowledge being
wrong) << 1
• Odds(Anecdotal knowledge being right && Scientific knowledge being
wrong) << 1
7. • “Software development can only be considered immature because of
how we use our experience, not because we lack experience.”–
Kevlin Henney
9. 1. array of numbers => time complexity : O(nlgn)
2. Array with k distinct values =>time complexity: O(n) two iterations
3. Array with 2 values => time complexity: O(n), 1 iteration
16. Complicated
• a complicated issue is one in which you can’t get a firm handle on the
parts and there are no rules, algorithms, or natural laws.
• "Things that are complicated have no such degree of order, control,
or predictability"
• A complicated thing is much more challenging--and different--than
the sum of its parts, because its parts can interact in unpredictable
ways.
17. Complex
• "the components can be separated and dealt with in a systematic
and logical way that relies on a set of rules or algorithms.”
• allows you to deal with it in a repeatable manner.
25. Tally Roman Hindu
Represent Zero N N Y
Suitable for small numbers Y Y Y
Suitable for Large Numbers N Some What Y
Conducive to basic
operations
N N Y
26. • Right Fit
• Simplicity won’t suffice
• Simplicity isn’t an option for long
28. • Right Fit
• Simplicity won’t suffice
• Simplicity isn’t an option for long
• Complicatedness isn’t the best option
29. • “We now know that it was as early as the third century that
mathematicians in India planted the seed of the idea that would later
become so fundamental to the modern world. ”
• “According to Nils-Bertil Wallin of YaleGlobal, by 773, zero reached
Baghdad where it became part of the Arabic number system, which is
based upon the Indian system.”
30. • Right Fit
• Simplicity won’t suffice
• Simplicity isn’t an option for long
• Complicatedness isn’t an option (for humans)
• Moving from complicated to complex takes time and effort
31. “Medieval religious leaders in Europe did not support the use of zero,
van der Hoek said. They saw it as satanic. "God was in everything that
was. Everything that was not was of the devil," she said.
Wallin points out that the Italian government was suspicious of
Arabic numbers and outlawed the use of zero. ”
32. • Right Fit
• Simplicity won’t suffice
• Simplicity isn’t an option for long
• Complicatedness isn’t an option (for humans)
• Moving from complicated to complex takes time and effort
• ^^ will be met with resistance
34. • Right Fit
• Simplicity won’t suffice
• Simplicity isn’t an option for long
• Complicatedness isn’t an option (for humans)
• Moving from complicated to complex takes time and effort
• ^^ will be met with resistance
• ‘view’ of simplicity is provided by a complex system
35.
36.
37.
38.
39.
40.
41.
42. Dimension Benefits
Skill Score runs
Stamina will bat for long
Flexibility Avoid/reduce injuries
Strength score big hits
Diet recover in time, build strength, provide
nutrition
Mental Strength deal with challenges
Speed Convert 1s to 2s, 2s to 3s, …
49. • Challenges are often multi-dimensional
• Multi-D model can represent challenges, capabilities, mechanisms to
improve capabilities
• Capabilities in one dimension can’t satisfy inadequacies in another
55. • Challenges are often multi-dimensional
• Multi-D model can represent challenges, capabilities, mechanisms to
improve capabilities
• Capabilities in one dimension can’t satisfy inadequacies in another
• Mechanisms can influence | alleviate multiple dimensions
59. • “Sneak peek into my morning cardio session. 15 minutes on the bike
at level 3 maintaining an rpm of 120 throughout then straight onto
the treadmill for 10 strides of 20 seconds each and step on the sides
for 10 seconds rest in between. 10 of these back to back at a speed of
19 km/hr and level 1 on incline. All of this using the altitude training
mask which makes it twice as hard. Train hard train smart. Wish
everyone a active and healthy day.”
60.
61.
62.
63.
64. • World isn’t simple, appears complicated but usually is complex.
65. perspective
• programming properly should be regarded as an activity by which the
programmers form or achieve a certain kind of insight, a theory, of
the matters at hand. This suggestion is in contrast to what appears to
be a more common notion, that programming should be regarded as
a production of a program and certain other texts.” - Peter Naur
66. perspective
• programming properly should be regarded as an activity by which the
programmers form or achieve a certain kind of insight, a theory, of
the matters at hand. This suggestion is in contrast to what appears to
be a more common notion, that programming should be regarded as
a production of a program and certain other texts.” -Peter Naur
67.
68. Model building
• Order, dependencies, ‘instance of’, inheritance, happens before,
containment, occurs-at, concurrent with, atleast-once, atmost-once,
exactly-once, cardinality
103. • Code is a medium of conveying knowledge between people.
104. knuth
• The Art of Computer Programming.
• “The main intention behind this approach was to treat a program as
literature understandable to human beings”
108. Theory vs practice
• Practice without theory is useless
• https://jamesclear.com/deliberate-practice-theory
• You think you know theory, until you practice
112. Broken window theory
• is a criminological theory that states that visible signs of crime, anti-
social behavior, and civil disorder create an urban environment that
encourages further crime and disorder, including serious crimes.
• The theory suggests that policing methods that target minor crimes
such as vandalism, public drinking, and fare evasion help to create an
atmosphere of order and lawfulness, thereby preventing more
serious crimes.