Author Archives: efarr

Lightweight Context/Specification BDD in C#

Behavior-Driven Development (BDD) provides all of the engineering benefits of traditional Test-Driven Development (TDD) while additionally resulting in a specification that non-developers can read and validate. At its heart, BDD transforms the tests of TDD into specifications. Those specifications are … Continue reading

Posted in Agile, Code | Tagged , , , | Leave a comment

Lunch with Uncle Bob

Ever since I stumbled across the original C++ Report articles that have become known as the SOLID principles, I have been a disciple of Robert Martin (aka Uncle Bob). He is a leader within the agile and software craftsmanship movements. … Continue reading

Posted in Agile, Architecture, Code | Tagged , , , , | Leave a comment

Outstanding Summary of Domain Driven Design

I just came across the best magazine-article-length summary of DDD that I’ve ever seen. If you’ve heard of DDD, but not ready to commit to reading the whole Blue Book, check out Dan Haywood’s An Introduction to Domain Driven Design. … Continue reading

Posted in Architecture, Domain Driven Design | Tagged | 1 Comment

The Commoditization of Transactions

I’ve written in the past about how the relentless march of progress in software has made yesterday’s innovations today’s commodity. This article from HBR captures the essence of how the software landscape is in the process of making traditional, data-oriented, … Continue reading

Posted in General | Leave a comment

DDD Anti-Pattern #4: Allowing Implementation Decisions to Drive the Domain Model

This is the last (for now) in my series of lessons learned building a complex product from the ground up following the principles of Domain Driven Design. The Field Service domain is all about getting people to Locations to perform … Continue reading

Posted in Architecture, Domain Driven Design | Tagged , | Leave a comment

11 Reasons You Want Mobility Experience Before Building a Mobile HTML5 Application

Two forces have converged: 1) Mobility has gone from an optional differentiator to an expected component of any software offering, and 2) HTML5 has been crowned as the solution that will solve the cross-platform problem that Java, Flash, and Silverlight … Continue reading

Posted in Architecture, Code, Mobile | Tagged , , | Leave a comment

Sprint Planning and Decision Fatigue

This article explores the physiological and psychological effects of fatigue brought on by making decisions. The fatigue that comes from making decision after decision immediately reminded me of my team’s Scrum sprint planning days. The Scrum method breaks software development … Continue reading

Posted in Agile, Management | Tagged , , , , | Leave a comment

DDD Anti-Pattern #3: Not Taking Bounded Contexts Seriously

My team had the challenge of building a field service automation application that would run on Windows Mobile devices. Availability of the Compact Framework meant that most code that would run on the server would also run on the device. … Continue reading

Posted in Architecture, Code, Domain Driven Design | Tagged , , , , , , | Leave a comment

Split the Team or Split the Backlog?

Small software companies often find themselves trying to do too much with too little. This was certainly the case at Agentek. At one point earlier this year, we had a problem… We were not finished with the current release (call … Continue reading

Posted in Agile, Management | Tagged , , | Leave a comment

DDD Anti-Pattern #2: Not Getting the Whole Team Educated on DDD Early Enough

The two challenges that drew me to Agentek in late 2008 were interrelated in the same way that the proverbial chicken and egg are. We had to build a complex, composite, occasionally connected, enterprise mobility application to replace the prior … Continue reading

Posted in Agile, Architecture, Domain Driven Design, Management | Tagged , , | Leave a comment