「とりあえず動く」を卒業するためのアーキテクチャ入門編(3)

皆さんこんにちは。株式会社コスモルートでアンドロイドアプリの請け負い開発をしているT.Mです。

前回までの記事はこちら
「とりあえず動く」を卒業するためのアーキテクチャ入門編(1)
「とりあえず動く」を卒業するためのアーキテクチャ入門編(2)

前回は「どのようにプロジェクトの変化に対応するか」を説明しました。
今回はテストコードなど、テストに関係した内容に触れていきます。

2.3 テストコードとは?

テストコードとは、コードが仕様通り動いているか確認するために書くコードのことです。単体テストだったり、たまに納品前に行う人力のテストと混同する方がいますが別物です。(単体テストはテストコードの狭義で使われます)

テストコードの概念自体は言語に依存するものではないですが、いざコードを書こうとすると結構難しいものです。
=- なにをテストすればいいのかわからない
=- テストフレームワークの使い方が分からない
=- コードが入り組んでいてテストするのが難しい
など様々な疑問が湧いてきます。次第にテストを書くためにコードを修正する羽目になり、嫌気がさしテストコードを諦めるようになります。

正直な話、テストを書くには勉強が必要で、開発スピードも多少落ちます。テスト駆動開発といって、テストコードを先に書いて振る舞いを定義し、テストが通るようにコードを書くという手法もありますが、難易度が高くプロジェクトに関わる全員に強要するのは無理があると思っています。
またテストコードは全体的なメリットは大きいですが、開発初期フェーズや小規模プロジェクトではバグが少ないこともありテストを疎かにしてしまう傾向があるようです。

そうならないためにも、前章でコードを役割単位に分けて、テストを意識しました。前章のバズツイートを取得して表示するというアプリにテストコードを書いていきましょう。

その前にAndroidのテスト関係した内容に触れていきます。

フレームワークを簡単に紹介します。それぞれ勉強が必要なので公式ドキュメントを参考にしてください。

=- AndroidJUnitRunner 単体テストに使用,アプリの機能をテストする。
=- Robolectric Android依存のテストをJVM上で行うことで高速なテストが可能になる。
=- Espresso UIテストに特化。アプリの振る舞いをテストする。

またテストの規模としては、
=- 小規模テスト クラス単位や機能単位に関わるテスト。単体テストとも言う
=- 中規模テスト DBやAPIのテストや,モジュール単位の振る舞いのテスト。
=- 大規模テスト UIテスト。画面操作を通じて結果を得るテスト。E2Eテストとも言われます。

に分かれます。小規模テストでAndroidに依存しないコードは動作時間が少なくて済みますが、大規模テストになるほど動作時間もかかります。公式には、小規模テストが70%、中規模テストが20%、大規模テストが10%の割合が望ましいとされています。

次回は実際にテストコードを書いてみます。

お楽しみに!

エンゲージメント・サーベイのトライアル導入を実施しました。

こんにちは。初めまして。
株式会社コスモルートの新卒入社2年目の田中です。

今回はエンゲージメント・サーベイを全社に導入する前に一部の社員に向けてトライアル導入を実施したので紹介させていただきます。

エンゲージメント・サーベイとは

今回トライアル導入をすることになった「エンゲージメント・サーベイ」ですが、
私は今回推進タスクチームに選ばれるまで聞いたことが無かった単語なので、こちらで少し紹介させてください。

まず、エンゲージメントが高い状態とは、組織や仕事に対して自発的な貢献意欲を持ち、主体的に取り組めている状態です。
エンゲージメントは組織とメンバーや、上司と部下のつながり(関係性)のことを指しており、メンバー個人の数値や、会社の数値ではないということがポイントなようです。

エンゲージメント・サーベイは会社と個人の関係性を調べて改善することを目的としています。
結果で出るのは関係性の数値なので、数値に対して他人事として考えると改善が難しくなってしまいます。
出た結果について全員が自分事として考え、歩み寄ることがエンゲージメントの向上には必要なことだというのが勉強して得た感覚です。
(今回のエンゲージメント・サーベイのために調べたにわかの知識ですが、、、)
※エンゲージメントについて勉強させていただいたのは、
今回使用するツールであるwevox(株式会社 アトラエ)の公式ウェブサイトです。
wevoxの概要についてはこちら

コスモルートでの導入

コスモルートでは、従業員の組織に対する自発的な貢献意欲や主体的に取り組んでいる心理状態を高め、自走的に改善を実行できる組織構築を目指すため、今回トライアル導入を実施することとしました。

今回のトライアル導入では、メカトロニクス事業部の社員28名、新規入社社員15名の計43名を対象としました。
トライアルでのサーベイ実施は、4月と5月に2回行いその結果をもとに、6月に運用案の取りまとめを行うスケジュールで開始いたしました。

1回目のトライアルまでの準備

第1回のトライアルの前にエンゲージメント・サーベイ推進タスクチームのメンバーでリモート打合せを行い、今回のサーベイの設定や、対象者の方に何を周知するのかなどを話し合いました。

今回利用するwevoxというサービスでは
・回答者の実名を誰が見られるようにするのか。
・全体やグループごとの回答結果を回答者が見られるのか見られないのか
など、運用するにあたって選択肢がいくつかあったため、アナウンスをする前に今回配信するアンケートの仕様を確認する必要がありました。

私はこれまで全社に向けたプロジェクトの参加経験が無く、チームをまたいだ会議の経験はほとんどありません。
そのこともあり初めは会議で質問や意見を伝えられるか正直不安でした。
実際打ち合わせが始まると、皆さん確認事項や意見をたくさん挙げておられたので私も発言しやすく、疑問点などはすぐに聞くことができ、不安は杞憂に終わってよかったです。

