Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise


Scott W. Ambler - 2012
    Mainstream agile approaches that are indeed suitable for small projects require significant tailoring for larger, complex enterprise projects. In "Disciplined Agile Delivery," Scott W. Ambler and Mark Lines introduce IBM's breakthrough Disciplined Agile Delivery (DAD) process framework, which describes how to do this tailoring. DAD applies a more disciplined approach to agile development by acknowledging and dealing with the realities and complexities of a portfolio of interdependent program initiatives. Ambler and Lines show how to extend Scrum with supplementary agile and lean strategies from Agile Modeling (AM), Extreme Programming (XP), Kanban, Unified Process (UP), and other proven methods to provide a hybrid approach that is adaptable to your organization's unique needs. They candidly describe what practices work best, why they work, what the trade-offs are, and when to consider alternatives, all within the context of your situation. "Disciplined Agile Delivery "addresses agile practices across the entire lifecycle, from requirements, architecture, and development to delivery and governance. The authors show how these best-practice techniques fit together in an end-to-end process for successfully delivering large, complex systems--from project initiation through delivery. Coverage includesScaling agile for mission-critical enterprise endeavorsAvoiding mistakes that drive poorly run agile projects to chaosEffectively initiating an agile projectTransitioning as an individual to agileIncrementally building consumable solutionsDeploying agile solutions into complex production environmentsLeveraging DevOps, architecture, and other enterprise disciplinesAdapting your governance strategy for agile projects Based on facts, research, and extensive experience, this book will be an indispensable resource for every enterprise software leader and practitioner--whether they're seeking to optimize their existing agile/Scrum process or improve the agility of an iterative process.

Code Simplicity: The Fundamentals of Software


Max Kanat-Alexander - 2012
    This book contains the fundamental laws of software development, the primary pieces of understanding that make the difference between a mid-level/junior programmer and the high-level senior software engineer. The book exists to help all programmers understand the process of writing software, on a very fundamental level that can be applied to any programming language or project, from here into eternity. Code Simplicity is also written in such a way that even non-technical managers of software teams can gain an understanding of what the “right way” and the “wrong way” is (and why they are right and wrong) when it comes to software design. The focus of the book is primarily on “software design,” the process of creating a plan for a software project and making technical decisions about the pattern and structure of a system.

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.

The Toyota Way: 14 Management Principles from the World's Greatest Manufacturer


Jeffrey K. Liker - 2003
    Less inventory. The highest quality cars with the fewest defects of any competing manufacturer. In factories around the globe, Toyota consistently raises the bar for manufacturing, product development, and process excellence. The result is an amazing business success story: steadily taking market share from price-cutting competitors, earning far more profit than any other automaker, and winning the praise of business leaders worldwide.The Toyota Way reveals the management principles behind Toyota's worldwide reputation for quality and reliability. Dr. Jeffrey Liker, a renowned authority on Toyota's Lean methods, explains how you can adopt these principles--known as the "Toyota Production System" or "Lean Production"--to improve the speed of your business processes, improve product and service quality, and cut costs, no matter what your industry.Drawing on his extensive research on Toyota, Dr. Liker shares his insights into the foundational principles at work in the Toyota culture. He explains how the Toyota Production System evolved as a new paradigm of manufacturing excellence, transforming businesses across industries. You'll learn how Toyota fosters employee involvement at all levels, discover the difference between traditional process improvement and Toyota's Lean improvement, and learn why companies often think they are Lean--but aren't.

Eloquent JavaScript: A Modern Introduction to Programming


Marijn Haverbeke - 2010
    I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!" —Brendan Eich, creator of JavaScriptJavaScript is the language of the Web, and it's at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible and complex language, capable of much more than the showy tricks most programmers use it for.Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that's elegant and effective. You'll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you'll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.Along the way you'll learn to:Master basic programming techniques and best practices Harness the power of functional and object-oriented programming Use regular expressions to quickly parse and manipulate strings Gracefully deal with errors and browser incompatibilities Handle browser events and alter the DOM structure Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People


Aditya Y. Bhargava - 2015
    The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.

Scrum Mastery: From Good To Great Servant-Leadership


Geoff Watts - 2013
    But being a great ScrumMaster, one who truly embodies the principles of servant-leadership and helps move a team to the high performance levels possible with Scrum, is much harder and much more elusive. In his over ten years of coaching numerous Scrum teams, the highly-respected and experienced Scrum coach Geoff Watts has identified patterns that separate a good ScrumMaster from a great one. In this book, he not only illustrates these patterns through stories of his own experiences and those of the many Scrum teams he has encountered but offers practical guidance for you on your own path to greatness.In this book you will learn:The skills and characteristics of great ScrumMastersHow to generate, maintain and increase engagement from the teamHow to increase the effectiveness of the Scrum meetings, such as retrospectives and daily scrums.How to foster a more creative and collaborative teamHow to increase the performance of the teamHow to know when you are a successful ScrumMaster\Scrum Mastery is for practicing ScrumMasters who want to develop themselves into a great servant-leader capable of taking their teams beyond simple process compliance.Comments on the bookMike Cohn, in his foreword for the book, said:"Most books rehash well-trod territory and I don’t finish them any wiser. I am positive I will be referring back to this book for many years" Roman Pichler, author of Agile Product Management with Scrum: Creating Products That Customers Love said:"I am thoroughly impressed with how comprehensive and well-written the book is. It will be indispensable for many people"Jean Tabaka, Agile Fellow, Rally Software:"Geoff brings us a personal and inspired peak into what truly moves us from good to great: great in how we serve; great in how we lead; great in how we create mastery in our teams and organizations; and, great in how we recognize the impediments to our own growth to greatness. Scrum mastery is a skill that can be honed and Geoff gives us rich tools to sharpen our craft."

