今回、デモ作成のために小規模な開発を実施したが、アジャイル前提で始めたのに、アジャイルどころか開発をおぼつかない状況になってしまいました。
先日のblogでも反省点として触れたのですが、主にメンバーのスキルと開発環境に原因があったように感じました。
アジャイルというか通常の開発において、当たり前に重要なことなのですが、アプリケーション開発が久しぶりだったこともあり、備忘録のために教訓をまとめておきたいと思います。
要件を聞きながらロジックを実装できるスキル
コンサルタントが考える画面の動作に対して、アプリケーションを作っていくのだが、本来のスピード感を目指すのであれば、この段階できちんとしたhtmlとデータの取扱を決めながら進めるべきだった。
今回は担当者がデータアドミニストレーターが通常業務だったため、一生懸命にデータ定義だけをしてしまい、画面遷移や実装がすべて後手に回ってしまった。
しかも、いざ作ろうとしたらスキル不足で作れないことが判明。
これは完全に俺のサポートミス。というか、スキルアセスが曖昧すぎたのが一番の原因だと反省しています。
想定スキルとこれだけの乖離があるなら、何とか時間を作って俺が要件ヒアリングを担当すべきだったな、と。
現実には他のプロジェクトも掛け持ちしているので、そんなことはできないのですが。
メンバーが使い慣れた開発環境の用意。あるいは充分なトレーニング期間
敗因の一つが、未体験のアプリケーションサーバーを採用してしまったこと。これは他のソフトウェアの導入の問題で、特に考慮されずに採用してしまったのですが、この未体験の環境に慣れるのに非常に時間がかかってしまいました。
特に俺の学習曲線が悪くて、アプリケーションを書き始めるまでの環境設定に手こずってしまった。
これはエンジニアとしてのスキル不足って話で、また反省です。
なかなかマルチスキルを身につけるのは難しいので、致し方ないところもあるのですが……。
とはいえ、スムーズに開発を始めるには、環境を充分習熟しているか、しっかりとトレーニングの期間を想定して、早期に環境を導入していくような対応が必要でした。環境もスペックが足りず、普段のPCで導入できなかったのも痛い点でした。
普段はメインフレームの黒い画面との戦いなので、いまいち勘所が分からず。
って、もはや何でも屋になってますね、俺……。
強力なリーダーシップ−−なあなあを排除しなければならない
コンサルタントは開発のことを(残念ながら)分かってないし、進みが遅れ始めたときに、もっと強力に進め方のテコ入れをすべきだった、とこれも反省。
このやり方で実装遅れませんか?→「仕様さえ決まれば、後は単純なアプリケーションでいいので、大丈夫だと思っています」。
うーん……と思ったけど、その場は進めてみてください、と終えてしまったのが最初の失敗。
その後、メールで軽くバトルしたり、イニシアティブをこちらが取得することで、やっと実装作業が進み始めましたが、完全に突貫工事。
というか、アプリケーション書いてるのが俺1人だし、画面動作(JSP)も怪しいところだらけだし……。
なんとか一日一緒にデバッグして完成近くまでこぎ着けましたが、危ないところだった。
これも最初のところで、もっと自分でガツガツと進め方を提示して、dueを明確にしていくべきでした。
いちおうリーダーは他の方にお願いしていたので、安心してしまっていたのですが、油断大敵ってことですね。
自分の甘さが身に染みます……。
などなど、非常に考えることが多かったですね。
アーキテクトを目指す自分としては、大失敗な開発でしたが、今後の糧になると思えば良かったかな、と。
もはやアプリケーション開発の土地勘がない、なんてことは言い訳にはならないので、日々精進!
あと、最後の教訓として、モノ作りを片手間にやるのは大変だということを痛感。
実装は中国に依頼するとか、時間確保できる人をメンバーにいれるとか、人繰りの問題も大きかったと思います。
マネジメントもぼちぼち思い出さないといけませんね。
10月からは久しぶりにチームみていかなくちゃいけないだろうし……。
そんなお盆。
夏休みは9月に取ることにします。