Book Review & Digest: Release It! Design and Deploy Production-Ready Software

By Michael T. Nygard, 2007, ISBN: 978-0-9787-3921-8 My digest and review of the book. Review Of the books I have read, Release It! is the one I would require all “senior” developers to read (together with something like Architecting Enterprise Solutions: Patterns for High-Capability Internet-based Systems). Especially the first part on stability with its patternsContinue reading “Book Review & Digest: Release It! Design and Deploy Production-Ready Software”

Most interesting links of July ’13

This month focuses on languages and approaches (reactive programming, F#, Erlang, FP talks etc.), agile (need for speed, recommended books), Clojure/Linux/cloud tools and libs. Recommended Readings Development, agile The Need For Speed – the top 10 reasons for fast development flow (with time to market being one of the less important) – more learning, focusContinue reading “Most interesting links of July ’13”

Patterns of Effective Delivery – Challenge Your Understanding Of Agile (RootsConf 2011)

Highlights from Dan North‘s excellent, inspiring, and insightful talk Patterns of Effective Delivery at RootConf 2011. North has a unique take on what agile development is, going beyond the established (and rather limitied and rigid) views. I really recommend this talk to learn more about effective teams, about North’s “shocking,” beyond-agile experience, and for greatContinue reading “Patterns of Effective Delivery – Challenge Your Understanding Of Agile (RootsConf 2011)”

Most interesting links of November

Recommended Readings Recommended Reading by Poppendiecks – an excellent selection, starting with Lean from Trenches, Management 3.0, Specification by Example, The Lean Startup etc. Eric Allman says that Programming Isn’t Fun Any More  because problem solving has been replaced with learning, configuring, and integrating tons of libraries, frameworks, and tools and many people agree withContinue reading “Most interesting links of November”

Principles for Creating Maintainable and Evolvable Tests

Having [automated] unit/integration/functional/… tests is great but it is too easy for them to become a hindrance, making any change to the system painful and slow – up to the point where you throw them away. How to avoid this curse of rigid tests, too brittle, too intertwined, too coupled to the implementation details? SurelyContinue reading “Principles for Creating Maintainable and Evolvable Tests”

How to Fail With Drools or Any Other Tool/Framework/Library

What I like most at conferences are reports of someone’s failure to do or implement something for they’re the best sources of learning. And How to Fail with Drools (in Norwegian) by C. Dannevig of Know IT at JavaZone 2011 is one of them. I’d like to summarize what they learned and extend it forContinue reading “How to Fail With Drools or Any Other Tool/Framework/Library”

Most interesting links of July

Recommanded Readings Martin Fowler, M. Mason: Why not to use feature branches and prefer feature toggles instead, when branches can actually be used (video, 12min) – feature branches are pretty common yet they are a hindrance for a good and stable development pace due to “merging hells”. With trusted developers, feature toggles are a muchContinue reading “Most interesting links of July”

Introduction to ObjectTeams/Java, a Role-Based Approach to Modularity With AOP

I’ve recently stumbled upon an interesting Eclipse project called ObjectTeams/Java (OT/J), which promises improved reusability and maintenance and support for evolvable architectures by creating well-encapsulated bundles of behavior – modules – that can be applied to existing classes (via AOP), when they are in the appropriate context of interaction (and not simply always, as isContinue reading “Introduction to ObjectTeams/Java, a Role-Based Approach to Modularity With AOP”

My path to SCEA 5

I’d like to share with you my experience with the Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5 (SCEA 5) [1] certification. There was a couple of unclear things regarding the assignment and its deliverables and I’ve learned some interesting things (mostly about hardware estimation and deployment environments such as the “clouds”),Continue reading “My path to SCEA 5”

PatternTesting: Automatically verifying the good application of architectural/design patterns in code

PatternTesting is a mature open-source project that enables you to automatically check at the compile- or run-time that architectural/design/implementation decisions are implemented and bad practices avoided in the code. The main differences from tools like FindBugs and PMD are that you can implement tests spanning multiple files (classes) and that aside of compile-time checks thereContinue reading “PatternTesting: Automatically verifying the good application of architectural/design patterns in code”