とある開発チームに配属され、プロジェクトの一員として開発に関わり始めた後輩くん。社会人生活1年目、順調な滑り出しかと思いきや……?
ううーん……
後輩くん、何を悩んでるんだい?
先輩さん!(そうだ、先輩さんに聞いてみよう!)チームの一員としての開発って、何に気をつければいいんですか?
な、なんだい出し抜けに
実は、さっきリーダーに「もっとちゃんと、チームでの開発であることを意識して作業するように」って言われたんです。でも、具体的にどうすればいいのかで途方に暮れちゃって……
ああ、後輩くんはこれまでチーム開発の経験がなかったんだね。チーム開発では、短期集中で1人でやる場合とはまた違うやりかたが必要になってくるんだ
違うやりかた? 仕様どおりに動くように作って、納期までに完成させればいいんじゃないんですか?
それももちろん大事だけど、それだけでは不十分なんだ。そうだなぁ、いろいろあるとは思うけど、良いコードを書いて、良いコミュニケーションを取る、これがチーム開発で必要なことだと私は思うよ
そう言われても、何が良くて何が悪いのかよくわからないんです
たしかに、「 良い」っていう言葉だけだといろんな意味に取れるかもね。じゃあせっかくだから、私が知っていることをいくつか教えてあげよう
やった! ありがとうございます!!
開発者としてのステップアップのために
1人だけでやる小規模なプロジェクトとは異なり、大勢のメンバーが連携するプロジェクトや、保守期間が長いプロジェクトでは、それまで必要なかった種類の知識が必要になります。どうすればそのようなプロジェクトをうまく回せるのか、開発者としてのステップアップという観点で関心を持っている人もいることでしょう。また、中上級者を自認する先輩開発者の方にとっても、自分たちが普段当たり前のように行っていることをどうすれば後輩にも実践してもらえるようになるかは悩ましいところでしょう。
本特集は、初級者にまず最初に伝えるべきこととして、筆者らが所属する㈱クリアコードが大切にしていることのうち、チーム開発の基本である良いコードを書くための技法と良いコミュニケーションのための技法 に焦点を当てて解説しています。実際に社内でもよく話題になる事柄ばかりですので、ぜひ参考にしてください。また、新メンバーを迎え入れる際にも本特集を参考にして、後輩に自分の経験を伝えてあげてください。
良いコードを書くための技法
第2章から第4章では、良いコードを書くためにすぐに始められることを厳選して解説します。
第2章 では、良いコード[1] を書き続けるために必要となる、コーディングスタイルの統一 について解説します。チームの一員として良いコードを書くための知識や心構え、および、すでに長期間開発が続いているプロジェクトを少しずつでも良い方向に向かわせるための方法を紹介します。
第3章 では、良い設計 について解説します。クラスやメソッドが適切な粒度になるように設計されたコードは、読みやすく理解しやすいため、長期的なメンテナンスも容易になります。そのための基礎知識として、この章では初級者でも比較的簡単に手を付けられる「構造化」について解説します[2] 。
第4章 では、プログラミングにおいて最重要と言っても過言ではない、名前の付けかた について解説します。メソッドの名前を考えるだけで丸1日かかってしまった、機能やアイデアは良いがメソッド名が気に入らないという理由で提案が却下された、などのようなことがあるくらいに、名前付けは重要です。この章では、どのようにすれば適切な名前を無理なく付けられるのか、一般的な考えかたを解説します。
良いコミュニケーションのための技法
第5章から第7章では、開発者として継続的に成長するために、チームでの開発における良いコミュニケーションの取りかたについて解説します。
第5章 では、コードによるコミュニケーションの方法として、良いバージョン管理のしかたにつながる、良いコミットのしかた を解説します。開発を継続するためには履歴を管理する必要があり、現在ではツールとしてVCS(Version Control System 、バージョン管理システム)を使うのが定石です。第5章以降では、現在広く使われているVCSの1つであるGit [3] を例に挙げて解説しますが、紹介している機能と同等の機能はほかのVCSにもあることが多いので、一般的な知識として役立つでしょう。
第6章 では、他人のコードから学ぶ ための方法を紹介します。書籍や雑誌の記事などの文書化されたベストプラクティスからテクニックを学ぶことも有効ですが、プロジェクトごとの明文化されていない知識は、実際にコードを読んで吸収する必要があります。この章では、コードを読む習慣がない初級者が他人のコードを読み始めるきっかけを作る方法と、継続して無理なく読み続けるための方法を紹介します。
第7章 では、初級者が苦手な問題報告の方法や、良いアドバイスをもらうための相談のしかた を解説します。どちらも初級者がチームの一員として認められる過程で避けて通れないことです。聞き手に過剰な負担をさせないような良い問題報告や相談ができるようになると、より多くの仕事を任せてもらいやすくなるでしょう。
知るべきことはたくさんあるけど、まずはチーム開発の基礎体力になる考え方を身につけたほうがいいね
基礎体力、ですかぁ……うーん、なんだか地味っぽくないですか? もっとこう、すごいテクニックとか、目に見えて成長がわかる技とか、そういうのを知りたいんですけど
おっと、基礎が身についてないと高度なテクニックは使いこなせないよ? 末永く通用する基礎さえ身につけば、テクニックなんてあとからいくらでも編み出せるさ
なるほど……急がば回れということですね!
さあ、それじゃさっそく見ていこう!