![]() ![]() This will lead to local maxima instead of global maximum. You need to create a culture of learning first, as otherwise people wont feel safe to admit they dont know something.The key to learning from your mistakes is a blameless post mortem.Ī good post mortem should contain a list of what was learned and what will change because of the experience.If you arent failing now and again, you’re not taking enough risk. You believe others are competent and will do the right thing.You treat them kindly and appreciaite their abilities and celebrate their accomplishments Respect: you care about those you work with. ![]() Humility: you’re not the centre of the universe and are open to self improvement.3 pillars of social interaction: humility, respect and trust.Software engineering is a team endeavour.Allow people to create a way they can be uninterrupted.Working with others directly increases the collective wisdom around a problem.You should have good documentation and atleast one primary and secondary owner for each area you’re responsible for.Sharing early reduces the bus factor (the amount of people who need to get hit by a bus before your project is completely doomed).The more feedback you solicit early on when working on something new, the lower the risk of the project.Insecurity is super common in engineers, we dont want people to see what we have done until its finished as they may judge us (or steal it).What will make or break your career is how you collaborate with others.The majority of work at google doesn’t need a genius, but it does need social skills.The Genius myth is where we attribute a great feat of a team to an individual.Time doesn’t only trigger change in technical dependencies but in data used to drive decisions too - dont be afraid to change your mind.If there isnt data to drive a decision, there is likely still precedent, evidence and arguement.This can have huge productivity costs, in the region of 10-20% Dont underestimate keeping engineers happy.Should trade off: financial cost, resource cost,personnel cost,transaction cost, opportunity cost and societal costs. Should never say " do it this way because I said so.The earlier in the development process an issue is discovered, the cheaper it is to fix.The more frequently you change your infrastructure, the easier it becomes to do so.If you have 100 engineers writing go, a single go expert answering questions will soon lead to 100 engineers writing expert go. If you liked it you should have put a CI test on it.If a product person experiences outages or other problems as part of an infrastructure change but the problem wasnt surfaced by CI tests, then it is not the problem of the infrastructure change.When software engineering, it’s an accusation. When programming, clever is a compliment.Hyrums law: with a sufficient number of users of an api, it does not matter what you promise in the contract, all observable system behaviours will be depended on by somebody.Software engineering is the mutliperson development of multi version programs.Software engineering is programming integrated over time.There was some really great content in there, so I took chapter by chapter notes which you can find below. I recently read through Software Engineering At Google:Lessons Learnt over Time.I expected it to be a Google sales pitch but to my surprise it is one of the best Software Engineering books I have read. My Notes from Software Engineering at Google: Lessons Learned from Programming Over Time ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |