description: software development practice based on frequent submission of granular changes
104 results
by Alan Berg · 15 Mar 2012 · 372pp · 67,140 words
Jenkins Continuous Integration Cookbook * * * Jenkins Continuous Integration Cookbook Copyright © 2012 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any
…
this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access. Preface Jenkins is a Java-based Continuous Integration (CI) server that supports the discovery of defects early in the software cycle. Thanks to over 400 plugins, Jenkins communicates with many types of systems
…
also appear in the naming conventions, documentation, how the software is designed, build scripts, the process of deploying the software to servers, and so on. Continuous integration forces the defects to emerge early, rather than waiting for software to be fully produced. If defects are caught in the later stages of the
…
, you will need to create an account at the following URL: https://wiki.jenkins-ci.org/display/JENKINS/Issue+Tracking Using a sacrificial Jenkins instance Continuous Integration (CI) servers are critical in the creation of deterministic release cycles. Any long-term instability in the CI server will reflect in the milestones of
…
-built help. See also Global modifications of Jobs with Groovy Scripting global build reports Global modifications of Jobs with Groovy Jenkins is not only a continuous integration server but also a rich framework with an exposed internal structure available from within the script console. You can programmatically iterate through the Jobs, plugins
…
are more than 400. It is likely that there are plugins already available that meet or nearly meet your needs. Jenkins is not only a Continuous Integration Server but also a platform to create extra functionality. Once a few concepts are learned, a programmer can adapt the available plugins to his/her
by Steve McConnell · 8 Jun 2004 · 1,758pp · 342,766 words
of this discussion is adapted from Chapter 18 of Rapid Development (McConnell 1996). If you've read that discussion, you might skip ahead to the "Continuous Integration" section. This simple process produces several significant benefits. It reduces the risk of low quality, which is a risk related to the risk of unsuccessful
…
projects used daily builds at either the beginning or middle of their projects (Cusumano et al. 2003), so this represents a significant opportunity for improvement. Continuous Integration Some software writers have taken daily builds as a jumping-off point and recommend integrating continuously (Beck 2000). Most of the published references to
…
continuous integration use the word "continuous" to mean "at least daily" (Beck 2000), which I think is reasonable. But I occasionally encounter people who take the word "
…
continuous" literally. They aim to integrate each change with the latest build every couple of hours. For most projects, I think literal continuous integration is too much of a good thing. In my free time, I operate a discussion group consisting of the top technical executives from companies like
…
Amazon.com, Boeing, Expedia, Microsoft, Nordstrom, and other Seattle-area companies. In a poll of these top technical executives, none of them thought that continuous integration was superior to daily integration. On mediumsized and large projects, there is value in letting the code get out of sync for short periods. Developers
…
-Level Refactorings, System-Level Refactorings, Refactoring Strategies, Performance, Performance, Recoding in a Low-Level Language, Recoding in a Low-Level Language, Machine Configurations, Backup Plan, Continuous Integration, Continuous Integration, Additional Resources, Laying Out Files and Programs, Laying Out Files and Programs, Laying Out Files and Programs, Laying Out Files and Programs, Laying Out Files
…
of Programming into a Language control structures, Other Kinds of Complexity, Laying Out Files and Programs, Programming Style as Documentation daily build and smoke tests, Continuous Integration data organization, Programming Style as Documentation data types, Guidelines for Creating Your Own Types debugging, Debuggers defects, General Procedure for an Inspection, Debuggers defensive programming
…
and Programs goto statements, gotos if statements, Tips for Using case Statements inheritance, Beyond Classes: Packages initialization, Using Each Variable for Exactly One Purpose integration, Continuous Integration interfaces, System-Level Refactorings layout, Laying Out Files and Programs loops, Correspondence Between Loops and Arrays names, Kinds of Names to Avoid, Programming Style as
…
Constants containment, Find Real-World Objects, Good Encapsulation continuation lines, Using Spaces for Clarity continue statements, Exiting the Loop, Exiting Loops Early, Exiting Loops Early continuous integration, Daily Build and Smoke Test control structures, Binding Time, Binding Time, Binding Time, Relationship Between Data Types and Control Structures, Unusual Control Structures, Summary of
…
, Daily Build and Smoke Test, Daily Build and Smoke Test, Daily Build and Smoke Test, Daily Build and Smoke Test, Daily Build and Smoke Test, Continuous Integration automation of, Daily Build and Smoke Test benefits of, Summary of Integration Approaches broken builds, Daily Build and Smoke Test, Daily Build and Smoke Test
…
build groups, Daily Build and Smoke Test checklist, Continuous Integration defined, Summary of Integration Approaches diagnosis benefit, Summary of Integration Approaches holding area for additions, Daily Build and Smoke Test importance of, Daily Build and
…
Integration Approaches, Summary of Integration Approaches, Summary of Integration Approaches, Daily Build and Smoke Test, Daily Build and Smoke Test, Daily Build and Smoke Test, Continuous Integration, Continuous Integration, Integration benefits of, Importance of the Integration Approach, Benefits of Incremental Integration big-bang, Importance of the Integration Approach bottom-up strategy, Bottom-Up Integration
…
broken builds, Daily Build and Smoke Test checklist, Continuous Integration classes, Importance of the Integration Approach, Benefits of Incremental Integration, Bottom-Up Integration continuous, Daily Build and Smoke Test customer relations, Benefits of Incremental Integration
…
, Integration interface specification, Top-Down Integration, Bottom-Up Integration key points, Integration monitoring, Benefits of Incremental Integration phased, Importance of the Integration Approach resources on, Continuous Integration risk-oriented strategy, Sandwich Integration sandwich strategy, Bottom-Up Integration scheduling, Benefits of Incremental Integration slices approach, Bottom-Up Integration smoke tests, Daily Build and
by Rüdiger Seydel · 2 Jan 2002 · 313pp · 34,042 words
, and Moduli Verhulst, F.: Nonlinear Differential Equations and Dynamical Systems Wong, M. W.: Weyl Transforms Xambó-Descamps, S.: Block Error-Correcting Codes Zaanen, A.C.: Continuity, Integration and Fourier Theory Zhang, F.: Matrix Theory Zong, C.: Sphere Packings Zong, C.: Strange Phenomena in Convex and Discrete Geometry Zorich, V. A.: Mathematical Analysis
by Christian Fries · 9 Sep 2007
]) the elementary integral is defined using the indicator function 1[t j ,t j+1 ) in place of 1(t j ,t j+1 ] . For continuous integrators, as we consider here (W(t)), it makes no difference which variant we use. However if jump processes are considered (see e.g. [27]) and
by Eric Brechner · 25 Feb 2015
a Scrum Team Mapping the roles and terms Evolving the events Celebrating performance improvements Rude Q & A Checklist Chapter 6 Deploying components, apps, and services Continuous integration Continuous push Continuous publishing Continuous deployment Checklist Chapter 7 Using Kanban within large organizations Deriving a backlog from big upfront planning Ordering work based on
…
Boeing and starting out at Microsoft, my teams and I tried Waterfall milestones and stabilization periods of different durations, T-shirt estimation, asserts, bug jail, continuous integration, and design and code reviews. In the 2000s, the Microsoft teams I managed experimented with Team Software Process, Scrum, code inspection, static analysis, planning poker
…
and I have learned from every experiment, not all have been of equal value. My current and former teams still use design patterns, unit testing, continuous integration, design and code reviews, static analysis, planning poker, pair programming, test-driven development, and continuous deployment to varying degrees. However, it was Scrum that had
…
and Scrum teams to Kanban. Chapter 6, “Deploying components, apps, and services,” focuses on delivering the value you produce with Kanban to customers—everything from continuous integration to continuous deployment. Chapter 7, “Using Kanban within large organizations,” is for teams that use Kanban within large projects of hundreds or thousands of engineers
…
those items are deployed, and how the Kanban approach affects your deployment cadence and customer feedback mechanisms. The topics covered are: Continuous integration Continuous push Continuous publishing Continuous deployment Checklist Continuous integration Continuous integration is a software engineering practice that dates back to the early 1990s. This approach involves automating your build and testing it to
…
integrate high-quality code changes with confidence into the main branch every day, perhaps even several times a day. Kanban is a natural fit for continuous integration because the tasks you complete daily are production-ready; they certainly pass the criteria for integration. If you’re working on a relatively small project
…
after those items are successfully reserve integrated into the main branch. You need to do a little extra work to track reverse integrations as you continuously integrate, but using simple sections on the right end of your signboard enables you to answer the question that all your partners and customers have: “Where
…
feature work is done on the October branch. This creates a continuous cycle of monthly releases with simple code movement. * * * Continuous push Continuous push is continuous integration applied to distributed version control. Distributed version control systems, such as Git, allow teams and individuals to work independently in their own local, downstream clones
…
validation results. For large projects, multiple repos may be stored on the hosting service, with one or more related components in each repo. As with continuous integration, Kanban is a natural fit for continuous push because the tasks you complete daily are production-ready—they certainly pass the criteria that makes them
…
prime for pushing to the upstream repo (or for submitting through a pull request). And as in continuous integration, large projects need to mitigate against merge and interface conflicts when new code is pushed to the upstream repo. The mitigation follows a familiar pattern
…
Xbox Live social services group. Our two groups of teams had many deployment issues and started tackling them one at a time. First, we got continuous integration working, then automated deployment and rollback, then monitoring and instrumentation, then audience control, and finally continuous deployment. The changes were difficult, but in less than
…
worrying about interface conflicts. Continuous deployment of our services is a beautiful system that supports our continuous publishing of the platform and apps and our continuous integration of value for customers. Checklist Here’s a checklist of actions for deploying components, apps, and services by using Kanban: For
…
continuous integration of changes: • Follow an integration strategy for your team branch that avoids merge and interface conflicts. • Divide the rightmost Done column of your signboard into
…
. Many of these practices can be used in combination with one another and with Kanban. I’ve mentioned a few already, like cross-functional teams, continuous integration, iterative development, backlogs, and planning poker. Here are several other well-known practices, with a brief discussion of how your team can incorporate them into
…
presentations, 21 constraints defined, 11 elevating, 125 theory of constraints, 124–128 continuous delivery, 80 Continuous Delivery (Humble and Farley), 123 continuous deployment, 79–83 continuous integration, 72–75 continuous publishing, 77–79 continuous push, 75–77 core engineering team about, 102–103 ownership, 104–105 roles and responsibilities, 104 troubleshooting problems
…
unstable, 94–98 ordering work based on, 87–90 deploying finished work about, 71 checklist of actions to take, 83–84 continuous deployment, 79–83 continuous integration, 72–75 continuous publishing, 77–79 continuous push, 75–77 Xbox examples, 74–75, 77–79, 81–82 design work adapting from Waterfall, 44–45
…
scaling Kanban and, 118–119 signboards about, 8–9 adapting from Waterfall, 42, 53–55 communicating status up and out, 92–93 continuous deployment, 81 continuous integration, 73–74 continuous publishing, 78 continuous push, 76 in daily standup meetings, 14–17 evolving from Scrum, 60–62, 67–69 ordering work, 28–29
by Geoffrey West · 15 May 2017 · 578pp · 168,350 words
the amount of crime—is interrelated and interconnected with every other one and together they form an overarching multiscale quintessentially complex adaptive system that is continuously integrating and processing energy, resources, and information. The result is the extraordinary collective phenomenon we call a city, whose origins emerge from the underlying dynamics and
by Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy · 15 Apr 2016 · 719pp · 181,090 words
by synthesizing time-series data, in order to ensure that the rules behave as the author thinks they do. The Production Monitoring team runs a continuous integration service that executes a suite of these tests, packages the configuration, and ships the configuration to all the Borgmon in production, which then validate the
by Amy Brown and Greg Wilson · 24 May 2011 · 834pp · 180,700 words
77 7. Graphite Chris Davis 101 8. The Hadoop Distributed File System Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko, and Suresh Srinivas 111 9. Continuous Integration C. Titus Brown and Rosangela Canino-Koning 125 10. Jitsi Emil Ivov 139 11. LLVM Chris Lattner 155 12. Mercurial Dirkjan Ochtman 171 13. The
…
. She now writes and edits books, sometimes about software. She lives in Toronto and has two children and a very old cat. C. Titus Brown (Continuous Integration): Titus has worked in evolutionary modeling, physical meteorology, developmental biology, genomics, and bioinformatics. He is now an Assistant Professor at Michigan State University, where he
…
almost all areas of Asterisk development, from project management to core architectural design and development. He blogs at http://www.russellbryant.net. Rosangela Canino-Koning (Continuous Integration): After 13 years of slogging in the software industry trenches, Rosangela returned to university to pursue a Ph.D. in Computer Science and Evolutionary Biology
…
a packaging tool used to create platform-specific installers for software built with CMake. CDash is a web application for displaying testing results and performing continuous integration testing. 5.1. CMake History and Requirements When CMake was being developed, the normal practice for a project was to have a configure script and
…
makes use of the CMake family of tools (CMake, CTest, CPack, and CDash). As the code is developed and checked into the version control system, continuous integration testing machines automatically build and test the new CMake code using CTest. The results are sent to a CDash server which notifies developers via email
…
if there are any build errors, compiler warnings, or test failures. The process is a classic continuous integration testing system. As new code is checked into the CMake repository, it is automatically tested on the platforms supported by CMake. Given the large number
…
of Open Source Applications Amy Brown and Greg Wilson (eds.) ISBN 978-1-257-63801-7 License / Buy / Contribute Chapter 6. Continuous Integration C. Titus Brown and Rosangela Canino-Koning Continuous Integration (CI) systems are systems that build and test software automatically and regularly. Though their primary benefit lies in avoiding long periods between
…
, detection of infrequently failing tests, and the regular production of up-to-date release products. And, because build and test automation is necessary for implementing continuous integration, CI is often a first step towards a continuous deployment framework wherein software updates can be deployed quickly to live systems after testing
…
. Continuous integration is a timely subject, not least because of its prominence in the Agile software methodology. There has been an explosion of open source CI tools
…
features in the context of a diverse set of architectural models. The purpose of this chapter is to describe common sets of features implemented in continuous integration systems, discuss the architectural options available, and examine which features may or may not be easy to implement given the choice of architecture. Below, we
…
a Python-based decentralized reporting server that we will use as a foil for further discussion. 6.1. The Landscape The space of architectures for continuous integration systems seems to be dominated by two extremes: master/slave architectures, in which a central server directs and controls remote builds; and reporting architectures, in
…
which a central server aggregates build reports contributed by clients. All of the continuous integration systems of which we are aware have chosen some combination of features from these two architectures. Our example of a centralized architecture, Buildbot, is composed
…
new reporting mechanisms, or scale to many packages, or execute builds and tests in a cloud environment? 6.1.1. What Does Continuous Integration Software Do? The core functionality of a continuous integration system is simple: build software, run tests, and report the results. The build, test, and reporting can be performed by a
…
monitoring of the build process itself and aspects of system health (CPU load, I/O load, memory usage, etc.) Figure 6.1: Internals of a Continuous Integration System But this simplicity is deceptive. Real-world CI systems usually do much more. In addition to initiating or receiving the results of remote build
…
processes, continuous integration software may support any of the following additional features: Checkout and update: For large projects, checking out a new copy of the source code can
…
; to support this, the CI system needs to be able to transfer build products to a central repository. Multiple architecture builds: Since one goal of continuous integration is to build on multiple architectures to test cross-platform functionality, the CI software may need to track the architecture for each build machine and
…
components of a CI system is shown in Figure 6.1. CI software usually implements some subset of these components. 6.1.2. External Interactions Continuous integration systems also need to interact with other systems. There are several types of potential interactions: Build notification: The outcomes of builds generally need to be
…
"@Home" system is very similar in concept to the Pony-Build system described later. 6.2.3. Implementation Model: Jenkins Jenkins is a widely used continuous integration system implemented in Java; until early 2011, it was known as Hudson. It is capable of acting either as a standalone CI system with execution
…
with CMake, CTest, and CPack, and these tools are built to handle multi-platform issues. This is the ideal situation from the viewpoint of a continuous integration system, because the CI system can simply delegate all issues to the build tool chain. However, this is not true for all languages and build
…
if they should trust the recipes. 6.2.7. Choosing a Model In our experience, a loosely coupled RPC or webhook callback-based model for continuous integration is extremely easy to implement, as long as one ignores any requirements for tight coordination that would involve complex coupling. Basic execution of remote checkouts
…
While thinking about Pony-Build, we came up with a few features that we would like to see in future continuous integration systems. A language-agnostic set of build recipes: Currently, each continuous integration system reinvents the wheel by providing its own build configuration language, which is manifestly ridiculous; there are fewer than a
…
format, a build and test system needs to provide. If a common format or standard could be developed it would make it much easier for continuous integration systems to offer both detailed and summary views across builds. The Test Anywhere Protocol, TAP (from the Perl community) and the JUnit XML test output
…
an API (rather than a common format) that CI systems could use to extract more detailed information about builds. 6.3.1. Concluding Thoughts The continuous integration systems described above implemented features that fit their architecture, while the hybrid Jenkins system started with a master/slave model but added features from the
…
for scheduling, change notification, and resource locks fits that need better than the other options. Finally, Jenkins seems aimed at ease of use and simple continuous integration, with a full GUI for configuring it and configuration options for running on the local server. The sociology of open source development is another confounding
…
a new system, Pony-Build, rather than contributing to Buildbot: the Buildbot architecture was simply not appropriate for building hundreds or thousands of packages. Existing continuous integration systems are generally built around one of two disparate architectures, and generally implement only a subset of desirable features. As CI systems mature and their
…
have long provided hooks as a way for VCS events to interact with the outside world. Common usage includes sending off a notification to a continuous integration system or updating the working directory on a web server so that changes become world-visible. Of course, Mercurial also includes a subsystem to invoke
…
, that provide Perl bindings, an implementation for the BlackBerry browser, and for "headless" WebKit—useful for those times where tests need to run on a continuous integration server without a proper display. The original Selenium RC mechanism is still maintained and allows WebDriver to provide support for browsers that would otherwise be
…
to not be able to install software on their own machines. It also means that no-one needs to remember to log on to the continuous integration servers to run an installer when a project wants to start testing with IE. Finally, running installers just isn't in the culture of some
by Heather Adkins, Betsy Beyer, Paul Blankinship, Ana Oprea, Piotr Lewandowski and Adam Stubblefield · 29 Mar 2020 · 1,380pp · 190,710 words
confidence in your recovery methods via continuous validation. Recovery involves actions taken by humans, and humans are unreliable and unpredictable. Unit tests alone, or even continuous integration/delivery/deployment, cannot catch mistakes resulting from human skills or habits. For example, in addition to validating the effectiveness and interoperability of recovery workflows, you
…
, the framework can provide out-of-the-box automation for many common development and deployment tasks—from scaffolding for new components, to automated setup of continuous integration (CI) environments, to largely automated production deployments. These benefits have made this framework quite popular among Google developers. What does all this have to do
…
, to reduce the latency between feature specification and deployment. However, Agile workflows typically rely on reasonably mature unit and integration testing practices and a solid continuous integration infrastructure, which require an up-front investment to establish, in exchange for long-term benefits to velocity and stability. More generally, you can choose to
…
will quite possibly be behind schedule and saddled with technical debt. We’ve already touched on alignment between reliability and velocity: investing in a mature continuous integration/continuous deployment (CI/CD) workflow and infrastructure supports frequent production releases with a managed and acceptable reliability risk (see Chapter 7). But setting up such
…
(3)); } Unit tests typically run locally as part of engineering workflows to provide fast feedback to developers before they submit changes to the codebase. In continuous integration/continuous delivery (CI/CD) pipelines, unit tests often run before a commit is merged into a repository’s mainline branch. This practice attempts to prevent
…
describe the process of writing, building, testing, and deploying a software system. These steps include the typical responsibilities of a version control system (VCS), a continuous integration (CI) pipeline, and a continuous delivery (CD) pipeline. While implementation details vary across companies and teams, most organizations have a process that looks something like
…
Matters stages of evolution, Background and Team Evolution-Background and Team Evolution transparency and community engagement, Be Transparent and Engage the Community CI/CD (see continuous integration/continuous deployment) CIA (confidentiality, integrity, availability) triad, Confidentiality, Integrity, Availability Cisco, Risk Assessment Considerations CL (communications lead), Keeping the Right People Informed with the Right
…
, Software Update API tradeoffs, Tradeoffs configuration-as-code, Treat Configuration as Code conformance checks, Example: Microservices and the Google Web Application Framework containers, Use Containers continuous integration/continuous deployment (CI/CD), Initial Velocity Versus Sustained Velocityimplementing verifiable builds, Implementing verifiable builds-Unauthenticated inputs provenance-based deployment policies, Provenance-Based Deployment Policies unit
by Rennay Dorasamy · 2 Dec 2021 · 328pp · 77,877 words
8: API Development API First, Tech Second Team Structure Delivery Lead(s) Developers Quality Assurance Delivery Approach Defining the Strategy Planning Squads Agile Methodology DevOps Continuous Integration (CI) Continuous Delivery (CD) Microservices Application Development Development Guidance API Gateway Microservices Platform Services Portal Applications Summary Chapter 9: Sandbox Purpose Process Sandbox Strategies beta
…
As our Business Logic components could leverage several integration microservices to fulfill a specific function, it became increasingly more challenging to assemble the solution. DevOps Continuous Integration (CI) pipelines can be leveraged for code deployments to the server. CI processes are great for transitioning between environments, but for initial development tasks, I
…
underway, automated testing efforts are generally delayed. Automated testing must become part of the team culture as its execution is a core element of the Continuous Integration (CI) /Continuous Delivery (CD) process. This is the primary reason why organizations such as Netflix can release often to production. Delivery Approach Our Marketplace came
…
script. The practice and benefit of this paradigm is detailed. In the following sections, I will focus specifically on how DevOps supports our development process. Continuous Integration (CI) At the start of the implementation, the Marketplace consisted of a few microservices – which could be counted on one hand. Everyone knew them well
…
parameter, and finally breathe a sigh of relief when the test engineer gave an all-clear signal. This was the first iteration of our (manual) Continuous Integration process. The process evolved, almost overnight, as the on-premises Container platform was rebuilt. As part of the rebuild, the deployment process also changed dramatically
…
the delivery path and explicitly by writing the code and examined our approach to planning and managing concurrent activities. Establishing a DevOps practice and adopting Continuous Integration/Continuous Deployment principles helps streamline the development process, adds more stability and predictability, and supports existing and new development resources. Finally, we delved into Application
…
experience. Figure 10-6DevOps foundation A well-instrumented operational DevOps process starts even before the first line of code is written. Code repositories, build pipelines, Continuous Integration (CI), and migration processes (detailed in previous chapters) all form part of the process which enables the DevOps practice from development, and which ultimately pervades
…
/product owner (PO) messaging channels patterns product/service release notes status page transparency trust user groups/community sessions toolings User Experience (UX) Continuous Delivery (CD) Continuous integration (CI) D Demilitarized Zone (DMZ) Design Strategies access mechanisms availability bottom up build your own strategy business rules compliance requirements consideration consumer-driven approach definition
…
(SDK) Software development lifecycle application SeeApplication development delivery approach agile methodology initial strategy ongoing delivery planning sprint approach squad strategies DevOps aspirational goal continuous delivery continuous integration (CI) implementation microservices integration requirement objectives philosophy borrows retrieve reference data team structure automated testing consumer/provider delivery leads developer journey development documentation finance/reporting
by Kenneth S. Rubin · 19 Jul 2012 · 584pp · 149,387 words
by Thomas A. Limoncelli, Strata R. Chalup and Christina J. Hogan · 27 Aug 2014 · 757pp · 193,541 words
by Martin Campbell-Kelly · 15 Jan 2003
by Leo Panitch and Sam Gindin · 8 Oct 2012 · 823pp · 206,070 words
by Federico Biancuzzi and Shane Warden · 21 Mar 2009 · 496pp · 174,084 words
by Sam Newman · 25 Dec 2014 · 540pp · 103,101 words
by Arvid Kahl · 24 Jun 2020 · 461pp · 106,027 words
by Harihara Subramanian · 31 Jan 2019 · 422pp · 86,414 words
by David N. Blank-Edelman · 16 Sep 2018
by Jeff Nickoloff and Stephen Kuenzli · 10 Dec 2019 · 629pp · 109,663 words
by Ron Jeffries · 14 Aug 2015 · 444pp · 118,393 words
by Jj Geewax · 19 Jul 2021 · 725pp · 168,262 words
by David J. Anderson · 6 Apr 2010 · 318pp · 78,451 words
by Dani Rodrik · 8 Oct 2017 · 322pp · 87,181 words
by Frederi G. Viens, Maria C. Mariani and Ionut Florescu · 20 Dec 2011 · 443pp · 51,804 words
by Robert C. Martin · 13 Oct 2019 · 333pp · 64,581 words
by Scott Chacon and Ben Straub · 12 Nov 2014 · 549pp · 134,988 words
by James Higginbotham · 20 Dec 2021 · 283pp · 78,705 words
by Anders Lisdorf
by George Zarkadakis · 7 Mar 2016 · 405pp · 117,219 words
by Sam Newman · 14 Nov 2019 · 355pp · 81,788 words
by Nilanjan Raychaudhuri · 27 Mar 2012
by Unknown · 13 Jan 2012 · 470pp · 109,589 words
by Harry J. W. Percival · 10 Jun 2014 · 779pp · 116,439 words
by Scott Chacon · 17 Aug 2009 · 282pp · 79,176 words
by Noam Chomsky · 26 Jul 2010
by Mark Leonard · 4 Sep 2000 · 131pp · 41,052 words
by James Sugrue · 15 Dec 2013 · 290pp · 119,172 words
by James Turnbull · 13 Jul 2014 · 265pp · 60,880 words
by Sean Kane and Karl Matthias · 14 May 2023 · 433pp · 130,334 words
by Scott Rosenberg · 2 Jan 2006 · 394pp · 118,929 words
by Jon Loeliger and Matthew McCullough · 14 Aug 2012
by Marcus Hammarberg and Joakim Sunden · 17 Mar 2014
by Marianne Bellotti · 17 Mar 2021 · 232pp · 71,237 words
by Jared R. Richardson and William A. Gwaltney · 15 Mar 2005 · 203pp · 14,242 words
by Chas Emerick, Brian Carper and Christophe Grand · 15 Aug 2011 · 999pp · 194,942 words
by Lisa Crispin and Tip House · 15 Apr 2003 · 448pp · 84,462 words
by Neal Ford · 8 Dec 2008 · 224pp · 48,804 words
by Iain M. Banks · 14 Jan 2011 · 298pp · 151,238 words
by Karl Fogel · 13 Oct 2005
by Margaret O'Mara · 8 Jul 2019
by Jan Kunigk, Ian Buss, Paul Wilkinson and Lars George · 8 Jan 2019 · 1,409pp · 205,237 words
by Emanuel Derman,Michael B.Miller · 6 Sep 2016
by Andreas M. Antonopoulos and Gavin Wood Ph. D. · 23 Dec 2018 · 960pp · 125,049 words
by Dipanjan Sarkar · 1 Dec 2016
by Matthew Skelton and Manuel Pais · 16 Sep 2019
by Andrew Hunt and Dave Thomas · 19 Oct 1999 · 509pp · 92,141 words
by Mike Cohn · 1 Mar 2004 · 270pp · 75,626 words
by Adam Goucher and Tim Riley · 13 Oct 2009 · 351pp · 123,876 words
by VM (Vicky) Brasseur · 266pp · 79,297 words
by William H. Inmon, Bonnie K. O'Neil and Lowell Fryman · 15 Feb 2008 · 314pp · 94,600 words
by Olga Filipova · 13 Dec 2016 · 292pp · 66,588 words
by Diomidis Spinellis and Georgios Gousios · 30 Dec 2008 · 680pp · 157,865 words
by Casey Rosenthal and Nora Jones · 27 Apr 2020 · 419pp · 102,488 words
by Odd Arne Westad · 4 Sep 2017 · 846pp · 250,145 words
by Klaus Schwab · 11 Jan 2016 · 179pp · 43,441 words
by Barbara Tversky · 20 May 2019 · 426pp · 117,027 words
by Jamie L. Mitchell and Rex Black · 15 Feb 2015
by David Smiley and Eric Pugh · 15 Nov 2009 · 648pp · 108,814 words
by Mattias Skarin · 23 Jun 2015
by Robert Daigneau · 14 Sep 2011
by Gene Kim, Kevin Behr and George Spafford · 14 Jul 2013 · 395pp · 110,994 words
by Henry A Kissinger, Eric Schmidt and Daniel Huttenlocher · 2 Nov 2021 · 194pp · 57,434 words
by Chet Haase · 12 Aug 2021 · 580pp · 125,129 words
by Sean P. Kane and Karl Matthias · 15 Mar 2018 · 350pp · 114,454 words
by Kevlin Henney · 5 Feb 2010 · 292pp · 62,575 words
by David Kynaston · 12 May 2008 · 870pp · 259,362 words
by Valliappa Lakshmanan, Sara Robinson and Michael Munn · 31 Oct 2020
by Nadia Eghbal · 3 Aug 2020 · 1,136pp · 73,489 words
by Jeff Geerling · 9 Oct 2015 · 313pp · 75,583 words
by James Turnbull · 1 Dec 2014 · 514pp · 111,012 words
by Brenda Jin, Saurabh Sahni and Amir Shevat · 28 Aug 2018
by Robert C. Martin · 1 Jan 2007 · 462pp · 172,671 words
by Venkat Subramaniam · 1 May 2009 · 226pp · 17,533 words
by Travis Swicegood · 1 Dec 2008 · 184pp · 12,922 words
by Titus Winters, Tom Manshreck and Hyrum Wright · 17 Mar 2020 · 214pp · 31,751 words
by Lisa Gitelman · 25 Jan 2013
by Eric Ries · 13 Sep 2011 · 278pp · 83,468 words
by Zachary Kessin · 9 May 2011 · 210pp · 42,271 words
by Dariusz Jemielniak · 13 May 2014 · 312pp · 93,504 words
by Brad Green and Shyam Seshadri · 15 Mar 2013 · 196pp · 58,122 words
by Michael Peacock · 26 Feb 2015 · 161pp · 30,412 words
by Jessica McKellar and Abe Fettig · 15 Mar 2013 · 193pp · 46,550 words
by James E. Lovelock · 1 Jan 2009 · 239pp · 68,598 words
by Gabriel Weston · 15 Aug 2025 · 177pp · 59,831 words
by Italo Maia · 25 Jun 2015 · 157pp · 35,874 words
by Ivan Rogers · 7 Feb 2019 · 40pp · 11,939 words
by Lorin Hochstein · 8 Dec 2014 · 761pp · 80,914 words
by Fabio Alessandro Locati · 21 Nov 2016
by Lee Atchison · 25 Jul 2016 · 255pp · 55,018 words
by Stuart Halloway and Aaron Bedra · 17 Apr 2012 · 536pp · 73,482 words
by John Arundel · 25 Aug 2013 · 274pp · 58,675 words
by Richard H. Thaler and Cass R. Sunstein · 7 Apr 2008 · 304pp · 22,886 words
by Damiano Fusco · 16 Aug 2020