インフィニティソリューションズ株式会社ブログ

ソフトウェア開発のチェックリストはどっち?やるべきこと?何をやったか?

Methods and Toolsブログから。

これまでCMMなど、ソフトウェア開発の手法について、何をすべきかが大量のドキュメントに記され、プロジェクトのフェーズ間のゲートウェアとして、各フェーズのゴールが達成できたかどうかを確認するために使われてきた。しかしながら、アジャイル型手法の出現により、膨大な推奨タスクの中からロードマップを選択していくという形から、一般原則といくつかの推奨点だけの最低限のフレームワークに変化してきたのだ。
checklist
‘One of the problems with methodologies and procedures in large organizations is that they were often created by people in a staff function that were not eating their own dog food. Thus checklists associated to these methodologies had a bad reputation. You would cross all items, just to move your code or project to the next level, even if you hadn’t actually performed the required code inspection. Checklists are however useful in software development and approaches like Lean recommend them to make the knowledge explicit. There is a difference between having checklists that are proactive tools to preserve, share and discuss knowledge and the checklists that are just gateway items often responsible for habits sclerosis.’

「大企業において、多くの場合、自分ではドッグフードを食べない(使わない)ようなスタッフ部門の人間が、手法や手順を作っているということが問題点の1つだ。従ってこれらの手法に関連したチェックリストは、評判が悪い。必要なコードレビューを実際にはやっていなくとも、全項目にチェックを入れれば、コードやプロジェクトを次の段階に進めることができてしまう。しかしチェックリストはソフトウェア開発で役に立ち、リーン手法などで、形式知のために作ることを推奨している。知識を保持し、共有し、議論するための前向きなツールとしてチェックリストが存在することと、習慣に凝り固まっているために必要であるとするゲートウェイ的なものとは異なる。」

‘You should consider software development checklists like cooking recipes. When you start cooking, recipes give you a quick access to the knowledge of expert cooks. However, as long as you know only what to do when you cook but not why you do it in a certain way, you might face disappointments if the size of your your fish or your oven are not exactly the same than the one used to create the recipe. The more you master the art of cooking, the more you can modify existing recipes to your taste or what you have just found on the market. At the end you might even be able to create your own recipes. If you cook this special meal only once every six months or if you need to share it with a friend, then you have to write down the recipe. This is the same for software development good practices. Your checklist will naturally contain what to do, but it will be even better if you write and explain the why, how and why not of its content.’

「ソフトウェア開発チェックリストは、料理レシピと考えるべきだ。料理を始める時、レシピにより、料理家の知識にすぐさまアクセスできる。しかし、料理する時に何をすべきかだけが分かっており、何故、ある方法でやるのかがわからない限り、魚の大きさやオーブンが、レシピを作った人を作ったものと完全には同じではないと、落胆するかもしれない。料理技術をマスターしていくと、ありものレシピを、自分の味付けに、6ヶ月前に食べたものと同じものに変えることもでき、友人と共有する必要があれば、レシピを書く必要がる。ソフトウェア開発のプラクティスも同じだ。チェックリストは当然何をすべきかが書かれているが、その内容について何故、如何に、何故ダメかを記し、説明すれば、なお良い。」

Image courtesy of David Castillo Dominici at FreeDigitalPhotos.net