As If Sand Were Stone…

Part 1

Photo by Evgeny Nelmin on Unsplash

Preface is in concert encapsulates the essence of whole book and important milestones the readers would encounter in this voyage.

A good writer makes sure that it spends enough time in writing and editing the preface to make it as perfect as it humanely can to make the reader well aware of the context and texts to expect in the the first and the last part of the book, as it precedes the narration itself and serves as the explanation of the it’s point of view and the answer to the comments.

One can only commiserate with those readers who don’t perturb themselves and read the preface providently.

Photo Credit AZ Quotes

The question author poses is;

What precisely do we mean by “software engineering” ?

Photo by RepentAnd SeekChristJesus on Unsplash

“Software engineering,” however, sounds more serious, as if it implies the application of some theoretical knowledge to build something real and precise.

Mechanical engineers, civil engineers, aeronautical engineers, and
those in other engineering disciplines all practice engineering.

Why would Google have a unique perspective to add to the corpus of previous software engineering literature written over the past 50 years ?

The author gives following reasoning which in my opinion one could hardly contest;

Programming, on the whole, has traditionally not followed such rigorous practices. But, as software becomes more integrated into our lives, we must adopt and rely on more rigorous engineering methods.

So with this reasoning which is beautifully put in preface, one can expect that readers are going to get a bit more than they already know and it also creates a question what they do at current organisation is different from what Google does.

Photo by Júnior Ferreira on Unsplash

Can I pick something new and unique which can help me becoming a better programmer and software engineer.

  1. Culture
  2. Process
  3. Tools

There are 26 chapters in this book so even with TL;DRs It would be just impractical to cover all the learning hence I will be covering this in series of blogs on this topic and this is the first part of that series.

Thesis

Chapter 1 : Software Engineering

Photo Credit: quotesgram

TL;DR

  1. Software engineering” adds an extra dimension to “Programming”, programming is all about writing a code, and software engineering extends it by making it an art which needs to be cared , preserved and maintained to keep that art alive and flourishing till it completes it’s defined purpose and life span.
  2. Care and Love one has to show for a critical and long-lived piece of code has to be much more and refined than a trivial and short-lived code.
  3. Hyrum’s Law: with a sufficient number of users of an API, it does not
    matter what you promise in the contract: all observable behaviours of
    your system will be depended on by somebody.
  4. Repeated tasks should be scalable in terms of human input and there should be right policies to achieve desired scalability (at least linear)
  5. Be proactive and be careful about boiled-frog problems.
  6. Don’t do anything because you hear “Because I said so”.
  7. Don’t do few things on somebody’s whim and fancies, every action you do should be data driven.

Culture

Photo by Kyle Petzer on Unsplash

Chapter 2: How to Work Well on Teams

Three Pillars;

Pillar 1: Humility
You are not the centre of the universe (or your code!). You’re neither
omniscient nor infallible. You’re open to self-improvement.

TL;DR

  1. There is a trade-off of working in isolation and it’s important to understand it well.
  2. Communication is key to avoid conflicts, a lack of communication creates distrust and right and timely communication can go in long way in building the right culture and mutual trust within team.
  3. Understanding the team and organisation style is key to the success and culture fitment is mandatory to be successful.

Chapter 3: Knowledge Sharing

Photo by Ben White on Unsplash

TL;DR

  1. It’s important to focus on to ensure “Psychological Safety” for fostering knowledge sharing environment within team and organisation.
  2. Take one step at a time , write questions and write things which needs to be done as clearly as possible to leave nothing to imagination or suspicion.
  3. Encourage and reward those who take time to learn to broaden their perspective and eager to teach to others within team and organisation.
  4. No silver bullet strategy in knowledge sharing, keep innovating and keep the new thoughts flowing don’t create hurdles for innovation.

Chapter 4: Engineering for Equity

Photo by Rod Long on Unsplash

TL;DR

  1. Engineering bias is the default
  2. Diversity is necessary to design properly for a comprehensive user
    base.
  3. Inclusivity is critical in team to make it trult supportive environment of innovation and creativity.
  4. Product velocity is not the number of lines of code or features delivered . velocity must be evaluated against providing a product that is
    truly useful to all users. It’s better to slow down than to release a
    product that might cause harm to some users.

Chapter 5: How to Lead a Team

Photo by Matteo Vistocco on Unsplash

TL;DR

  1. Don’t “manage” in the traditional sense; focus on leadership, influence,
    and serving your team.
  2. Delegate where possible, don’t DIY (Do It Yourself).
  3. Pay particular attention to the focus, direction, and velocity of your
    team.
Photo by Reuben Juarez on Unsplash

Nothing is built on stone; All is built on sand, but we must build as if the sand were stone. — Jorge Luis Borges

Credit: Gaurav Madaan YouTube Channel

If you enjoyed this blog post, please clap 👏(as many times as you like) and follow Here and LinkedIn if you can.

Disclaimer:
This is a personal account. The opinions expressed here represent my own and not those of my employer — past, present or future.

Photo by Árpád Czapp on Unsplash

--

--

I love to write about Philosophy,Humanity,Music, Poems and Software Architecture. www.linkedin.com/in/santoshakhilesh

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store