, 21 tweets, 4 min read Read on Twitter
You're probably wondering -- at least I am wondering -- why I have such a hard focus on the programming part of would-be Agile Software Development.

There are of course a near infinity of skills required in order to create a successful software product.

1/21
Most of those skills take years to really begin to master. And our product really does require at least some minimum of those if it's to succeed.

So what's special about programming?

Well, there are two special things that I'd like to call out.

2/21
First, if you're really building a software product, you probably can't build it without programming.

(If you can, like by assembling some existing components, go for it. If you really don't need programmers, by all means go without them, and exit this thread now.)

3/21
Now I want to say that when we need programmers, there's really nothing that will substitute for someone who can, well, program. And I want to say that few of the other skills we require are quite so binary in nature.

4/21
We need user interface design skills: but most of us can do a half-decent job of that, if it comes to it, and half-decent describes most of the interfaces today.

5/21
We need a growing product vision: but most of us can and will get on board with a product idea, and, especially if we try things out iteratively on real users, we can probably iterate to something good.

6/21
And so on. There are many ways for a team to have or acquire all the skills, other than the programming skill.

Unfortunately, if the product really needs programming, that's usually not something that random people on the team can just "pick up".

We need programmers.

7/21
My second reason for being all about programmers, however, is what I consider the clincher.

As I've written at length, real Agile and faux Agile both call for the iterative and incremental creation of a real, visible product, all the time.

8/21
In my view, the Increment is a sine qua non[1] for Agile, and it's your only chance of surviving "Agile".

Yeah, fine, so what?

9/21
The thing is this: programmers almost never learn in school the skills needed to build an Increment and keep it viable. The skills are not obvious. In fact they often seem to be quite wrong, given what we do learn in school.

10/21
So it is critical -- literally critical -- to successful Agile, for developers to have these skills, which mostly they do not have. They need time to learn and practice them.

Those skills are not obvious, even to rather skilled programmers.

11/21
Those skills are, I believe, literally unimaginable to non-programmers. Some of them rely on properties of code which are not present in almost any other working material.[2]

12/21
As such, it is difficult, I'd say impossible, for a non-programmer to appreciate the importance of these ideas, impossible to know whether programmers have them or not, impossible to impart them if they are missing, impossible to tell whether they're being applied.

13/21
And yet just about everything else that goes on in building our product, people do understand, usually appreciate, and can feel it a bit themselves.

And then there's this mostly opaque notion of technical skills.

14/21
Hey, we hired expensive programmers,we gave them a ping pong table and snacks, and we pushed them into doing Scrum. Why isn't that enough?

Well, see above, it isn't enough. THEY DON'T KNOW HOW.

15/21
To me, that's why there's something special about programming. I've been (and am) a programmer, a manager, an executive, a teacher, and a coach. I have a decade of formal schooling in lots of topics, and a half-century of building software products.

16/21
I'm a jack of many trades, and arguably a master of none, including programming, including Agile. But I've swum in all those waters, and I'm here to tell you that among the skills in building software products, the programming is different.

17/21
So the reason why I wish coaches and scrummasters and all those folks knew programming is that it is clear on the face of it, if we observe "Agile" at large, and if we observe the many not-exactly-thriving teams out there: they do not have the software skills they need.

18/21
If their coaches and leaders really understood that, really grokked that, they'd make sure that programmers got the learning and practice that they need.

But if they don't really understand that, well, look at the record: they don't make sure.

19/21
I could be wrong. And if your "Agile" project is thriving without programming skill inside, good for you. Meanwhile, I'm going to push the notion that programming is special and many folks don't even really understand it.

20/21
[1] "without which nothing": a necessary thing.
[2] Painting (art) and clay sculpting may be other examples where refactoring works. Watercolor and marble, not so much.

Couldn't resist footnoting a tweet storm. :)

21/21
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Ron Jeffries
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!