Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Software Engineering at Google: Lessons Learned from Programming Over Time


Titus Winters - 2020
    With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners.Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time.You'll learn:Fundamental differences between software engineering and programmingHow an organization effectively manages a living codebase and efficiently responds to inevitable changeWhy culture (and recognizing it) is important, and how processes, practices, and tools come into play

Ship It!


Jared Richardson - 2005
    You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world.Aimed at beginning to intermediate programmers, Ship It! will show you:Which tools help, and which don't How to keep a project moving Approaches to scheduling that work How to build developers as well as product What's normal on a project, and what's not How to manage managers, end-users and sponsors Danger signs and how to fix them Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren't able to use even these simple, well-accepted practices effectively. This book will help you get started.Ship It! begins by introducing the common technical infrastructure that every project needs to get the job done. Readers can choose from a variety of recommended technologies according to their skills and budgets. The next sections outline the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.Finally, and most importantly, Ship It! presents common problems that teams face, then offers real-world advice on how to solve them.

Go in Action


William Kennedy - 2014
    The book begins by introducing the unique features and concepts of Go. Then, you'll get hands-on experience writing real-world applications including websites and network servers, as well as techniques to manipulate and convert data at speeds that will make your friends jealous.

Clean Agile: Back to Basics


Robert C. Martin - 2019
    Martin ("Uncle Bob") reintroduces agile values and principles for a new generation of software developers. In this eagerly-awaited book, the best-selling author of The Clean Coder shows how to bring unprecedented levels of professionalism and discipline to agile development -- and thereby write far more effective, successful software. As with his other books, Martin's Clean Agile: Back to Basics doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Writing in the agile context, Martin offers direct, no-nonsense answers to crucial questions like:How and why did Agile begin? What are the costs and benefits of Agile? What are the most effective practices of Agile Development? How should an Agile team be organized? What roles do programmers, testers, and managers play in an Agile team? What is the role of the Agile Coach? What about Agile for large projects? What kinds of projects benefit from Agile? Clean Agile: Back to Basics is essential reading for programmers, managers, testers, project managers and every software professional called upon to lead or participate in an agile project.

The Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence


Ralph Kimball - 2010
    Recognized and respected throughout the world as the most influential leaders in the data warehousing industry, Ralph Kimball and the Kimball Group have written articles covering more than 250 topics that define the field of data warehousing. For the first time, the Kimball Group's incomparable advice, design tips, and best practices have been gathered in this remarkable collection of articles, which spans a decade of data warehousing innovation.Each group of articles is introduced with original commentaries that explain their role in the overall lifecycle methodology developed by the Kimball Group. These practical, hands-on articles are fully updated to reflect current practices and terminology and cover the complete lifecycle--including project planning, requirements gathering, dimensional modeling, ETL, and business intelligence and analytics.This easily referenced collection is nothing less than vital if you are involved with data warehousing or business intelligence in any capacity.

Ahead in the Cloud: Best Practices for Navigating the Future of Enterprise IT


Stephen Orban - 2018
    It has made countless new businesses possible and presents a massive opportunity for large enterprises to innovate like startups and retire decades of technical debt. But making the most of the cloud requires much more from enterprises than just a technology change. Stephen Orban led Dow Jones’s journey toward digital agility as their CIO and now leads AWS’s Enterprise Strategy function, where he helps leaders from the largest companies in the world transform their businesses. As he demonstrates in this book, enterprises must re-train their people, evolve their processes, and transform their cultures as they move to the cloud. By bringing together his experiences and those of a number of business leaders, Orban shines a light on what works, what doesn’t, and how enterprises can transform themselves using the cloud.

Frontend Architecture for Design Systems: A Modern Blueprint for Scalable and Sustainable Websites


Micah Godbolt - 2015
    This practical book takes experienced web developers through the new discipline of frontend architecture, including the latest tools, standards, and best practices that have elevated frontend web development to an entirely new level.Using real-world examples, case studies, and practical tips and tricks throughout, author Micah Godbolt introduces you to the four pillars of frontend architecture. He also provides compelling arguments for developers who want to embrace the mantle of frontend architect and fight to make it a first-class citizen in their next project.The four pillars include:Code: how to approach the HTML, CSS, and JavaScript of a design systemProcess: tools and processes for creating an efficient and error-proof workflowTesting: creating a stable foundation on which to build your siteDocumentation: tools for writing documentation while the work is in progress