The Art of Computer Programming, Volume 1: Fundamental Algorithms


Donald Ervin Knuth - 1973
     -Byte, September 1995 I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up. -Charles Long If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing. -Bill Gates It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. -Jonathan Laventhol This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org

Software Architecture in Practice


Len Bass - 2003
    Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization's business strategy.Drawing on their own extensive experience, the authors cover the essential technical topics for designing, specifying, and validating a system. They also emphasize the importance of the business context in which large systems are designed. Their aim is to present software architecture in a real-world setting, reflecting both the opportunities and constraints that companies encounter. To that end, case studies that describe successful architectures illustrate key points of both technical and organizational discussions.Topics new to this edition include: Architecture design and analysis, including the Architecture Tradeoff Analysis Method (ATAM) Capturing quality requirements and achieving them through quality scenarios and tactics Using architecture reconstruction to recover undocumented architectures Documenting architectures using the Unified Modeling Language (UML) New case studies, including Web-based examples and a wireless Enterprise JavaBeans™ (EJB) system designed to support wearable computers The financial aspects of architectures, including use of the Cost Benefit Analysis Method (CBAM) to make decisions If you design, develop, or manage the building of large software systems (or plan to do so), or if you are interested in acquiring such systems for your corporation or government agency, use Software Architecture in Practice, Second Edition, to get up to speed on the current state of software architecture.

The Retrospective Handbook: A guide for agile teams


Patrick Kua - 2012
    Do you feel like you could be getting more out of your retrospectives and fuelling continuous improvement in your teams? You may already find retrospectives valuable, but suspect there are ways of making them better.This book condenses down eight years of experience working with the retrospective practice within the context of real agile teams. It offers you practice advice on how to make your retrospectives even more effective including topics such as: Best methods to prepare for a retrospective Picking just the right materials Facilitating retrospectives with ease Dealing with common retrospective smells Retrospectives in different contexts including distributed, large and small groups A checklist for preparation Ensuring retrospectives result in change

Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale


Neha Narkhede - 2017
    And how to move all of this data becomes nearly as important as the data itself. If you� re an application architect, developer, or production engineer new to Apache Kafka, this practical guide shows you how to use this open source streaming platform to handle real-time data feeds.Engineers from Confluent and LinkedIn who are responsible for developing Kafka explain how to deploy production Kafka clusters, write reliable event-driven microservices, and build scalable stream-processing applications with this platform. Through detailed examples, you� ll learn Kafka� s design principles, reliability guarantees, key APIs, and architecture details, including the replication protocol, the controller, and the storage layer.Understand publish-subscribe messaging and how it fits in the big data ecosystem.Explore Kafka producers and consumers for writing and reading messagesUnderstand Kafka patterns and use-case requirements to ensure reliable data deliveryGet best practices for building data pipelines and applications with KafkaManage Kafka in production, and learn to perform monitoring, tuning, and maintenance tasksLearn the most critical metrics among Kafka� s operational measurementsExplore how Kafka� s stream delivery capabilities make it a perfect source for stream processing systems

Scrum Shortcuts Without Cutting Corners: Agile Tactics, Tools, & Tips


Ilan Goldstein - 2013
    But when new Scrum practitioners attempt to apply Scrum theory and high-level approaches in actual projects, they often find it surprisingly difficult. In Scrum Shortcuts without Cutting Corners, Scrum expert Ilan Goldstein helps you translate the Scrum framework into reality to meet the Scrum challenges your formal training never warned you about. Drawing on his extensive agile experience in a wide range of projects and environments, Goldstein presents thirty proven, flexible shortcuts for optimizing Scrum processes, actions, and outcomes. Each shortcut walks you through applying a Scrum approach to achieve a tangible output. These easy-to-digest, actionable patterns address a broad range of topics including getting started, quality and metrics, team members and roles, managing stakeholders, estimation, continuous improvement and much more. Whatever your role, Scrum Shortcuts without Cutting Corners will help you take your Scrum skills to the next level and achieve better results in any project you participate in.

The Twelve-Factor App


Adam Wiggins - 2012
    The twelve-factor app is a methodology for building software-as-a-service apps that: - Use declarative formats for setup automation, to minimize time and cost for new developers joining the project; - Have a clean contract with the underlying operating system, offering maximum portability between execution environments; - Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration; - Minimize divergence between development and production, enabling continuous deployment for maximum agility; - And can scale up without significant changes to tooling, architecture, or development practices.The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

Introduction to Algorithms


Thomas H. Cormen - 1989
    Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

Thinking in Systems: A Primer


Donella H. Meadows - 2008
    Edited by the Sustainability Institute’s Diana Wright, this essential primer brings systems thinking out of the realm of computers and equations and into the tangible world, showing readers how to develop the systems-thinking skills that thought leaders across the globe consider critical for 21st-century life.Some of the biggest problems facing the world—war, hunger, poverty, and environmental degradation—are essentially system failures. They cannot be solved by fixing one piece in isolation from the others, because even seemingly minor details have enormous power to undermine the best efforts of too-narrow thinking.While readers will learn the conceptual tools and methods of systems thinking, the heart of the book is grander than methodology. Donella Meadows was known as much for nurturing positive outcomes as she was for delving into the science behind global dilemmas. She reminds readers to pay attention to what is important, not just what is quantifiable, to stay humble, and to stay a learner.In a world growing ever more complicated, crowded, and interdependent, Thinking in Systems helps readers avoid confusion and helplessness, the first step toward finding proactive and effective solutions.