はじめに
みなさんこんにちは。プログラミング歴5ヶ月の新米エンジニアです。
この5ヶ月で、ソロ(一人でプログラムを書くスタイル)・ペア・モブ全ての開発手法を経験してきました。
そこでこの記事では、「初学者の私視点で」これらの手法について好き勝手に語っていきたいと思います。
大いに主観的な内容となっていることを承知の上で読んでいただけると幸いです。
ペアプロ・モブプロ(幸福度★)
この人たち、どうも苦手なんですよね。笑
理由はなんと言っても、一人で熟考する余地がないことです。
これには私の性格もある程度関係しています。
大前提として、私は問題にぶつかった時まずは一人で考えたいタイプ。
ペアやモブの場合、分からないことがあったらすぐに質問して解決することができますよね。
これはペアモブの大きなメリットだと思いますが、まず自分で考えたい私にとっては逆にデメリットに感じてしまうわけです。
しかもこれらの質問の中には、瞬時には答えを導き出せないけれども少し考えれば分かる問題がたくさんあるように思います。
もちろん一人では絶対に解決できなかったであろう問題も多々あります。
しかし私としては、そういう問題にもまずは一人で向き合いたいんですね。
「漠然と」分からない状態で質問することにものすごい抵抗を感じてしまうわけです。
そしてこれは同時に、自分で考えたコードではないけれどもそのコードの意味は分かる、という状況をつくり出します。これがものすごく違和感。
これは、受験時代のこんな経験に似ています。
先に問題の解答を見て、「はいはいこうやるのね〜」と分かった気になる。
しかしいざ同じような問題に再びぶち当たると、「うわーこれなんだっけーー」と全く解法が思い浮かばない。
プログラミングでも同じです。
分かった気になっただけで結局何も身についていない感じがどうしても付きまとってくるのです。
もちろん、簡単な処理であればこれらのような感情を抱くことはありません。
しかし、ペアやモブでごくごく簡単なタスクに取り組むことはあまりありませんよね。
ある程度の難易度であることが多いような気がします。
従ってペアやモブをする時は全体的にモヤモヤした気持ちを抱えながら進めることが多くなり、結果的に苦手意識が生まれてしまいました。
私のレベルが周りのみんなに追いつけば、議論も弾んで楽しいんだろうなあとは思いますが。
ソロプロ(幸福度★★★★★)
ソロの場合、上で述べたようなモヤモヤ感を抱くことはありません。
問題にぶつかればとりあえず自分で考えますし、書いたコードは全て自分が考えたものです。
もちろん質問することもありますが、「自分なりに考え抜いた上で」分からない状態なので、説明してもらった時の理解度や納得感が段違いに大きいです。
そのあとで実際にコードを書く時は、説明してもらった内容をもう一度自分で確かめながら書き進めるので、曖昧な理解に留まることはありません。
ただ質問する時にはペアやモブと違って誰かに作業を中断してもらう必要があるため、ききづらいという意見もあると思います。
確かにこれはペアモブにはないデメリットです。
しかし、そんなことを気にしていてはこちらの仕事も進みません。
ここは心を鬼にするしかないのです。
先輩たちも、無理矢理中断させて質問するなんてことがない限り、快く対応してくれるはず(と信じたい)です。
また全てを教えてもらわなくとも、ヒントだけ与えてもらってあとは自分で考えるという手もありますよね。
兎にも角にも、ペアモブよりも自分の頭で考えることが必然的に多くなることで、しっかり理解した上でタスクを進めることができるわけです。
とっても魅力的だと思います。
初心者の場合はソロの方がペアやモブより時間はかかりますが、タスクを終える頃には内容をしっかり身につけることができています。
このように、タスクに取り組んでいる過程での心持ちも、タスクを終えた後の「モノにできた感」も、ペアやモブより圧倒的に上だと感じています。
質問することが憚られるというデメリットを加味しても、私はソロを推したいと思います。
余談
この記事を書き終わった後で、先輩エンジニアが「ペアやモブをすると分かっている時は、事前に自分で全部コードを書いてから取り掛かる」と言っているのを小耳に挟みました。
これなら上述したような事態にはならない可能性が高いのでは?
ということで、次機会があったら試してみることにします。
終わりに
プログラミング歴5ヶ月の超初学者が各開発手法について一丁前に語らせていただきました。
「君、分かってないよ」みたいな意見がありましたらどしどしコメントください。
最後まで読んでいただきありがとうございました。