The Myths of Innovation


Scott Berkun - 2007
    We depend more than we realize on wishful thinking and romanticized ideas of history. In the new paperback edition of this fascinating book, a book that has appeared on MSNBC, CNBC, Slashdot.org, Lifehacker.com and in The New York Times, bestselling author Scott Berkun pulls the best lessons from the history of innovation, including the recent software and web age, to reveal powerful and suprising truths about how ideas become successful innovations -- truths people can easily apply to the challenges of today. Through his entertaining and insightful explanations of the inherent patterns in how Einstein’s discovered E=mc2 or Tim Berner Lee’s developed the idea of the world wide web, you will see how to develop existing knowledge into new innovations.Each entertaining chapter centers on breaking apart a powerful myth, popular in the business world despite it's lack of substance. Through Berkun's extensive research into the truth about innovations in technology, business and science, you’ll learn lessons from the expensive failures and dramatic successes of innovations past, and understand how innovators achieved what they did -- and what you need to do to be an innovator yourself. You'll discover:Why problems are more important than solutionsHow the good innovation is the enemy of the greatWhy children are more creative than your co-workersWhy epiphanies and breakthroughs always take timeHow all stories of innovations are distorted by the history effectHow to overcome people’s resistance to new ideasWhy the best idea doesn’t often winThe paperback edition includes four new chapters, focused on appling the lessons from the original book, and helping you develop your skills in creative thinking, pitching ideas, and staying motivated."For centuries before Google, MIT, and IDEO, modern hotbeds of innovation, we struggled to explain any kind of creation, from the universe itself to the multitudes of ideas around us. While we can make atomic bombs, and dry-clean silk ties, we still don’t have satisfying answers for simple questions like: Where do songs come from? Are there an infinite variety of possible kinds of cheese? How did Shakespeare and Stephen King invent so much, while we’re satisfied watching sitcom reruns? Our popular answers have been unconvincing, enabling misleading, fantasy-laden myths to grow strong." -- Scott Berkun, from the text"Berkun sets us free to change the world." -- Guy Kawasaki, author of Art of the StartScott was a manager at Microsoft from 1994-2003, on projects including v1-5 (not 6) of Internet Explorer. He is the author of three bestselling books, Making Things Happen, The Myths of Innovation and Confessions of a Public Speaker. He works full time as a writer and speaker, and his work has appeared in The New York Times, Forbes magazine, The Economist, The Washington Post, Wired magazine, National Public Radio and other media. He regularly contributes to Harvard Business Review and Bloomberg Businessweek, has taught creative thinking at the University of Washington, and has appeared as an innovation and management expert on MSNBC and on CNBC. He writes frequently on innovation and creative thinking at his blog: scottberkun.com and tweets at @berkun.

Building a DevOps Culture


Mandi Walls - 2013
    But, as Mandi Walls explains in this Velocity report, DevOps is really about changing company culture—replacing traditional development and operations silos with collaborative teams of people from both camps. The DevOps movement has produced some efficient teams turning out better products faster. The tough part is initiating the change. This report outlines strategies for managers looking to go beyond tools to build a DevOps culture among their technical staff. Topics include: Documenting reasons for changing to DevOps before you commit Defining meaningful and achievable goals Finding a technical leader to be an evangelist, tools and process expert, and shepherd Starting with a non-critical but substantial pilot project Facilitating open communication among developers, QA engineers, marketers, and other professionals Realigning your team’s responsibilities and incentives Learning when to mediate disagreements and conflicts Download this free report and learn how to the DevOps approach can help you create a supportive team environment built on communication, respect, and trust. Mandi Walls is a Senior Consultant with Opscode.

Pro Git


Scott Chacon - 2009
    It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow.

Practical Object Oriented Design in Ruby


Sandi Metz - 2012
    The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code

Red Zone: China's Challenge and Australia's Future


Peter Hartcher - 2021
    

Soft Skills: The Software Developer's Life Manual


John Z. Sonmez - 2014
    In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement