Software Engineering at Google: Lessons Learned from Programming Over Time
Rate it:
Open Preview
1%
Flag icon
Nothing is built on stone; all is built on sand, but we must build as if the sand were stone. Jorge Luis Borges
1%
Flag icon
The job of a software engineer, or a software engineering leader, is to aim for sustainability and management of the scaling costs for the organization, the product, and the development workflow.
2%
Flag icon
keeping software maintainable for the long-term is a constant battle.
2%
Flag icon
With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
4%
Flag icon
Programming is the immediate act of producing code. Software engineering is the set of policies, practices, and tools that are necessary to make that code useful for as long as it needs to be used and allowing collaboration across a team.
5%
Flag icon
The Genius Myth is the tendency that we as humans need to ascribe the success of a team to a single person/leader.
5%
Flag icon
“Fail early, fail fast, fail often.”
6%
Flag icon
“Many eyes make all bugs shallow,”
6%
Flag icon
To repeat ourselves: you are not your code. Say that over and over.
7%
Flag icon
The more open you are to influence, the more you are able to influence; the more vulnerable you are, the stronger you appear.
8%
Flag icon
principle of “Chesterson’s fence”: before removing or changing something, first understand why it’s there.
13%
Flag icon
an engineering manager is responsible for the performance, productivity, and happiness of every person on their team — including their tech lead — while still making sure that the needs of the business are met by the product for which they are responsible.
14%
Flag icon
Traditional managers worry about how to get things done, whereas great managers worry about what things get done (and trust their team to figure out how to do it).
15%
Flag icon
Steve Jobs once said: “A people hire other A people; B people hire C people.”
16%
Flag icon
Be wary of assuming that people have no life outside of work — having unrealistic expectations about the amount of time people can put into their work will cause people to lose respect for you, or worse, to burn out.
17%
Flag icon
Dan claims you can increase intrinsic motivation by giving people three things: autonomy, mastery, and purpose.11
17%
Flag icon
person has autonomy when they have the ability to act on their own without someone micromanaging them.
17%
Flag icon
“the three Always of leadership”: Always Be Deciding, Always Be Leaving, Always Be Scaling.
18%
Flag icon
“Good, Fast, Cheap — pick two.”
18%
Flag icon
“failing fast and iterating.”
19%
Flag icon
Dwight D. Eisenhower who popularized this idea in a famous 1954 quote: I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent.
21%
Flag icon
A goal is a desired end result.
21%
Flag icon
A signal is how you might know that you’ve achieved the end result.
32%
Flag icon
The later in the development cycle a bug is caught, the more expensive it is;