1年目から身につけたい! チーム開発 6つの心得

第1章 良いコードと良いコミュニケーション―一人前のプログラマへと至る道

この記事を読むのに必要な時間:およそ 2 分

とある開発チームに配属され,プロジェクトの一員として開発に関わり始めた後輩くん。社会人生活1年目,順調な滑り出しかと思いきや……?

ううーん……


後輩くん,何を悩んでるんだい?


先輩さん!(そうだ,先輩さんに聞いてみよう!)チームの一員としての開発って,何に気をつければいいんですか?

な,なんだい出し抜けに


実は,さっきリーダーに「もっとちゃんと,チームでの開発であることを意識して作業するように」って言われたんです。でも,具体的にどうすればいいのかで途方に暮れちゃって……

ああ,後輩くんはこれまでチーム開発の経験がなかったんだね。チーム開発では,短期集中で1人でやる場合とはまた違うやりかたが必要になってくるんだ

違うやりかた? 仕様どおりに動くように作って,納期までに完成させればいいんじゃないんですか?

それももちろん大事だけど,それだけでは不十分なんだ。そうだなぁ,いろいろあるとは思うけど,良いコードを書いて,良いコミュニケーションを取る,これがチーム開発で必要なことだと私は思うよ

そう言われても,何が良くて何が悪いのかよくわからないんです


たしかに,⁠良い」っていう言葉だけだといろんな意味に取れるかもね。じゃあせっかくだから,私が知っていることをいくつか教えてあげよう

やった! ありがとうございます!!


画像

開発者としてのステップアップのために

1人だけでやる小規模なプロジェクトとは異なり,大勢のメンバーが連携するプロジェクトや,保守期間が長いプロジェクトでは,それまで必要なかった種類の知識が必要になります。どうすればそのようなプロジェクトをうまく回せるのか,開発者としてのステップアップという観点で関心を持っている人もいることでしょう。また,中上級者を自認する先輩開発者の方にとっても,自分たちが普段当たり前のように行っていることをどうすれば後輩にも実践してもらえるようになるかは悩ましいところでしょう。

本特集は,初級者にまず最初に伝えるべきこととして,筆者らが所属する㈱クリアコードが大切にしていることのうち,チーム開発の基本である良いコードを書くための技法と良いコミュニケーションのための技法に焦点を当てて解説しています。実際に社内でもよく話題になる事柄ばかりですので,ぜひ参考にしてください。また,新メンバーを迎え入れる際にも本特集を参考にして,後輩に自分の経験を伝えてあげてください。

良いコードを書くための技法

第2章から第4章では,良いコードを書くためにすぐに始められることを厳選して解説します。

第2章では,良いコード注1を書き続けるために必要となる,コーディングスタイルの統一について解説します。チームの一員として良いコードを書くための知識や心構え,および,すでに長期間開発が続いているプロジェクトを少しずつでも良い方向に向かわせるための方法を紹介します。

第3章では,良い設計について解説します。クラスやメソッドが適切な粒度になるように設計されたコードは,読みやすく理解しやすいため,長期的なメンテナンスも容易になります。そのための基礎知識として,この章では初級者でも比較的簡単に手を付けられる「構造化」について解説します注2)⁠

第4章では,プログラミングにおいて最重要と言っても過言ではない,名前の付けかたについて解説します。メソッドの名前を考えるだけで丸1日かかってしまった,機能やアイデアは良いがメソッド名が気に入らないという理由で提案が却下された,などのようなことがあるくらいに,名前付けは重要です。この章では,どのようにすれば適切な名前を無理なく付けられるのか,一般的な考えかたを解説します。

注1)
ここでは,プロジェクトに参加したばかりの人でも無理なく読めて,長期的にメンテナンスしやすいコードを指します。
注2)
良い設計については「構造化」のほかにも「デザインパターン」などの名前が付いた先人の知恵がたくさんあります。しかし,それらは初級者がすぐに始めるのは難しいためここでは扱いません。

良いコミュニケーションのための技法

第5章から第7章では,開発者として継続的に成長するために,チームでの開発における良いコミュニケーションの取りかたについて解説します。

第5章では,コードによるコミュニケーションの方法として,良いバージョン管理のしかたにつながる,良いコミットのしかたを解説します。開発を継続するためには履歴を管理する必要があり,現在ではツールとしてVCSVersion Control Systemバージョン管理システム)を使うのが定石です。第5章以降では,現在広く使われているVCSの1つであるGit注3を例に挙げて解説しますが,紹介している機能と同等の機能はほかのVCSにもあることが多いので,一般的な知識として役立つでしょう。

第6章では,他人のコードから学ぶための方法を紹介します。書籍や雑誌の記事などの文書化されたベストプラクティスからテクニックを学ぶことも有効ですが,プロジェクトごとの明文化されていない知識は,実際にコードを読んで吸収する必要があります。この章では,コードを読む習慣がない初級者が他人のコードを読み始めるきっかけを作る方法と,継続して無理なく読み続けるための方法を紹介します。

第7章では,初級者が苦手な問題報告の方法や,良いアドバイスをもらうための相談のしかたを解説します。どちらも初級者がチームの一員として認められる過程で避けて通れないことです。聞き手に過剰な負担をさせないような良い問題報告や相談ができるようになると,より多くの仕事を任せてもらいやすくなるでしょう。

注3)
クリアコードでもGit をメインで利用しています。

知るべきことはたくさんあるけど,まずはチーム開発の基礎体力になる考え方を身につけたほうがいいね

基礎体力,ですかぁ……うーん,なんだか地味っぽくないですか? もっとこう,すごいテクニックとか,目に見えて成長がわかる技とか,そういうのを知りたいんですけど

おっと,基礎が身についてないと高度なテクニックは使いこなせないよ? 末永く通用する基礎さえ身につけば,テクニックなんてあとからいくらでも編み出せるさ

なるほど……急がば回れということですね!


さあ,それじゃさっそく見ていこう!


著者プロフィール

沖元謙治(おきもとけんじ)

株式会社クリアコード所属。プロジェクトで利用しているライブラリにバグを見つけたら,アップストリームにパッチを投げることを意識しています。


結城洋志(ゆうきひろし)

株式会社クリアコード所属。Firefox黎明期からアドオン開発を手がけ,業務上もMozilla製品の技術サポートを担当。代表作は「ツリー型タブ」「テキストリンクなど。また,日経Linux誌にて「シス管系女子」を連載中。

コメント

コメントの記入