Clean Architecture: A Craftsman’s Guide to Software Structure and Design – Robert C. Martin

By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Codeand The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.   Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob,…

Agile Software Development, Principles, Patterns, and Practices – Robert C. Martin

Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application—from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer’s thoughts — showing the errors, blind alleys, and creative insights that occur throughout the…

Microservices Patterns – Chris Richardson

Microservices Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather than simply advocating for the use the microservice architecture, this clearly-written guide takes a balanced, pragmatic approach, exploring both the benefits and drawbacks.

Testing Strategies in a Microservice Architecture – Toby Clemson

Thanks to Toby Clemson and Martin Fowler for a great presentation on how testing approaches and techniques should be applied on microservices architecture. Testing Strategies in a Microservice Architecture There has been a shift in service based architectures over the last few years towards smaller, more focussed “micro” services. There are many benefits with this approach such as the ability to independently deploy, scale and maintain each component and parallelize development across multiple teams. However, once these additional network partitions have been introduced, the testing strategies that applied for monolithic…

Agile IT Organization Design: For Digital Transformation and Continuous Delivery – Sriram Narayan

To gain the full benefits of agility in any software organization, you need to extend it beyond developers to the organization as a whole. Aspiring digital businesses need overall agility, not just development team agility. Now, Sriram Narayan, IT management consultant at ThoughtWorks, shows how to do just that. Drawing on 15+ years working with leaders in telecommunications, finance, energy, retail, and beyond, he introduces a comprehensive agile approach to “Business-IT Effectiveness” that is as practical as it is valuable.

Sensemaking – Deborah Ancona

Sensemaking, a term introduced by Karl Weick, refers to how we structure the unknown so as to be able to act in it. Sensemaking involves coming up with a plausible understanding—a map—of a shifting world; testing this map with others through data collection, action, and conversation; and then refining, or abandoning, the map depending on how credible it is. Sensemaking enables leaders to have a better grasp of what is going on in their environments, thus facilitating other leadership activities such as visioning, relating, and inventing. This chapter outlines ten…

SDLC Agile Practices – ProActors

Below, there is a sharing-session hosted by me and Tunç Kavakl?o?lu about SDLC Agile real-life practices and problems. Full video is in Turkish… Thanks to and for their organizational support YouTube URL:  

The Pragmatic Programmer – Andrew Hunt, David Thomas, Ward Cunningham

— Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process–taking a requirement and producing working, maintainable code that delights its users. 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 youll learn how to *Fight software rot; *Avoid the trap of duplicating knowledge; *Write flexible, dynamic, and adaptable code; *Avoid programming by coincidence; *Bullet-proof…

Tests and Experiments – Richard A. Kass

Test and experimentation are integral to the capability development process. This is the second of a two-part discussion on experimentation. This article considers the similarities and differences between experimentation and testing. While the two endeavors address different questions and exhibit some differences in the planning and execution process, overall similarities outweigh differences especially in event resources suggesting potential gains from sharing resources. Original :