DevOps/Agile

Windows Application Driverでらくらく自動化

こんにちは、技術研究所の「むらたん」です。
この記事は 『CRESCO Advent Calendar 2017』 3日目の記事です。

ロボットを使って業務を自動化するRPA(Robotic Process Automation)が注目されています。
ロボットを使うメリットはあちこちで語られているので詳細は割愛しますが、自動化への期待はIT業界でも高く、苦行のようなテスト実施の自動化はプログラマの夢と希望であったりします。
Webブラウザをスクリプトで操作する「Selenium」というオープンソースのライブラリがあります。ブラウザの起動、指定されたURLの表示、入力値の設定、ボタンアクション、画面イメージの保存など、ブラウザで行う操作をプログラミングして実行できます。スクリプトで記述できることは何でも出来るので、Webシステムのテスト自動化のデファクトスタンダードになりつつあります。
この考え方を流用して、iOSやAndroidのアプリケーションを操作する「Appium」が登場しました。と、歴史を語りだすと止まらなくなるので、そろそろ本題です。

MicrosoftさんのGithub公式アカウントには「Windows Application Driver」が公開されており、Appiumで「Windowsアプリケーション」が操作できます。

!?
これ、Windowsパソコンを操作できるってことは、Webアプリだろうが、Excelだろうが、何でもスクリプトで操作できる最強ツールでではなかろうか。
でも、操作するためのスクリプトを書くのも辛いという方もいらっしゃると思うので、今回は実行環境の構築もプログラミングも簡単な「Python」で行います。
Selenium/Appium、Pythonを知らない方にも実践していただけるよう、細かく説明していきます。

続きを読む

PM学会で発表してきた話 ~2017年度秋季研究発表大会編~

8月31日と9月1日に開催されたプロジェクトマネジメント学会(PM学会)の全国大会である秋季大会で発表してきました。
このプロジェクトマネジメント学会には、クレスコは法人会員として2016年より参加していますが、前回の春季大会に続き2回連続での発表になります。

今回は、弊社社員4名による『アジャイル開発プロジェクトにおける新人の成長事例』の発表についてご紹介します。

今回の発表内容

発表内容は、アジャイル開発プロジェクトでの新人育成の事例紹介になります。

変化の激しいビジネス環境に適した開発手法としてアジャイル開発プロジェクトが注目されています。しかしアジャイル開発プロジェクトでは、その卓越性がある故に誰もが参加できるというものではありません。今回の事例は、高度なスキルが前提であるアジャイル開発プロジェクトに参加した入社一年目の新人が職場経験まったくのゼロの状態から、どのようなチームの支えがあって、いかにスキル習得としたかを詳細に確認しています。

続きを読む

たまには研究の話を①

こんにちは。技研の「110」です。

これまでの投稿はcanvaの話や、資格勉強の話イベント報告、はたまたゲームの話など、ライトな話が多かったのですが、たまには自分の普段の研究についてお話ししたいと思います。

私の研究の話を紹介するのは実は初めてではなく、以前にPM学会に論文を出して発表したことを記事にしています。

今回は昨年度の研究の課題と今期の取り組みについてご紹介したいと思います。

1.昨年度のおさらい

昨年度は、弊社のプロジェクト管理ツールを利用し、設計工程のレビュー記録を収集しメトリクスを表示する仕組みを構築しました。

 

 

続きを読む

認定スクラムプロダクトオーナー研修で学んだ3つのこと

お久しぶりです、技研の”むらたん”です。

先日、認定スクラムプロダクトオーナー研修を受講してきましたので、内容や学んだことについて紹介します。
これから受講されようと考えている方の何かの参考にしていただければ幸いです。

研修概要

研修スタイル

今回の講師も江端さんです。研修スタイルは認定スクラムマスター研修のときと同じで、受講者で研修内容を作り上げていきます。
(アジェンダが無く、受講者に合わせて作り上げていく研修スタイルは、トレーナーランクの高い講師のみが許されている方法らしいです)
ただし、スクラムマスターの研修と異なり、スクラムについての内容は初日の午前中にさらっと要点の説明を受けます。

所感

プロダクトオーナー(PO)の研修はPOとしての役割を全うするために必要な知識や素養を問われる研修となっており、スクラムの全容を学ぶ研修とは異なります。スクラムのことを理解したいのであれば、スクラムマスター研修のほうがオススメです。
POの役割はシンプルですが、いざ実践してみようとするとなかなか難しい役割です。POが正しく振る舞えないとスクラムの良いところや目指しているところが損なわれ、失敗する印象を受けました。スクラムのルールはスクラムマスターに任せて、POどのように振る舞うべきなのか、をずっと考えさせられ、実践していく3日間でした。

続きを読む

VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話

こんにちは(ほ)です。

私の所属している社内コミュニティでは、IoT についてのドキュメントをGitbookで作成し、EC2上のJenkinsでビルドとデプロイを行っておりました。

ただ、この環境では下記の点から、コスト的にもったいないと感じていたり、重要なタイミングでサーバの再起動が必要になることがあったため、CodePipeline, CodeBuildを使用したサーバーレス環境に移行することにしました。

  • t2.microだと1GBのメモリしかないため、ビルド時にJenkinsがお亡くなりになることがある。
  • t2.microだと1GBのメモリしかないため、GitbookのプラグインのインストールでJenkinsがお亡くなりになることがある。
  • かといって、大きなインスタンスを起動させておくほどは更新頻度が高くない時期がある。