打合せの結果、アンケートの設問数は、第1回は32問、第2回は16問の設問数で配信することが決定しました。
配信する前に1度推進タスクチームで試しに回答しましたが、32問回答する場合でも3~5分ほどで完了し、負荷は高くない印象です。

質問内容は、上司や同僚との関係に関する質問や、職務にやりがいを感じているかといった質問で、難しい内容ではありませんでした。

1回目のサーベイ実施感想

数回の打ち合わせの後、4月26日、1回目のサーベイを実施しました!
回答期間は2週間なので、結果が出るまでは回答率はどのくらいになるのか、結果が出るくらい回答してもらえるのか緊張の2週間でした。

そして5月11日サーベイの結果が出ました!
全体のスコアと、グループごとのスコアを閲覧することができました。
全体を通してのスコアはB評価で回答率は89%と、回答率もスコアもなかなか良かったのではないでしょうか。
回答数が著しく少ないと結果が出ないため、回答率が高くて一安心です(^^)
スコアの内訳は、以下の画像のように複数のジャンルに分かれてスコアを見ることができ、何を優先して改善していくべきなのかがとても分かりやすくなっていました!

結果の中でも私が驚いたのは、フリーコメントが予想よりも多くの方に書いていただけたことです。
43人中11コメントもいただくことができました。
打合せ場所の確保など環境に関するコメントや、社員同士の交流の機会を増やしてほしいというコメントなど、様々なコメントをいただきました。
いただいたコメントの内容から具体的な対応策を話し合い、コメントに対する回答案や対応策案も作成したのですが、まだ共有できておりません。
それをどのように共有するのかは現在検討中です。

今回コメントの有用性を実感したので、今後私がアンケートに答える際も、小さなことでもフリーコメントの欄を書こうという反省もしました。。。

1回目の結果は基準になりますが、継続してデータを集めることで、
スコアが下がっていて注意しないといけないカテゴリーや、その原因なども考えられると思うので、今後の調査に期待が高まる結果となりました。

2回目のサーベイの実施感想

1回目の結果を回答者に共有したのち、2回目のサーベイを実施しました。
2回目のスコアは1回目と同じくB評価でしたが、回答率が下がり、75%でした。
コメント数も第1回は11件だったのに対し、第2回は4件でした。

前回のサーベイから1か月しか間が空いていないため、コメント数が減るのは仕方がないかと思います。
しかしもしかしたら、前回のコメントに対する回答を共有できていないこともコメントを書く気持ちを薄れさせてしまったのかもしれないと個人的には考えています。

第2回の結果の分析は、推進タスクチームのメンバーでまだ話し合えていないため、スコアの変化や具体的な対策はこれから話し合う予定です。

トライアルのサーベイは全2回の予定でしたので、これでトライアルは終了です。
継続したデータの変化をみることで、エンゲージメント改善の具体的な案が考えられると思います。
本導入することになれば、スコアの変化からみえる結果を勉強してみると、興味深い考察ができるのかもしれないと思うと、とても楽しみです!

レジャー同好会って何?

皆さんいかがお過ごしでしょうか。コスモルートのSHです。
今回はコスモルート社員同好会のうち、レジャー同好会についてお話させていただきます。

◇レジャー同好会発足

実はレジャー同好会発足前からチーム内で定期的にバドミントンをしていました。
このバドミントン開催を続けていくうちに参加メンバーが増え、定期開催も定着してきたので、同好会にしてさらに活動の幅を広げようということで2019年にレジャー同好会を発足しました。
ではなぜ“バドミントン同好会”ではないのか。
それは定期開催していたメンバー間でバドミントン以外にもバレーボールや、冬にはスノーボードと様々なアクティビティをしていたので、バドミントンに限らず、季節に応じた活動をしていきたいということで“レジャー同好会”という形を取らせていただきました。

◇これまでの活動

同好会発足からもうすぐ2年が経とうとしています。
現在はコロナ禍ということもあり、活動を自粛しております。何とか再開するために感染対策等を検討中です。
なので、今回はこれまでレジャー同好会がどのような活動をしてきたかを載せていこうと思います。

◇バドミントン編

バドミントンは手軽にできるのと体育館が事務所近くということもあり、週1回のペースで活動していました。
会場となる体育館は予約が取れたところでというスタンスなので、雰囲気、照明の違いなどが味わえています。(毎回に次の予約をしておけば良いのに、なぜしないのでしょうね・・・。)

シャトルは羽がナイロン製でないものを使用。やはりナイロンでないものだと打った時の音、重みが実感しやすく、よりバドミントンを楽しめますね。
バドミントンのあとは行きたい人だけで腹ごしらえに行くこともあります。運動のあとの餃子は格別でした。

◇スノーボード編

バドミントン以外にも冬にはスノーボード(もちろんスキーもOK)をしに雪山へ遠征していました。(遠征と言っても日帰りですが)
同好会でスノーボードに行き始めた頃の私はまだスノーボードを始めて2回目で、お尻がすごく痛かったことも良い思い出ですね。
参加者は同好会メンバに限らず、社内で行きたい人を募っていくことが多いです。始めてという方でも参加しやすく、楽しめる雰囲気なので、毎シーズン参加者をドシドシ募集しております。

(会長のショートスキー、めちゃくちゃ格好良かったなー)


遠征先は事務所がある滋賀県の奥伊吹や、岐阜のウイングヒルズへ行くことが多いです。
大体近場で行うことが多いのですが、たまには広いコースが楽しめる場所にも行ってみたいものですね。福井とか。

◇今後の活動

このコロナ禍はおそらくまだまだ続くことと思いますが、その中でもしっかり感染予防対策を取りつつ、参加者が楽しめるようにしていきたいと考えています。
いち早く同好会として活動を再開できるよう頑張ります!!