バルテス株式会社 ソフトウェアテスト部の小谷です。
私は2019年7月時点で入社半年程度ですが、現在は様々な業務に並行で携わっています。複数プロジェクトの同時管理、協力会社の新規開拓、新卒社員の指導、社内委員会の品質向上、コラム執筆などです。また、お客様の懇親会でのジャグリング披露という奇抜な方法でも関係構築に貢献しています。
このように、様々なことを担当しているためか「よくそんなに時間がありますね!」と驚かれることがしばしばあります。ポイントはシンプルで、効率化のために理論を活用しているからです。実務経験の蓄積は大切ですが、それ以上に理論が大切であることを実体験ベースで学ぶことができました。
今回のコラムでは、理論学習の重要性に気づくことができたエピソードと、学習に大切な3つのポイントを皆様にご紹介できればと思います。
課題の認識 私の体験事例
大学卒業後、新卒でソフトウェア開発の会社に入社しました。
3ヶ月間の新入社員研修が終了した後、私は客先配属となりました。
新人研修でトップの成績を収めていた私は、意気揚々と現場に向かいました。
しかし、そこで現実を知ります。現場マネージャーの指示がちっとも分からなかったのです。
たとえば......
小谷「WindowsServer2008が2台必要と書いてあるのですが、1台しかありません」
マネージャー「今は改修だから、WindowsServer2012でやっていいよ」
小谷「このソフトが、起動しないのですが......」
マネージャー「ほら、対応versionを見て。このアプリはWindowsServer2008だけだから、2012じゃなくて2008にインストールしないと!」
といった具合に、懇切丁寧にかみ砕いて説明してもらわないと動けなかったのです。
新人研修で学んだコーディングはできますが、現場では当然知っておくべき基本的なIT知識が欠如していたことが原因でした。
何とかしなくてはならないと、焦りを覚えました。
現状から脱却しようと試み、まずは基本情報技術者試験の勉強に取り掛かりました。
勉強を始めてみると、これまで暗くて見えていなかった部分に光が差し込むように、視界が一気に広がりました。
今までぼんやりと把握していた言葉の「意味」や「定義」が、しっかり理解できるようになっていったのです。
言葉の意味が分かるようになると、今度は今、自分が何のために何を設定しているのかが分かるようになりました。
やろうとしていることのやり方だけではなく、「何のためにそれを行うのか」を理解する。
こうして資格勉強に取り組むことで得られた新たな知識は、私の仕事に大きく活かされることになりました。
職場の課題解決に貢献
基本情報技術者試験に合格して3ヶ月経ったある日、先輩社員に質問をするために席を立ちました。
作業を横で見ていて、あることに気づきました。30行ほどのクラスに対して、150行ものテストコードを書いていたのです。
この内容のクラスで、テストコードが膨らんでしまう原因として考えられる可能性は......。
「もしかして全数テストしてる?」
私は基本情報技術者試験に合格後、テスト知識を学ぶためにJSTQB※認定テスト技術者資格のFoundation-Levelを取得していました。
JSTQBで学ぶ"ソフトウェアテストの7原則" の一つに、"全数テストは不可能"という項目があります。
「入力パターンは膨大になるので、全てをテストするのは適切ではない」というものです。
現場のマネージャーに問題点を伝えて、はじめてこの問題が認識されました。
マネージャーからはチーム全体に「分岐が異なる処理の境界値だけをテストする」という方針が示されたのです。
結果、JSTQBの理論一つで工数が半減し、部門全体の開発効率の向上に貢献できました。
現場では、それまで定時帰宅が困難だった状況が改善されるなど、様々な好循環が生まれました。
この出来事は、私に理論を学ぶことの大切さを教えてくれました。
※JSTQB=Japan Software Testing Qualifications Board
学習に大切なこと 3つのポイント
このように、理論的な知識が職場に役立つ場面は、私たちの仕事の様々なシーンで見ることができます。
上記の経験から幾年経ち、現在私はバルテス株式会社で新入社員研修のクラスを受け持っています。
姉役として新卒社員を補助の成長や悩み解決を助力する立場にいるため、社員からは「勉強計画が立てられない」とか「計画通りに進められない」といった相談を受けることがあります。
そんな中で、かつての経験から学び得た理論や知識の学習に大切な3つのポイントを伝えています。
1. 目的意識を明確に持つこと
目的意識とは、一言で表現すれば「何のためにそれを行うのか」ということです。
目的意識が希薄な状態では、目の前の作業に気を取られて判断を誤り、本当に大切なことを見失ってしまう恐れがあります。
また、「周りに言われたから」と「目的を達成したいから」とでは、学びの速さも深さも大きく変わってきます。
一人一人の本音に即した、目的意識の明確化が大切です。
2. 定期的に反芻すること
反芻とは、学習事項を繰り返し考え、自分なりに解釈することを指します。
理論を学習して、自ら仕事に活かし、経験を基に自己研鑽して、再び仕事に活用し、更に自己研鑽を繰り返す。
このように、学習した事柄を自分なりに咀嚼し、更に再考して自分自身の知識として活用することで、理論をより深く学ぶことができます。
定期的に自ら振り返るポイントを作っておくことで、理論を現実で活用する力が身に付きます。
3. 質問できる人を持つこと
机上の理論は、一見すると現実のプロジェクトに活用できません。
しかし、高いパフォーマンスを発揮できている人は、何かしらの理論を実務に応用している可能性があります。
そんな人に質問できれば、たとえ壁にぶつかっても乗り越えることができることでしょう。
まとめ
実技と理論は、陸上競技に例えることができます。
長距離走を行うのに短距離走者向けの走り方をすれば、最初の100mは誰よりも早く走ることができるでしょう。
しかし、すぐに乳酸がたまって走れなくなり、ゴールに辿り着くよりずっと前にヘトヘトになってしまいます。
ソフトウェアの開発やテストのスキルアップでも同じことが言えます。
実技を優先すれば最初のペースは上がるかもしれません。しかし、理論を知っているのといないのとでは後の成長が大きく違うのは経験談の通りです。
日々業務に追われる中なかなか理論と知識を学ぶのは簡単ではありませんが、バランスよく身に着けること心がけましょう。
入社して間もない段階で理論の部分だけを学んでも、その大切さを本当に理解するのは難しいかもしれません。
現場で理論を活用して実際の仕事と結びついたとき、はじめて理論を体得し、本人や周りの成長につなげられるのではないでしょうか。