続きを読む

HubotでYammer用Botを開発したときのハマりどころ

こんにちは、技研の「むらたん」です。

ChatOpsやってますか?「乗るしかない このビッグウェーブに」ということで、今期の開発技術SIGでも「定形作業の自動化 powered by ChatOps」をテーマとしています。

ChatOpsするなら、

ChatツールとしてSlackを導入して、HubotでBotスクリプトを開発して、「PING」って書き込むと「PONG」って返ってきたり、「PUG」って書き込むと、可愛いワンちゃんの画像を探してくれるんです。

みたいな内容はよく見かけますが、エンタープライズ利用を考えると、そう甘くはありません。

弊社の現状における課題と対策

「Slack」のエンタープライズ利用

  • GmailやOffice365を利用しているのに、これ以上、コミュニケーションインフラを増やすことはできません。
  • 今回はOffice365に含まれる「Yammer」でやってみることにしました。

「Hubot」でBotスクリプトを開発

  • Hubotって、Javascriptを便利にしたCoffeeScriptで開発する必要がありますが、そんな言語を書いたことはありません。
  • HubotのRuby版であるLitaなどの利用も考えましたが、Yammerとの接続アダプタが公開されていません。
  • 今回は開発量を最小限とするため、CoffeeScriptを覚えながら、Hubotで開発することにしました。

「PING」って書き込むと「PONG」って返ってくる

  • 特定の入力に対して特定の反応をするのは簡単そうですが、状態の管理はどうするのでしょう。
  • Yammerは「チャット」ではなく「ソーシャル」ですが、Slackと同じ感覚で使えるのでしょうか。
  • 今回のエントリーはこのあたりの課題をどのように乗り越えたか、を紹介します。

続きを読む

認定スクラムマスター研修で学んだ3つのこと

お久しぶりです、技研の”むらたん”です。

少し前になりますが、認定スクラムマスター研修を受講したので、紹介をしたいと思います。

講師の江端さんは研修を「トレーニング」と称しており、カリキュラムは「現場で起こりうる問題をスクラムマスターとして、どう乗り越えるか」を研修参加者全員で体験し、答えを導くという内容でした。

具体例として、研修は5人グループが6つの30人が参加しておりますが、講師から、

「どんな研修にしたいか、全員で決めて下さい」

といったお題が出されます。

続きを読む

スプリントプランニングとプランニングポーカーのやり方

こんにちは、技研の「むらたん」です。

先日、客先で開発チームのメンバーとしてスクラムを実践している社員から「スクラムが上手く回っていない」という相談を受けました。

具体的には、以下の内容です。

① プランニングしたポイントがスプリント期間中に膨らみ、予定していた作業を達成できない。その結果、プロダクトオーナーに悪い印象を持たれてしまう。
② ポイントが膨らむ理由は「環境整備」や「調査」のように、プロダクトには直接関係なく、スプリントプランニングで計画しきれていないタスクを行う必要が出てくるためである。
③ そもそも、メンバーによってベロシティが異なるから、ポイント自体の扱い方がよくわからない。

現場を観察しておらず、立ち話で聞いた程度の情報なので外れているかもしれませんが、聞く限りでは以下の印象です。

  • ポイントと工数が同じものとして扱われており、ポイントで見積もることの本質が理解できていない。
  • プロダクトオーナー(PO)、スクラムマスター(SM)、開発チームというロールの役割と責務の認識が正しくない。

今回のエントリーでは、ここから推測される問題について触れたいと思います。

免責事項
以降、スクラムの用語を用いた説明になります。用語の説明はスクラムガイドあたりを参考にしてください。

続きを読む

定型作業の自動化とChatOps

こんにちは、技研の「むらたん」です。

今年度も開発技術SIGを継続することになり、引き続き、リーダーを務めることとなりました。
活動方針は以前のエントリーにもあるとおり、「技術を【自分たちのため】に活用して、プロジェクトの品質・生産性を向上させる」です。

今期のテーマは
「プロジェクト管理基盤の機能強化と全社標準化」
「定型作業の自動化」
としました。「プロジェクト管理基盤」は昨年からの継続活動であるため簡単に、「定型作業の自動化」については、詳しく紹介したいと思います。

続きを読む

【テスト自動化#2】「テスト設計の自動化を支える技術」

はじめに

こんにちは、技研の「むらたん」です。

前回の投稿でテスト自動化に先駆けて、テストについて簡単に触れました。

「テスト自動化」と聞くと、人が手で行っている作業が自動化され、楽になり、品質も上がって幸せになれるような感覚を抱きがちですが、それは紛うことなき幻想であります。この手の話は各方面で語りつくされており、内容に目を通してみると、現時点では「こうすれば良い」という模範解答は無いということが見えてきます。
そして、しばらくはこの状態が続くことと思われます。

それが故に、
「我が社のテスト自動化事例」という形で各社の取り組みが紹介されたり、有償・無償を問わず、多様なテスト自動化ソフトが開発・販売されているのだと思います。

続きを読む