Subscribed unsubscribe Subscribe Subscribe

I write Engineering Topic weekly...?

Blog of web engineer at Tokyo. [Japanese version]

“Demand Technical Excellence” by James Grenning Agile Japan 2013 #agilejapan


(This blog is English version of this Japanese blog)

I heard keynote speech of Agile Japan 2013, by James Grenning. He is a programer of embedded program. Recently, his book
has been translated in Japanese, and published.

【送料無料】Test-Driven Development for Embedded C [ James W. Grenning ]

Test-Driven Development for Embedded C [ James W. Grenning ]

And another thing he is the person who invented "Planning Porker"!

Today's speach's theme was "Demand Technical Excellence". We, developer needs to learn new things continuously. He explained us that by using TDD case as an example.

Bad Case

According to his speach, "someone still uses development method which was used in 1979". When James started programing in 1979, developer did "printf debug". It means, when they tried to debug, they wrote many printf statement, and checked each lines. And unfortunately, currently some developers still has been doing "printf debug". According an investigation, there are guys who spend much longer time to debugging than coding. Although coding is only phase to make value for customers. James called such development style DLP, "Debug Later Programing".

Let's TDD

So, what should we do?
We need to try TDD, which is much better than DLP. We can prevent from spending long time to debugging by repeating cycle of writing unit test and production code.

Even if TDD is difficult, we must write unit test because it's critical.
Because the more we proceed development, the more test cases of our product are increasing. By automated test, we don't have to spent long time to testing and debugging.

Technical Excellence

I think he wanted to tell us that  we need to learn new practice like TDD.

There is a practice, "retrospective" in scrum. We should consider about our issues (e.g.  many bugs, never finished test, and so on) by retrospective. And then, it is very important to learning new "technical excellence" for resolving those issues.

Todo of Developers and Scurm Masters

James introduced us todo of developers, scrum masters, and manager. (Since I'm not a manager, let me omit it)

Developers are required to make transparent their tasks. They are also required to learn and try new things. In addition, not only learning, also they should to be "adviser" of the new technology.

Scrum masters are required to help team members to get knowledge of new practices. I got advice from him that the first step is talking with team members how we solve an issue. For example, if our team don't have automation test, we will talk about what kind of technology we should learn.

Actually, currently, I think our team have to improve our team's automated test more and more. Fortunately, I've heard TDD boot camp will be carried out. So I'm going to attend it WITH my team members.