Welcome!

Microservices Expo Authors: Pat Romanski, Liz McMillan, Elizabeth White, Yeshim Deniz, Zakia Bouachraoui

Related Topics: Microservices Expo, Java IoT, Microsoft Cloud

Microservices Expo: Book Review

Essential Skills for the Agile Developer

A Guide to Better Programming and Design Book Review

I have been a fan of the Net Objectives books since the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition). That is still my favorite design patterns book.

When it comes to the agile movement I still remain torn. I watch it change and shift the industry's development processes to improve the customer satisfaction delivered by software teams successfully executing the processes, while at the same time I watch more teams use it as an excuse for the chaos they live in.

The good news is books like this one offer sound advice on achieving agility. The bad news is the agile team members I mentioned above that are living in daily chaos never pick them up. They are too busy putting out the day's hottest fire.

Moving a team that cannot produce using waterfall or RUP to a shiny new agile process will do nothing but make them produce crappier software. An inexperienced team that can't produce quality software with one process won't start producing quality by claiming to be agile.

I tell you all that because I want you to understand where I come from when it comes to agile methodologies. I am not an Agile Movement Zealot, but I find the guidance provided by this book very valuable.

The book has chapters on Programming by Intention, Separate Use from Construction, Define Tests Up Front, Shalloway’s Law and Shalloway’s Principle, Encapsulate That!, Interface-Oriented Design, Acceptance Test—Driven Development (ATDD), Avoid Over- and Under-Design, Continuous Integration, Commonality and Variability Analysis, Refactor to the Open-Closed, Needs versus Capabilities Interfaces, and When and How to Use Inheritance.

The book ends with three Appendixes- Overview of the Unified Modeling Language (UML), Code Qualities, and Encapsulating Primitives.

Each topic is considered a Trim Tab. According to Wikipedia Trim tabs are small surfaces connected to the trailing edge of a larger control surface on a boat or aircraft, used to control the trim of the controls. Boats with outboard engines will often have trim tabs attached to the lower unit of the engine. Many airplanes (including gliders) have trim tabs on their elevators, as a simple method of providing trim in the longitudinal axis. Richard Buckminster “Bucky” Fuller used of trim tabs as a metaphor for leadership and personal empowerment. The authors of the book say they are the actions and insights that give the most understanding with the least investment.

The first chapter, programming by intention is one topic that still is kind of weird to me. Every explanation of what it is could just be classified as common sense to me. I agree with everything that goes along with programming by intention, I just don't understand why or how you would not program like that.

Separate Use from Construction is a nice perspective on the reasons for using dependency injection, ORM mappers, and not over designing when using such tools.

Define Tests Up Front explains why testing is not just about testing, but also about code quality.

Shalloway’s Law and Shalloway’s Principle is all about reducing redundancy.

I am glad the book includes the chapter on Commonality and Variability Analysis. It is just as valuable today as it was when it appeared in the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition).

The best thing about this book is that each subject is truly the actions and insights that give the most understanding with the least investment. Each chapter is a little nugget of wisdom that has been tested over time. The book is all about one of the cores that allows agility to be a reality on a project and that is great programming practices.

Over all I found the book a very easy and enjoyable read. I highly recommend it to developers of all languages.

Essential Skills for the Agile Developer: A Guide to Better Programming and Design

More Stories By Tad Anderson

Tad Anderson has been doing Software Architecture for 18 years and Enterprise Architecture for the past few.

Microservices Articles
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the APIs that make today's multi-cloud environments and hybrid clouds possible. In this Power Panel at 17th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the importance of customers being able to use the specific technologies they need, through environments and ecosystems that expose their APIs to make true ...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point where organizations begin to see maximum value is when they implement tight integration deploying their code to their infrastructure. Success at this level is the last barrier to at-will deployment. Storage, for instance, is more capable than where we read and write data. In his session at @DevOpsSummit at 20th Cloud Expo, Josh Atwell, a Developer Advocate for NetApp, will discuss the role and value...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
Consumer-driven contracts are an essential part of a mature microservice testing portfolio enabling independent service deployments. In this presentation we'll provide an overview of the tools, patterns and pain points we've seen when implementing contract testing in large development organizations.
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...