September 28, 2014

...Learn TDD with Codemanship

Software Development Isn't Just Programming

Alerted to a piece on wired.com this morning about a new website, exercism.io, that promises programmers the "deep practice" they need to become good enough to do it for a living.

You won't be at all surprised to learn that I disagree, or why.

Software development, as distinct from programming, requires a wide and complex set of disciplines. The part where we write the code is, in reality, just a small part of what we do.

In particular, how can such sites exercise that most important of developer muscles, for collaborating?

The Codemanship Team Dojo, which I occasionally enjoy putting client teams through and have run with some large groups at conferences and workshops, provides a very clear illustration of why a team full of strong programmers is not necessarily a strong team.

Problems that seem, in isolation, trivial for a programmer to solve can quickly become very complicated indeed the minute we add another programmer (Hell is other programmers.)

Folk have got to understand each other. Folk have got to agree on stuff. Folk have got to coordinate their work. And folk have got to achieve things with limited time and resources.

This, it turns out, is the hard stuff in software development.

I know some technically very strong developers who consistently seem to fall flat on their faces on real teams working on real problems for real customers.

Don't get me wrong; I think the technical skills are very important. But I consider them a foundation for a software developer, and not the be-all-and-end-all.

For my money, a well-rounded learning experience for an aspiring software developer would include collaboration within something approximating a real team, would include something approximating a human customer (or customers, just to make it more interesting), would require the resulting software to be deployed in front of something approximating real users, and would encompass a wider set of technical disciplines that we find are necessary to deliver working software.

And their contention that professional programmers need "hundreds of hours" of practice is missing a trailing zero.







Posted 3 years, 5 months ago on September 28, 2014