Is Pair Programming for Me?

I have noticed a significant difference in the results achieved by teams with pairing depending on how they approach learning to pair.

In particular, many people don’t expect pairing, itself, to be a skill. They don’t realize that they’re going to have to learn new ways to think, to problem solve, to be creative, to filter their perceptions, and even to converse. Since they don’t realize this, they get surprised. And then they set themselves up to make that learning hard, and quit when they get poor results and find pairing to be hard while learning. Continue reading “Is Pair Programming for Me?”

Agile vs Design

An overheard conversation at work got me thinking while I was headed home. I’ve now got to send some of those thoughts your way.

The one guy was arguing against agile on the basis that it “throws the baby out with the bathwater” with respect to design. Me made several statements. Some are true, some are partially true, and some are flat false. These statements are:

  • There is still a role for design when trying to release quickly (true).
  • Agile throws design out the window (mostly false).
  • Agile only works with 5 people, in one room (false).
  • Agile ships prototypes, not real code (false, but an easy misinterpretation from a true statement: agile teams always ship the simplest thing that could possibly give them the feedback they need).

Assuming the above represents his position, I would respond as follows. Continue reading “Agile vs Design”

New Simulators Library

I just published an early relese of my Simulated.FileSystem library. This library makes it easier to separate platform concerns out of my models. It works really well with a hexagonal architecture.

This library will define a set of ports for common external dependencies, with multiple adapters for each port. The initial release just includes a file system port, with two adapters: native file system and in-memory file system. Continue reading “New Simulators Library”

Emotions vs. Logic. Round 1. Fight!

I was calmly reading stuff when someone said something wrong on the internet. I got angry. It touched a common nerve so I got angry out of all proportion. I decided to respond to my anger…by saying stupid stuff on the internet that others can use to make themselves angry.

What made me angry? In the talk about values, the author said the following:

We humans are inherently complex and, while logical thinkers, we are also led by our emotions and some inherent animalistic traits that can’t reasonably be overcome.

Bullshit! I am not logical! How dare you denigrate me so! (as I said, angry.) Continue reading “Emotions vs. Logic. Round 1. Fight!”

Agile Team Roles

I was recently asked:

Within the team we have a person working as “development lead”, and a second person working as the “solution architect”.  What responsibilities and deliverable artifacts we should expect from of each of these roles?

As usual, I’d answer “that depends.” Here are some various answers Continue reading “Agile Team Roles”