こんにちは!新入社員の倉石真菜美です!
前編に引き続き、社内で行われた先輩方からの「新人研修」についての後編ブログを書きたいと思います。
前編ブログも是非見てみてください!
私たちは、今年1月にサイボウズからジョイゾーに転職した社会人6年目のBBさんと、フルリモートで子育てをしながら弊社のプラグイン開発を行なっている和田さんによる新人研修を受けてまいりました。
後編は、そんなお二人の研修がテーマとなっています。
BBさんによる新人研修
BBさんの新人研修のテーマは、PCの基礎知識、新人エンジニアが知っておくべき用語、コマンドラインについてです!
PCの基礎知識
PC(パーソナルコンピューター)とは
そもそもPCとは一体何なのでしょうか。
PCはパーソナルコンピューターの略称で、その名の通りパーソナル(個人が使うことのできる)なコンピューターです。もともとコンピューターは会社に一台のみ設置されており、社員全員共同で使っていた為「パーソナルコンピューター」ではありませんでした。
時代の移り変わりで、「コンピューター」が「パーソナルコンピューター」に変化していったのですね!
PCの中身
技術者として大切なことはPCの中身を知るということなのです!
これからエンジニアとなる私たちのために、その中身について詳しく教えてくださったので、その内容についてご紹介します!
PCを構成する代表的なデバイスは、CPU(プロセッサー)、メモリ、そしてHDD(ハードディスク・ドライブ)・SSD(ソリッド・ステート・ドライブ)の3つです。
調べてみると、主記憶装置、補助記憶装置など少し難しい用語が出てくると思いますが、
CPU=頭脳、メモリ=机の上、HDD・SSD=引き出しとして例えられることが多いです。
確かに、机の上が大きいほど一度に多くの作業ができますし、引き出しが多いほどたくさんの書類を保存できますよね。少し難しいと感じる用語も、このような例えで理解をすることができました!
bitとByte
bitやByteは聞いたことある方も多いのではないでしょうか!
これらはコンピューターにおいて扱われるデータ量の大きさを表す単位のことです。
今回の研修では、この単位についても触れたのでこれからご紹介していきたいと思います!
- bit
これはPCの世界におけるデータの最小単位のことです。私たちが普段使っている「数字」は10進数ですが、PCの世界では、全ての情報が2進数で表されています。2進数の一桁のことを1bitと表します。
- Byte
そしてByteというのはコンピューターにおいて扱われるデータ量の大きさを表す単位のことで、「1B」と書いて「1バイト」と読みます。1Bあたりの大きさをbitで表すと8bitとなります。
1Bの状態から1KB、1MB、1GB、1TBと大きくなるにつれて単位も変わってきますが、単位が1つ上がると1024倍となります。
「1000倍ではないのか?」と感じる方もいるかもしれません。実は1000は10進数で表された数字であり、コンピューターは2進数で表されます。そのため、2を10回かけた回数である、1024倍となるのです。
学校でも習った基本的知識ではありましたが、忘れてる部分や理解しきれていない部分も多かったです。
しかし、そのような知識についても教えてくださり、改めて知ることができたのでとても勉強になりました!
新人エンジニアが知っておくべき用語
新卒としてジョイゾーに入社してエンジニアとしての第一歩を踏み出した私たちですが、まだまだ知らないこともたくさんあります。
皆様も自分がエンジニアになれるのかと不安に思うこともあるかもしれません!
新人エンジニアがまず知っておくべきビジネス用語について、しっかり教えてくれました。
これからその一例についてお話ししていきます。
OKRとKPI
この用語はエンジニアのみならず、社会人として知っておくべき用語です。
OKR・KPIは、目標を設定し、その目標達成したかどうかを確認したり評価する管理手法のことです。
OKRは高い目標を達成するための目標管理手法で、目標値の6〜7割を目指していきます。
一方KPIは目標までの進捗を把握するための目標管理手法なので完璧に目標を遂行しなければなりません。
あまり聞いたことのない用語ではありましたが、目標に対してチームで達成するために必要な手法であるということを理解することができました。
このような基本的ビジネス用語もしっかりと教えてくださるのが弊社の研修のいいところですね!
コマンドライン
GUIとCUI
まず、コマンドラインを学ぶにあたっての予備知識としてGUIとCUIについて教えてくださいました!
GUIは、グラフィカルユーザインターフェースの略語です。
皆様が使用しているマウスやタッチパッドでの操作はこのGUIに当てはまります。
一方CUIはキャラクタリスティックユーザーインターフェイスの略語です。キーボードに入力されるコマンドラインによって、オペレーティング・システム上の操作を行う操作画面や操作方法の事を言います。
コマンドラインはこの操作画面に打ち込む入力行のことなのです。
今回の研修では普段あまり馴染みのないCUIの世界に足を踏み入れました!
代表的なコマンド
さまざまなコマンドの中から、代表的なものをピックアップして教えてくださいました。
その中から2つほどご紹介します!
- cd
cdはチェンジディレクトリの略語です。
ディレクトリはWindows・Macではフォルダのことを指しています。
cdはディレクトリ間での移動に使われています。例えば、「cd Desktop」と入力したとき、その意味は「デスクトップに移動する」となります。このコマンドラインを打ち込むと、今いる場所からデスクトップのフォルダ内に瞬間移動できてしまうのです。
- mkdir
mkdirというコマンドラインはメイクディレクトリの略語で、その名の通り、ディレクトリを作成します。マウス操作でディレクトリを作成することは多いはずです。
例えば「mkdir sample」と入力したとき、その意味は「sampleというディレクトリを作成する」となります。このコマンドラインを打ち込むと、自動的にsampleというディレクトリが作成されます。
このように、一見難しく見えるキーボードのみでのPC操作ですが、比較的単純な操作でディレクトリの作成や移動などの操作ができてしまうのです!
皆様もお手元のPCで是非やってみてくださいね。
和田さんによる新人研修
では、続いては和田さんによる研修についてご紹介したいと思います。
今回はzoomを繋いでリモートで研修を行いました。
和田さん自身も仕事の仕方に関するブログである
「仕様書ありきではないジョイゾーの仕事の楽しみ方」を投稿しているのでぜひご覧ください!
和田さんの研修のテーマはリモートワークでの働き方とプログラムにおけるテストです!
リモートワークでの働き方
まずは、1つ目のテーマである「リモートワークでの働き方」について書いていきたいと思います。
最近コロナウイルスの流行もあり、リモートで働く人がすごく増えましたよね!
皆様の中にもリモートワークをしてみたいという方もいらっしゃるのではないでしょうか。
ジョイゾーでもリモートワークをしている社員は多いですが、和田さんもその社員のうちの一人です。
そんな和田さんが、リモートワークでの働き方について教えてくださいました!
リモートワークで重要なのはコミュニケーション
和田さんがリモートワークを始めたきっかけは、子供との時間がなかなか取れなかったことや勤務地が頻繁に変わることによる引っ越しの手間の発生、そして地元で仕事がしたいというようなことでした。
それらの課題を解決できたのがリモートワークだったのです!
自分の理想の働き方ができるのは、とても理想的ですよね。
魅力が沢山あるリモートワークですが、この働き方においてとても重要なことがあります。
それは、コミュニケーションをしっかりととるということなのです。
リモートワークだと、直接社員と顔を合わせていないので、コミュニケーションを取る方法が限られてきます。
しかし、コミュニケーションが取れないと、社内での共有ができない、今なんのタスクを背負っているのかわからずチームでの仕事が進められないなどの課題が生まれてきます。
和田さんは、「1日1回は誰かと話すようにする」ことと、「作業内容を周知して、何の作業をしているかをわかるようにする」ことを心がけているそうです。
確かに自分からコミュニケーションをとる意識をし社内共有を徹底すれば、リモートワークのデメリットとして挙げられることの多い、伝達ミスや社員同士のコミュニケーション不足なども起こりにくくなりますね!
リモートワークを考えている方もぜひ、リモートワークのメリットだけでなく、起こりうるリスクも心に留めていただきたいと感じました。
プログラムにおけるテスト
皆様は「テスト」と聞くとどのようなことを思い浮かべますか?
学校で行われる定期テストのようなテストを思い浮かべる方も多いのではないでしょうか。
しかし、ここでいう「テスト」は少し意味が異なります。今回和田さんが教えてくださったのは「プログラムにおけるテスト」です。
テストの重要性
プログラムにおけるテストとはプログラムが仕様通りに動いているのか、異常がないかを確認をすることです。
このテストを行わないと、納品したプログラムに不具合が起こる可能性が高くなり、会社と個人の信用の失墜につながったり、手戻りが発生してしまうケースが多く発生してしまいます。
このように、プログラムにおいてテストはお客様との信頼関係を築く上で特に重要となってくる項目なのです。
テストの観点
テストの観点とはソフトウェアが正しく動作するかを確認するための項目、着眼点、発想の仕方といった、いわばテストを行う上での「切り口」のようなものです。
一般的には、機能要素、検証アングル、テストパラメータ、確認ポイントの4つがテストの観点として定められています。
- 機能要素
テスト対象の、検証すべき機能を分解して表していくもの
- 検証アングル
テストする機能に対し、どんな条件で、どんな特性を検証するかを表すもの
- テストパラメータ
値、状態、イベントなど、テスト対象にどんなものを"input"するかを表すもの
- 確認ポイント
テスト対象が正常に動作しているかなどの、システムのどの動きを検証するかを表すもの
基本的に、この4つの項目に沿ってテストを行っていきます。
このあと、和田さんが実際にテストを行っていく時の極意をお話ししてくれました!
和田さん流テストの極意
弊社の特徴は、アジャイル開発(小単位で実装とテストを繰り返して開発を進めていく開発)であること、お客様の利用方法が多種多様であること、権限などのkintoneならではの設定が盛り込まれているという3つがあります。
アジャイル開発により変更点も多く発生しますし、お客様が多種多様なことにより様々なシステムが存在しているのでその分より多くのパターンを想定したテストが必要になってきます。
そこで和田さんは、とにかく「バグを出しにいく」テストを行なっています。
数多くのバグを狙って発生させることで、実際にどういった状況になったらバグが出るのかを知ることができ、様々な状況に対応できるようになっていくのです!
下の画像は実際のテスト用のExcel画面です。
このようにケースを複数準備し、それに応じてわざとバグを発生させることでそのシステムがどう動くのかを見極めます。
このように、自分の会社の開発スタイルに合わせたテスト方法でテストを行っていくことが大切であると和田さんはおっしゃっていました。
確かに、一般的に定められているの観点を守ることも大切ですが、自社に合わせたテスト方法を考えることもさらにお客様との信頼関係を築く上で大切だと私も感じました。
最後に
BBさんの研修では、PCに関する基礎知識、エンジニアの基本用語という部分にフォーカスを当てた学びを得ました。
私は大学時代、あまりPCについての知識を得る場がなかったため、今回の研修は私にとって大変有意義なものとなりました!
これからエンジニアとして仕事に貢献していくために、このような知識はどんどん自分のものにしていく必要があると感じました。
そして和田さんの研修ではリモートワーク、プログラムにおけるテストについてお話をいただきました。
リモートワークに関しては私も定期的に行っていますが、やはりコミュニケーションという部分ではリアルでの出社に比べやりづらいと感じることも多いです。しかし、和田さんが行っていたような「1日1回は誰かと話すようにする」のような意識を持つことでリモートワークがスムーズに行えるのではないかと感じました!
テストは、調べていく項目も多く、様々な可能性やリスクに気づいていく必要があるので地道でかつ難しい仕事であると感じました。
しかし、テストをしてくれる人がいるからこそお客様が安心してシステムを使うことができると感じています。「システムは作って終わりではない」ということを痛感しました。