概要
未経験のエンジニアの方でどうやったら開発に業務に携われることができるかご相談を受けました。相談に対して回答していく中で2人で一緒に何か作っていこうという話になり、それ自体をプロジェクトとして発足しました。
最初に結論から申し上げるとこのプロジェクトの取り組みによって無事に開発業務が決まりました。継続的に活動を続けていくことで1つの成果となり、それらの記録として残すためQiitaの記事としてまとめようと思いました。
なぜプロジェクトとして発足したのか?
今回の場合は未経験のエンジニアの方で目標設定も定めづらそうなイメージがありました。こちらから提案してもよいのですが、できるだけご自身の目標にあったテーマを一緒に考えてモノづくりを取り組むようにしました。
また取り組む際の考え方も一緒に共有できればと考えました。もちろんペアプログラミングなどで技術的なことは共有はしますが、技術だけでなく解決に至るまでの考え方を一緒に共有し、エンジニアとしてお互いに考える力を伸ばすことを大切にしました。
開発手法だけでなく問題に対する解決方法など総合的に取り組むためにプロジェクトとして発足しました。
8/9(水):インセプションデッキの作成
まずはプロジェクトとして目標の設定や何をやるべきか方向を定めるため、
Google Drawing
でインセプションデッキを作成しました。
実際には2人だけのプロジェクトになるため、できるかぎり未経験のエンジニアの方にアウトプットしてもらえるようにテーマを考えて、2人が同じ方向を向けるように準備します。
インセプションデッキの流れ
将来の目標設定
まずは将来の目標をブレストで出していただきました。直近の目標や今後どうしていきたいのか理想像などを書き出してもらい、それらを整理して紐づけることでアプローチ方法を探っていきます。
目標設定からのやりたいこと・やらないといけないこと
「Javaの成果物を作ろう」ということから更に必要なことを相談しながら案を出し合いながらチャレンジすべき内容を決めていきました。
技術的解決策:具体的にやること
具体的に使用する技術を記載しています。Java
の資格をお持ちとのことでJava
を活かすためにSpring
を中心にDocker
を使ったコンテナを用いたサービスを作ることになりました。
またエンジニアとしてどういったことをPRすべきか伝えるために、ポートフォリオの作成もやることとして設定しました。
ただしポートフォリオはストレッチゴールで成果物ができてから取り組むことにしました。
伝えたかったこと
2人で同じ問題に対して考えて整理することで具体的なやることまで導くことができました。この考えるということ自体が開発における業務でも必要になる場合があると思っています。
自分で解決案を提案してみたり、その提案を他の人と相談しつつよりよい行動に移すことで、1人のエンジニアが組織として動くことができそうです。
8/10(月)~8/16(日):開発環境の構築
8/10(月)以降から21:00~24:00にかけてペアプログラミングで作業しました。まずは開発環境の構築でdocker-compose
を使ってSpring
の基盤を準備しました。
ここらへんの知識はペアプログラミングで全体の構成などを伝えながらメリットとデメリットを共有しました。Spring
についてはeclipse
でガッチリ環境を作ってもよかったのですが、コンテナ化してどこでも動かせるようにしました。
eclipse
の場合で環境がおかしくなった場合はお互いの環境で再現できないことも考えられたため、コンテナですぐに環境を構築できるように進めました。
なお、課題管理などはGitLab
を使用してIssue
として管理しMerge Request
も使うようにしました。開発からある程度は経過していますが以下の場所で公開されています。
8/17(月)~8/23(日):アプリケーションの作成
インセプションデッキでできるだけシンプルなモノを作ることになっています。今回はチャットアプリのようなモノを作っていきます。
実際に開発を進める上でSpring
のコンテナをわざわざ起動しなおす必要があったり開発の手間が掛かっていました。
そういった手間もできるだけ改善するように取り組み、今回の場合ではソースのディレクトリとSpring
のコンテナの中を同期させ、Gradleで自動的に再ビルドするように対応しました。そのようなナレッジはプロジェクトのReadme.md
に追記して記録するようにしました。
開発や業務において問題に感じていることを改善することで今後のパフォーマンスに大きく影響するため、自分なりに何かアイデアがあれば話してみて取り組むと喜ばれることを共有しました。
週末にはおおよそのチャットアプリが完成したため週末に振り返りを行い、ポートフォリオの作成の準備を進めました。
8/23(日):振り返り
振り返りはKPT
で行いました。ここでProblem
としてあがったのがペアプロでドライバーが変わったときに楽しくなってガツガツ勝手につくっちゃうことがあったので注意が必要だと思いました。
あと全体の構成などを共有する際に理解するのに時間が掛かっているようで、ゆっくりと消化する時間は必要だなと感じています。
ポートフォリオを作成しようということなり、振り返りとは別に実際に学んだことを書き出してもらうことにしました。ポートフォリオの材料にできればと考えて書き出してもらいました。
学んだことを整理する
上記の全体の構成などに理解するのに苦労しているようなので、これまで学んだ技術などを書き出してもらい整理してもらいました。今回はシンプルなチャットアプリサービスですが、実際に使った技術はいろいろとあることがわかります。
上記の図があるだけでポートフォリオができるまでの間、成果物に関する全体構成や学んでいる技術を伝えることができます。来週からポートフォリオの作成に入りますが、作成している期間も企業にPRするための資料として利用できます。
ここでポートフォリオの作成がストレッチゴールに設定したことが効いてきそうです。
8/24(月)~8/30(日):ポートフォリオの作成
上記の学んだことを整理した図を元にポートフォリオを作成します。ここで大事なのは自分で作成して自分で説明できるモノを作り上げることです。人と相談していろいろとコンテンツを入れることはできますが、面談などで自分の口で説明できるポートフォリオでないと、自分の武器にならないので注意が必要です。
作成していただいたポートフォリオ
2人で効果的なポートフォリオを考える
基本的には中身については1人で考えてもらい改善点などはアイデア程度でお伝えしました。またアイデアもできるだけ複数案出して自分で選んでもらうようにしました。この手法自体もポートフォリオを作った経緯として別の資料として作成しました。
総評
2人でプロジェクトとして発足してやり切ることがよかったと思います。まずはインセプションデッキで同じ方向を向くことで、やりたいことなどのすれ違いなどがなくなりました。また定期的にペアプロの時間を設けることで考え方なども共有できることがお互いの成長につながったと思います。自分としては相手に伝える上で伝え方などが難しく、できるだけ具体例などを用いて説明するように工夫しました。
一緒に2人で考えるということは2人で同じ問題に取り組むことになるので、その解決におけるプロセスの経験は何事にも代えがたいモノになったと思います。
今回は無事にポートフォリオの作成まで達成することができ、それによって無事に開発の現場が決まったということもお伺いしました。特にSESの営業担当からポートフォリオがあるだけでPRしやすいのは事実で、エンジニアが事前に準備できる武器としては有効だと思います。
9月は9月で上記のプロジェクトを継承して別のプロジェクトとして継続しております。こちらの内容については別の記事で投稿しようと思います。
続きは以下の記事にまとめておりますので是非ご覧ください。
https://qiita.com/tamoco/items/ba857edd462d8b837a6a