Cargando…

Software engineering at Google : lessons learned from programming over time /

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a livin...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autores principales: Winters, Titus (Autor), Manshreck, Tom (Autor), Wright, Hyrum (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Sebastopol, CA : O'Reilly Media, [2020]
Edición:First edition.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)

MARC

LEADER 00000cam a2200000 i 4500
001 OR_on1144086840
003 OCoLC
005 20231017213018.0
006 m o d
007 cr mnu||||||||
008 200311t20202020caua ob 001 0 eng d
040 |a UMI  |b eng  |e rda  |e pn  |c UMI  |d OCLCF  |d WAU  |d EBLCP  |d UAB  |d YDX  |d TEFOD  |d UKAHL  |d FGM  |d N$T  |d BNG  |d K6U  |d NWQ  |d OCLCO  |d LVT  |d OCLCQ  |d KSU  |d OCLCQ  |d ORMDA 
019 |a 1142780948  |a 1143489483  |a 1143618639  |a 1143639030  |a 1149422494  |a 1302274098 
020 |a 9781492082743 
020 |a 1492082740 
020 |a 9781492082767  |q (electronic bk.) 
020 |a 1492082767  |q (electronic bk.) 
020 |z 9781492082798 
020 |z 1492082791 
020 |z 9781492082781 
029 1 |a CHSLU  |b 001392552 
029 1 |a CHVBK  |b 586911022 
029 1 |a AU@  |b 000071521007 
035 |a (OCoLC)1144086840  |z (OCoLC)1142780948  |z (OCoLC)1143489483  |z (OCoLC)1143618639  |z (OCoLC)1143639030  |z (OCoLC)1149422494  |z (OCoLC)1302274098 
037 |a CL0501000103  |b Safari Books Online 
037 |a 9781492082781  |b O'Reilly Media 
050 4 |a TS173 
082 0 4 |a 005.1  |2 23 
049 |a UAMI 
100 1 |a Winters, Titus,  |e author. 
245 1 0 |a Software engineering at Google :  |b lessons learned from programming over time /  |c Titus Winters, Tom Manshreck, and Hyrum Wright. 
250 |a First edition. 
264 1 |a Sebastopol, CA :  |b O'Reilly Media,  |c [2020] 
264 4 |c Ã2020 
300 |a 1 online resource (xxv, 571 pages) :  |b illustrations (some color) 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
504 |a Includes bibliographical references and index. 
588 0 |a Online resource; title from PDF page (Safari, viewed March 9, 2020). 
505 0 |a Intro -- Foreword -- Preface -- Programming Over Time -- Google's Perspective -- What This Book Isn't -- Parting Remarks -- Conventions Used in This Book -- O'Reilly Online Learning -- How to Contact Us -- Acknowledgments -- I. Thesis -- 1. What Is Software Engineering? -- Time and Change -- Hyrum's Law -- Example: Hash Ordering -- Why Not Just Aim for "Nothing Changes"? -- Scale and Efficiency -- Policies That Don't Scale -- Policies That Scale Well -- Example: Compiler Upgrade -- Shifting Left -- Trade-offs and Costs -- Example: Markers -- Inputs to Decision Making 
505 8 |a Example: Distributed Builds -- Example: Deciding Between Time and Scale -- Revisiting Decisions, Making Mistakes -- Software Engineering Versus Programming -- Conclusion -- TL -- DRs -- II. Culture -- 2. How to Work Well on Teams -- Help Me Hide My Code -- The Genius Myth -- Hiding Considered Harmful -- Early Detection -- The Bus Factor -- Pace of Progress -- In Short, Don't Hide -- It's All About the Team -- The Three Pillars of Social Interaction -- Why Do These Pillars Matter? -- Humility, Respect, and Trust in Practice -- Lose the ego -- Learn to give and take criticism 
505 8 |a Fail fast and iterate -- Blameless Post-Mortem Culture -- Learn patience -- Be open to influence -- Being Googley -- Conclusion -- TL -- DRs -- 3. Knowledge Sharing -- Challenges to Learning -- Philosophy -- Setting the Stage: Psychological Safety -- Mentorship -- Psychological Safety in Large Groups -- Growing Your Knowledge -- Ask Questions -- Understand Context -- Scaling Your Questions: Ask the Community -- Group Chats -- Mailing Lists -- YAQS: Question-and-Answer Platform -- Scaling Your Knowledge: You Always Have Something to Teach -- Office Hours -- Tech Talks and Classes -- Documentation 
505 8 |a Updating documentation -- Creating documentation -- Promoting documentation -- Code -- Scaling Your Organization's Knowledge -- Cultivating a Knowledge-Sharing Culture -- Respect -- Incentives and recognition -- Establishing Canonical Sources of Information -- Developer guides -- go/ links -- Codelabs -- Static analysis -- Staying in the Loop -- Newsletters -- Communities -- Readability: Standardized Mentorship Through Code Review -- What Is the Readability Process? -- Why Have This Process? -- Conclusion -- TL -- DRs -- 4. Engineering for Equity -- Bias Is the Default 
505 8 |a Understanding the Need for Diversity -- Building Multicultural Capacity -- Making Diversity Actionable -- Reject Singular Approaches -- Challenge Established Processes -- Values Versus Outcomes -- Stay Curious, Push Forward -- Conclusion -- TL -- DRs -- 5. How to Lead a Team -- Managers and Tech Leads (and Both) -- The Engineering Manager -- The Tech Lead -- The Tech Lead Manager -- Moving from an Individual Contributor Role to a Leadership Role -- The Only Thing to Fear Is ... Well, Everything -- Servant Leadership -- The Engineering Manager -- Manager Is a Four-Letter Word -- Antipatterns -- Positive Patterns -- The Unexpected Question -- Other Tips and Tricks -- People Are Like Plants -- Conclusion -- TL;DRs -- 6. Leading at Scale -- 7. Measuring Engineering Productivity -- III. Processes -- 8. Style Guides and Rules -- 9. Code Review -- 10. Documentation -- 11. Testing Overview -- 12. Unit Testing -- 13. Test Doubles -- 14. Larger Testing -- 15. Deprecation -- IV. Tools -- 16. Version Control and Branch Management -- 17. Code Search -- 18. Build Systems and Build Philosophy -- 19. Critique: Google's Code Review Tool -- 20. Static Analysis -- 21. Dependency Management -- 22. Large-Scale Changes -- 23. Continuous Integration -- 24. Continuous Delivery -- 25. Compute as a Service -- V. Conclusion -- Index. 
520 |a Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world's leading practitioners construct and maintain software. This book covers Google's unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. You'll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions. 
590 |a O'Reilly  |b O'Reilly Online Learning: Academic/Public Library Edition 
610 2 0 |a Google (Firm) 
610 2 7 |a Google (Firm)  |2 fast  |0 (OCoLC)fst00759798 
650 0 |a Software engineering  |x Management. 
650 0 |a Computer software  |x Development. 
650 7 |a Computer software  |x Development.  |2 fast  |0 (OCoLC)fst00872537 
650 7 |a Software engineering  |x Management.  |2 fast  |0 (OCoLC)fst01124190 
700 1 |a Manshreck, Tom,  |e author. 
700 1 |a Wright, Hyrum,  |e author. 
776 0 8 |i Print version:  |a Winters, Titus.  |t Software engineering at Google.  |b First edition.  |d Sebastopol, CA : O'Reilly Media, 2020  |z 1492082791  |w (OCoLC)1125267571 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781492082781/?ar  |z Texto completo (Requiere registro previo con correo institucional) 
938 |a Askews and Holts Library Services  |b ASKH  |n AH37294795 
938 |a EBSCOhost  |b EBSC  |n 2381728 
938 |a YBP Library Services  |b YANK  |n 16672967 
938 |a YBP Library Services  |b YANK  |n 301130389 
994 |a 92  |b IZTAP