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”

The 3 Most Important Things I’ve Learned This Year

This is a technology blog but why do we actually use technology? We use it because we want to help people achieve something – and in the process of doing that we have to cooperate and communicate with many humans. The human factor is far more determining for our success than any kind of technologyContinue reading “The 3 Most Important Things I’ve Learned This Year”

What Changes When You Deploy More Frequently and Why You Should Do It

This post is inspired by Kent Beck’s excellent talk at JavaZone 2011 titled Software G Forces: The Effects of Acceleration where he describes how the development process, practices and partly the whole organization change and/or have to change as you go from annual to monthly to weekly, daily, hourly deployments. I’d like to summarize some ofContinue reading “What Changes When You Deploy More Frequently and Why You Should Do It”

Refactoring Spikes as a Learning Tool and How a Scheduled Git Reset Can Help

To learn how complex your code base really is and how much effort a particular refactoring might require compared to the initial expectations, follow these steps: Schedule git reset –hard; git clean -fd to run in 1 hour (e.g. via cron) Do the refactoring “WT*?! All my changes disappeared?!” – this experience indicates the endContinue reading “Refactoring Spikes as a Learning Tool and How a Scheduled Git Reset Can Help”

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”

Tips And Resources For Creating DSLs in Groovy

Paul King had a very good presentation (last year’s slides) at JavaZone about why to use Domain-Specific Languages and how to create internal DSLs in Groovy. I’d like to list here few tips that he has mentioned but before we get to that, why would you want to create a DSL? Martin Fowler answers thatContinue reading “Tips And Resources For Creating DSLs in Groovy”

What Is CDI, How Does It Relate to @EJB And Spring?

A brief overview of dependency injection in Java EE, the difference between @Resource/@EJB and @Inject, and how does that all relate to Spring – mostly in the form of links. Context Dependency Injection (CDI, JSR 299) is a part of Java EE 6 Web Profile and itself builds on Dependency Injection for Java (JSR 330),Continue reading “What Is CDI, How Does It Relate to @EJB And Spring?”

Book Review: Agile Project Management With Scrum

A review of and extract from Agile Project Management With Scrum by Ken Schwaber, Microsoft Press 2003, ISBN 0-7356-1993-X. The book is basically a set of case studies about Scrum that show how to implement the individual aspects of Scrum, what are the common pitfalls and how to avoid them, and help to understand its mantraContinue reading “Book Review: Agile Project Management With Scrum”