Continuous Integration Improving Software Quality and Reducing Risk
See a Problem?
Thanks for telling us about the problem.
Friend Reviews
Community Reviews
It's always been a point of personal exasperation/professiona
Writing production grade software, integrating it, and deploying it without going through this book is like shitting in a bucket and pouring it over the side of your window. Most of the time you can "probably make it work", and because "it works" you might even think you're doing the right thing, but one day, someone--maybe a teammate, maybe you-- will be walking along the windowsill and the solution will fall like "manna from heaven."It's always been a point of personal exasperation/professional embarrassment about the pervasiveness of ignorance in my field when I have to explain to other "senior" developers that there's a difference between unit/component(integration)/system(~ functional) tests. Now I'm just going to throw the section about testing at them. Excellent breakdown.
I always thought the idea of testing and automating database creation and data population was "cute"...this book made me realize how absolutely vital it is. Too many times I've seen dev teams shackled by "the dev/integration database is down/has bad data" and the solution is astonishingly simple. So much effort wasted on making/fixing batch jobs, pushing forward with broken tests because of "known issues"... it's another embarrassing trend.
I'm not as sold on the centralized build machine in the age of Containers. I think conceptually it made a lot of sense at the time to keep environmental dependencies to a minimum--and I'm sure illustrious hackers can find a way to bake local environmental assumptions into Container images-- but it still feels to me like a lot of the work done in a "private build" is essentially duplicated simply for the "clean room reproducibility" a CI server provides, which now comes close to guaranteed in a shrink-wrapped image.
I do think that the "staged build" concept provides an opportunity to argue for its continued existence. A "lightweight build" that executes the tests and prepares the deployable artifact could be run locally, while some of the longer inspections and analysis (load testing, bake in testing, A/B testing) could work on the CI server. Obviously you can exert maximum control by only allowing the CI server to carry out full deployment to Prod, but there's an argument to be made that this handcuffs skilled developers in failure mode situations.
Having seen (and driven) pushes towards full CI/CD (which I think it may be helpful to separate), it seems once again (like that mythical unicorn) that this is another one of the 12 practices of XP that really shines when the others are in place. Releases have to be small and frequent which implies changes have to be small and frequent, which implies the devs have to specify, design, and implement in a way that makes code easy to test and refactor. CD, as a separate problem space, can be potentially simplified with enough automation and tooling with sufficient workflows to promote/rollback fairly easily.
The final nit is that a lot of the tools are obviously almost a decade old and the market has changed significantly since then. It may have been helpful to just throw the last section away and focus more on the concepts. The evaluation criterion in the appendix was interesting, and may be a target for a "quick cheat sheet" to fill out when analyzing tools.
...moreAutomating builds, failing fast and using a dedicated build machine for quicker builds is common sense today, but considering that this is a 2009 book, it is rather impressive that not everyone is not fully on-board with the ideas presented in here. Funny thing is, some of the tools presented are no longer available at this point, while others have become de-facto standards.
I would recommend this book for everyone who needs to have an introduction to the whole CI (Integration) and CD (Delivery) of software, and get some solid good practices from the automation side.
...moreSo far, it is very repetitive. They keep repeating the same things over and over. They keep promising that topics will be covered in more depth in later chapt
The entire book can be reduced to two slides: one diagram and one bullet list of pros and cons. The diagram shows up again and again; they use it as a map to the contents, highlighting the current section. Each time, the diagram takes about three quarters of the page. It is not a very busy diagram and if could easily have been made smaller.So far, it is very repetitive. They keep repeating the same things over and over. They keep promising that topics will be covered in more depth in later chapters, but I am still waiting.
In the end, the whole book could be reduced to that one diagram and a short bullet list of pros and cons. I was pretty disappointed. But if you need to sell a continuous build to someone who is not technical and does not understand programming, maybe this is a book for that.
...moreEven though CI is a really good and important practice, this book is not a good source of information.
Overly verbose, repeating, really small information content, bad/harmful code examples.
I wish I could get my money back since I don't want to promote this kind of content :(
We as a team learned this book together
But it was way too wordy. I think the information could have been conveyed much more succinctly. The great nuggets of information were watered down with too many justifications and narratives and perspectives.
I didn't like it, could a 10th thinner and deliver the same content. Once you finish the first chapters about what CI is (and not from any breakthrough perspective) the rest of the book isn't more than going over and over of the same idea and present some tools, mainly for Java projects.
...more
Nowadays, we have a lot of information in sites, blogs and Stack Overflow. However, this book explain WHAT is CI.
Must-read, if you think about CI is a tool or a server.
It's outdated in terms of git and PR. It's a nice book about the CI practice. Straightforward. Easy to grasp. Authors revealed common pitfalls of integration steps.
Must-read, if you think about CI is a tool or a server.
It's outdated in terms of git and PR. ...more
Goodreads is hiring!
Learn more »
Other books in the series
News & Interviews
Welcome back. Just a moment while we sign you in to your Goodreads account.
Source: https://www.goodreads.com/en/book/show/1311542
0 Response to "Continuous Integration Improving Software Quality and Reducing Risk"
Post a Comment