#開発とは
1.開発の現状について
IT業界では、何をやりたいの?開発?それともテスター?など聞かれることが多々あります。
実際どういうものが開発でどういうものがテストなどの境界など人それぞれによっては考え方が
異なると思います。
本資料では、筆者の経験を交えて実際の現場での開発についての認知はこういうもの?といった
知識をチームでの開発を題材として展開します。
私たちがするソフトウェアの開発は、ハードウェアの開発と比べ修正を後から加えることもできるため
新規開発以外に、既存のものをよくする「保守開発」や似たようなプログラムを開発する
「派生開発」もよく行われます。
さらに某ウイルスの影響で開発の概念も大きく変わってきています。
リモートワークも開発方法の変化とも言えますね。
2.チームによる開発
<チームによる分業=開発という考え>
例えば以前からその現場に先輩社員のAさんがいるとしましょう。
Aさんは"設計"や"製造"業務をそのプロジェクトで任される大ベテランのエンジニアです。
そこに新入社員の若手Bくんがメンバーとして参入することとなりました。
Bくんはそのプロジェクトでテストだけをプロジェクトが終わるまでの期間の間、任されました。
この時点であれっ?てなった方は違和感にお気づきかもしれません。
Bくんはテスターでプロジェクトに参入したのですが、そこの開発現場での認識はテスターも
立派な"開発"だという考え方でした。
これは、全工程を含めて開発であるという考え方とチームで分業して従事しているみんなが開発
のメンバーという考え方です。
一方で"開発"とは設計工程から製造などのみが開発だという考え方もあります。
間違っていたら申し訳ないのですが、よく目にする開発経験〇年以上というような募集は
後者のほうを要求されていると考えています。
結論はチームによる分業=開発ではなく、チームによる分業=開発の方法ということですね。
そういうところをあいまいにしてしまうことで、
以前の筆者もテスト工程しかまだ経験はしてないが開発〇年以上しましたよ!といっていました。
3.チームによる分業の特徴について
<メリット>
・個人のスキルを上げることで柔軟に適応ができ、幅広く長期にわたり開発効率を上げる
・ツールを使うことで手軽に効率を上げられる
<デメリット>
・個人のスキル向上に一定の時間がかかるため即効性は期待できない
また、1日は24時間しかないからその時間での効率アップにも限界がある。
・ツールは決まった動作しかしないので、想定していないことなどには使えません。
分業はその長所も短所も全体に大きな影響を与える諸刃の剣です。
だからといって少人数で全部やればいいやんという考え方は私個人は違うと思います。
大人数での分業をうまく行うことができれば非定期的で特殊な業務に対しても大幅に開発効率を
向上させることができます。
4.チームによる分業、タスク管理について
チームでプログラム開発や保守などの作業をする際、新しい機能の追加依頼が来たり
エンドユーザーから調査の依頼が来ることがあります。
そんな時、自分が抱えているタスクと優先順位付けや期限付けなどタスク管理も
しなければいけません。
このような状況に陥った場合、もちろんチームで開発を行いますから自分のことだけ
終わっていればいいやとはいけません。
タスク管理表をチームで準備して記入したり、週初めに各チームで会議して実施する範囲を
決めて進めたりと方法はたくさんあります。
私は開発現場ではどうかと聞かれるともちろん報告メールや進捗の会議などもやりますが
それに加えて自分個人のタスク管理表を使っていました。
タスク管理表を上長にお渡しすれば、そのまま一週間のタスクの流れがわかり、
上長が進捗状況などを把握しやすかったからです。
こういったコミュニケーションや連携など、ITの知識以外の能力も必要になるわけですね。