This post is part of The Software Architecture Chronicles, a series of posts about Software Architecture. In them, I write about what I’ve learned on Software Architecture, how I think of it, and how I use that knowledge. The contents of this post might make more sense if you read the previous posts in this series. Robert C.… Continue reading Clean Architecture: Standing on the shoulders of giants
Uncle Bob's Clean Architecture keeps your application flexible, testable, and highlights its use cases. But there is a cost: No idiomatic framework usage! Welcome to the fifth installment of little architecture series! So far we have covered layers, hexagons, onions, and features. Today, we’ll look at a close friend of all four – Uncle Bob’s Clean Architecture, initially introduced here.… Continue reading Clean Architecture Is Screaming
Often the hardest part of programming is knowing where to start. With test-driven development the right place to begin is with a test, but when faced with a blank page, it can be daunting. Is it best to start with the detail of what you are building, and let the architecture form organically using an… Continue reading TDD – From the Inside Out or the Outside In?
In the light of delivering outcomes, we should consider the respective merits of horizontal and vertical approaches. The more common (and not necessarily incorrect) approach is to slice a problem horizontally and build layers to a stack based on objectives with clear left and right parameters. This not meant to imply that there is a… Continue reading Vertical vs Horizontal Approaches
I don’t know if it’s more comical or tragical to see all those xDD combinations that exist in software development. By “xDD” I mean any one of TDD, BDD, DDD, RDD, FDD, etcetera. Software developers often make fun of this our tendency to suffix everything with “DD”. I have three points to make about this:… Continue reading xDD: An Overview
Its not unnatural to think that the prototypical xDD combinations (TDD, BDD, DDD, and friends) are somehow in competition with each other. If you are unsure of their exact meanings, why wouldn’t you believe that TDD is in opposition to BDD and DDD? I mean, they all mean “Hmmhmm Driven Design/Development”. How many things can… Continue reading Combining TDD/BDD with DDD
Chapter 1 “The Tar Pit” Pg. 4 In software development, no one thing seems to cause the difficulty, but the accumulation of simultaneous and interacting factors brings slower and slower motion. Pg. 5 Developing a professional system is 9 times the cost and time of an amateur development of the same system. Pg. 7-9 Joys… Continue reading Summary of The Mythical Man-month