高専カンファレンス in 東京に行ってきた話 #kosenconf

3/25 に株式会社オプティム東京本社で開催された、高専カンファレンス in 東京に参加してきました。
http://kosenconf.jp/?109tokyo


春をテーマにした発表を募集していたので、春から環境が変わり地方から首都圏等に出てくる人もいるかと思い、「富山に移住して変わったこと」というタイトルで発表をしてきました。(自分の場合は横浜から富山だったので、首都圏から地方という逆パターンなのですが)

いつもは直前に資料を作ってたりしたのですが、今回は1週間以上前に資料をほぼ作り終えて直前に手直しという形で余裕をもって準備をしました。がやっぱり話忘れてたことがありますね。「富山に来たら車中心になってしまったので運動量が減ってしまった」「横浜では1日1万歩くらい歩いていたのに、富山に来てからは3000歩前後になってしまった」というような話もしようと思っていたのですが、資料作成の段階ですっかり忘れてしまっていました。


高専カンファレンスの参加は、前回の東京で開催された100tokyo以来なので1年3ヶ月ぶりといったところでしょうか。初めて会うかた、久しぶりに会うかた、いろんな人と話ができて楽しかったです。ちなみに今回はこんな感じで個人名刺を用意していきました。

数年前に作った名刺が余っていたので、自分が撮った写真をシールにして貼ることで手軽にいい感じな名刺を作りました。
f:id:shiget84:20170330001912j:plain


シールの作成は、カメラのキタムラが近くにあったのでここの分割プリント(シール加工込み)を利用しました。
分割プリント|デジカメプリント、写真現像はカメラのキタムラへ


Webから00:46に発注したら、営業開始直後の10:08に商品仕上がりのメールが入っていました。仕事が早い!
店舗に取りに行くことにしていたので取りに行ったら、そこでシール加工するかを聞かれたので、
シール加工を依頼し5分ほど待っていたらシール加工も完了。手軽に使えていいサービスだなーと思いました。

ただ、自分の場合は16分割のシール加工での印刷だったのですが、それぞれの写真に(プリクラみたいに)切れ目が入っていなかったので、自分でカッターを使って切る必要があったので、そこだけが面倒でした。
期間に余裕がある場合には、他のシール作成サービスを利用してみてもいいかなー、という感じですね。




ということで、25日は高専カンファレンスに参加し、26日はKosenDJ-bu #12(Kosendj-bu)に参加し、横浜にいたときによく行っていたダーツバーで軽く飲んでから富山に帰って来ました。
土曜日は1万歩ちょい、日曜日は2万歩ちょい歩いたのですが、富山に来て全然歩かなくなってしまっていたので、月曜日は軽く筋肉痛でした。

まとめ

高専カンファレンス in 東京を中心に東京に行って遊んで来ました。お世話になった皆様ありがとうございました。

何を目的にテストをするのか

最近テストについてが話題ですね。
テスト計画の立て方 - Qiita
UIテスト自動化でSIerのExcelスクショは滅びるのか - てんてんのぶろぐ


そもそもソフトウェアテストって何を目的に実施するんでしょうか?

ソフトウェアテストを行う目的としては、「欠陥やバグを検出する」「要件を満たすことを保証する」「リリース後の品質リスクを見積もる」「開発プロセス改善の指標となる」などが挙げられる。どの目的を重視するかは、開発するソフトウェアプロダクトの目的やニーズ、開発組織の成熟度などによって変わってくる。

情報システム用語事典:ソフトウェアテスト(そふとうぇあてすと) - ITmedia エンタープライズ

ふむふむ。なるほど。


以前、私が働いている時に上司から「品質を上げるためにテストはしっかりやるぞ」ということを聞いたことがあります。ところで品質とは何でしょうか? ソフトウェア品質の評価に関する国際規格で、ISO/IEC 9126 というものがあるそうです。(あまりテストについて詳しくないので、とりあえずwikipediaへのリンクです)
ISO/IEC 9126 - Wikipedia




テストといっても幅は広いし、深さもありますね。
仕事しているとテスト工程の中で様々なテストを実施することになるかと思いますが、「これで本当に十分なテストが実施できているのだろうか」と不安になることもあるかと思います。
そんな時は、品質指標とテスト工程で実施するテストのマトリクスを作成してみてはいかがでしょうか?

品質指標\テスト工程 単体テスト 結合テスト システムテスト 受け入れテスト
機能性
信頼性      
使用性    
効率性    
保守性  
移植性        

※)○/◎は適当

このような表を作成してみることで、「こういった観点のテストが漏れていたので確認した方が良い」と気づくことができるかもしれません。
品質指標を細分化して表を作成したり、非機能要件の項目についても検討してみたり、というようにプロジェクトにおいて重視することを考慮し、テスト計画を立てられると安心して開発が進められそうです。


いやー、テストって本当に奥が深くて難しいですね。



ついでに

UIテスト自動化について、機能性の担保はできるけど使用性(ユーザビリティ)については評価が難しいので人手で実施するしかないのではないか、と思っています。このあたり詳しい方がいらっしゃいましたら教えてください。


ということで、(スクショしてExcelエビデンスとして残すかはさておき)UIのテスト自動化で機能性の担保ができるようになっても、使用性などの確認・担保のために人手でテストをするのはしばらく続きそうですね。雇用が守られてよかった。

あと更についでですが

転職しました。

高専カンファレンス100 in 東京 に参加してきた話

気がつけば12月。もうすっかり冬ですね!
冬と言えば2008年12月6日に第3回の高専カンファレンスとなる「高専カンファレンス2008 Winter in 東京」が開催された*1のですが、それから7年が経過した今年12月19日および20日に「高専カンファレンス100 in 東京」が開催されました!

東京の大規模カンファレンス

今回の高専カンファレンス、東京大規模開催では初めての参加者としてのフル参加でした。
2008年は北陸の学生だったので参加できず、2009年の「高専カンファレンス 2009秋 in 東京(通称009tokyo)」および2010年の「高専カンファレンス 2010秋 in 東京(通称014tokyo)」はスタッフをやっていたので普通の参加者ではなく、2012年の「新春・高専カンファレンス2012 in 東京」は両日とも寝坊してしまうという失態をおかしてしまったのでフル参加できてませんでした。



今回も金曜日が会社の忘年会で、27時過ぎまで飲んでたので開演に間に合うか不安でしたが、無事に間に合うことができました!




また、新春のときは2日目も寝坊し遅刻してしまったので、今回は調布に宿を確保することも忘れませんでした!(土曜日の1泊だけですが)





Twitter を交えてふりかえる高専カンファレンス

1日目

1日目は基調講演とアイスブレイクと夢これ。どれもとても楽しむことができました。

基調講演

@earth2001yさんと@igaiga555さんによる基調講演。


高専カンファレンスに関わりはじめたころに「地産地消」って聞いていい言葉だな、と思ったことを思い出しました。それから7年、全国各地で高専カンファレンスが開催されついに100回。基調講演を聞きながら胸が熱くなりました。
「参加者同士の相互作用」などもとても心に残りました。2009年春に就職で北陸から関東に出て来たときに、高専カンファレンスからつながって色んな人と知り合い、色んな人のお世話になってこれまでやってこれたことなどを思い出しました。(関連:
高専を卒業して10年がすぎた - しげっと!
参加者の相互作用、とても良いですね!

アイスブレイク

4部屋にわかれ、その部屋の中でもさらにチームにわかれ、他の参加者の皆さんと交流してきました!
みんなの名前を覚えられる企画や、高専あるあるが話せた七不思議/伝説作り、久しぶりに他人と手をつないだ知恵の輪みたいな企画、どれも楽しかったです!

夢これ

今回の高専カンファレンスはテーマが「Dreaming」ということで、10人のかたが「夢」を語ってくれました。
皆さんの発表どれも素敵で良かったのですが、特に印象にのこったのがぜむ(@zemu_them)さんの「推理小説に魅せられて」でした。



孤島の洋館、とても遊びにいきたいですね!


2日目

2日目は複数トラック発表と一般発表、ライトニングトークでした。

複数トラック発表

複数トラック発表、思わず 014tokyo でやったアンカンファレンスを思い出しましたね。あのときも今回もそうなのですが、複数の部屋同時並行で面白そうな話をしているので、何を聞きにいこうかとても悩ましかったです。




一般発表、ライトニングトーク

しょぼん(@syobon_0xff) さんの「ブログを立ち上げよう!」はとても参考になりました!(しかし、実践できるかどうかは別問題......)



おびなたさんの「プロコンの競技OB戦をやってみた」はOB戦開催の裏側を知ることができてとても面白かったです。



ライトニングトークも十人十色、いろいろな話がきけて楽しかった!




そしてクロージングへ

クロージングのまえに、高専カンファレンスの顧問である島田先生のお話。島田先生には009tokyoと014tokyoのスタッフのときにとてもお世話になりました。
75歳になるというのにとてもお元気で、島田先生の話を聞いているととても元気がでてきます。



そして、告知タイム、夢これの発表者への物理的なフィードバックとなる夢これレター(みんな会場で書いたよね?)贈呈の後、クロージングです。



クロージングは実行委員長の感動的なお話。すごく心にくる本当に感動的なクロージングでした。とても熱い想いが心に残りました。
12/23のKosen Advent Calendar 2015の記事もとても楽しみですね!


まとめ

久しぶり*2高専カンファレンスへの参加、しかも2日間にわたる東京での大規模開催。イベントとしてとても楽しく、また、数年ぶりに会う人やTwitterでは交流があったけど会うのが初めての人、普段からよく会ってる人など、たくさんの参加者の皆さんと話をすることができ、参加してよかったなー、と思いました。
今回の高専カンファレンスは現役の高専生/学生、OB/OG、高専初期に学生だった先輩がた、そして島田先生と幅広い年代の人々が参加していました。ここまで年齢層の広いイベントはなかなかないのではないでしょうか。


009tokyo のスタッフをしていたころは20代前半だった自分も気がつけば31歳。今回の現役学生など若い人からは刺激を、先輩がたからは元気をもらう事ができました。参加できて本当によかったです。実行委員の皆さま、ありがとうございました!!!

*1:当時は北陸在住の学生でお金がなく修論もヤバかったので、現地には行けずustreamで見てました

*2:前回がいつのどこの開催だったか思い出せない

Excelのシート一覧が欲しい

今日、はてなブックマークを眺めていたら、Yahoo!知恵袋の質問が目に入りました。detail.chiebukuro.yahoo.co.jp



みんな、似たようなこと考えるんですね。私も以前、複数Excelファイルのなかの複数のシート一覧が欲しくなったので、Ruby と Win32OLE を利用して雑にシート一覧を取得するスクリプトを書いたことがあります。
せっかくなので、久しぶりに動かしてみました。手元にある Windows 7 Pro 64bit, Office 2007 環境に Ruby Installer 2.2.2 を入れてみたところ、問題なく動きました。

#!ruby -Ks

require 'date'
require 'win32ole'

#----------
file_dir   = 'C:\dev\work\files'

xls_files  = '*.xls'
xlsx_files = '*.xlsx'
#----------


def getPath(filename)
  f = WIN32OLE.new('Scripting.FileSystemObject')
  return f.GetAbsolutePathName(filename)
end

def getData(filename, excel, output_sheet, num)
  book = excel.Workbooks.Open(filename)
  
  begin
    worksheet_num = 0
    book.WorkSheets.each do |sheet|
      num = num + 1
      output_A = "A" + num.to_s
      output_B = "B" + num.to_s

      output_sheet.Range(output_A).value = book.Name
      output_sheet.Range(output_B).value = sheet.Name
    end
    ensure
    book.Close
  end
  
  return num
end


excel = WIN32OLE.new('Excel.Application')
output_book  = excel.workbooks.add
output_sheet = output_book.Worksheets(1)

counter = 0

Dir.chdir(file_dir)
Dir.glob(xls_files) do |f|
  filename = getPath(f)
  counter = getData(filename, excel, output_sheet, counter)
end

Dir.glob(xlsx_files) do |f|
  filename = getPath(f)
  counter = getData(filename, excel, output_sheet, counter)
end

t = Time.now
output_filename = t.strftime("%Y%m%d_%H%M") + '.xlsx'
output_filepath = file_dir + '\_' + output_filename

output_book.saveAs output_filepath
output_book.Close


C:¥dev¥work¥files 以下にある xls, xlsx ファイルについて、A列にファイル名を、B列にファイル名を出力します。
f:id:shiget84:20150601233419p:plain
f:id:shiget84:20150601233541p:plain

取得できました! わーい!



さて、取得できたのはよいのですが、とりあえず動けばいいやという雑なコードですね。
僕は仕事で Ruby を使ったことがなく手元で参考書とかみながら書いているというレベルなので、ちゃんとした書き方など教えてください。
というか、こういうのこそ GitHub に載せるべきですね。そのうちやります...

ITIL ファンデーション試験を受けた

客先常駐を終えました - shiget84's blog』で書いた通り、この1年間はユーザ企業に運用支援という立場で常駐していたのですが、運用をよりよくまわすには、ということでちょいちょい ITIL を参考にしていました。

Information Technology Infrastructure Library - Wikipedia


入門書を買ってざっと流し読みして、どういうことが運用現場で使われているのか、というようなことを参考に仕事をしていました。そんななか、やっぱりしっかり勉強して身につけよう、ということで先日『EX0-001 ITIL ファンデーション(最新シラバス2011対応) 日本語』試験を受け、無事に合格することができたのでその記録を残しておきます。


ITIL の概要としては、昨年の夏頃に以下の本を買って読んでました。ただ、これは試験のためというよりも運用支援という業務を行う上での参考にするために買って読んでいただけです。

ITIL V3実践の鉄則

ITIL V3実践の鉄則



ちゃんとした試験勉強としては、以下の問題集を読んで書籍の問題を解く、という普通の資格試験対策をやりました。

IT Service Management教科書 ITIL ファンデーション シラバス2011 (EXAMPRESS)

IT Service Management教科書 ITIL ファンデーション シラバス2011 (EXAMPRESS)

土日で本読んで勉強して問題を解いて、疲れたので夜に飲みに行って、また勉強して、月曜日に有給休暇をもらって昼まで寝て少し勉強して夕方から試験を受けて合格、という流れでした。
そこまでガッツリ勉強したわけではなかったので受かるか不安でしたが、無事に受かって良かったです。


最近、情報処理技術者試験からも離れていて資格試験勉強をして受けるという事をするのが久しぶりでした。ただ、こういった機会はできるだけつくったほうがいいかなーと思っているので、秋には久しぶりに情報処理技術者試験を受けたいところですね。

客先常駐を終えました

3月末をもってユーザ企業への常駐を終えました。


運用支援ということで、約1年間お客様であるユーザ企業に常駐していましたが、当初の契約通り3月末をもって期間満了で常駐を終えました。
ベンダーからの常駐という立場でお客様企業に通っていましたが、特にベンダーだからといって制限されていることは多くはなく(もちろん、業務に関係ないものは見れなかったり、コアな部分は社員しか見れないようになっていましたが)、とても働きやすい環境で1年間を過ごすことができました。


これまで SIer のなかでシステム開発・運用保守を中心に仕事してきていました。そのなかで、もちろんお客様の役に立てるシステムを開発したいと思っていましたし、そうなるよう現場で行動してきたつもりです。ただ、それはあくまでもシステム開発・運用保守という現場のなかでのことだったのだ、ということをこの1年で学びました。
ユーザ企業にはユーザ企業のビジネスがあり、それを止めないこと、ビジネスをうまくまわすためにシステムがある、という当たり前のことを痛感させられた1年でした。
ユーザ企業にとってはビジネスがまわれば正直なところITなんてどうでもいい。ただ、今はITとビジネスが切っても切りはなせなくなっているので、ビジネスを止めないためにシステムやインフラを安定して運用させる必要がある、ということ。「ユーザに価値を提供する」というようなことはずっと考えてきたつもりでしたが、実際にユーザ企業に常駐してお客様の立場でITを考えてみたときに、これまでの取り組みでよかったのだろうか、ということを意識させられました。


仕事としては、主にインフラ周りを中心にやらせていただいたのですが、インフラは安定運用されていて当たり前、止まったときの影響がとても大きいのでどう上手く運用させるか、そしてどうやってコストを下げていくか、というようなことを考えさせられました。
「運用は手順書を整備して、アウトソースしてコストを下げる」というような話を聞いたことがあります。しかし、それで本当に上手くまわるのか。もちろんアウトソースするにしても『業務知識』がないといけないので全くの素人に任せるということはないと思いますが、この『業務知識』というのがどこまで求められるのか、ということがとても気になりました。*1
システムがどう動いているのか、インプットとアウトプットは何か、というようなことがいわゆる『業務知識』となるかと思いますが、それだけでは不十分で実際に使っている(組織内の)エンドユーザや取引先などの関係者のことなども強く意識しておかなければなりません。



私がシステム開発・運用をやってきているときにも「障害は起こしてはいけない」という意識で取り組んでいましたが、実際にユーザ企業において障害が発生したときにどれだけビジネスに影響があるのか、(社内外に)どれだけ関係者がいてどのように連絡をしていかないといけないのか、システムが(一時的に)止まったときにビジネスに影響を与えないために何をする必要があるのか、というようなところまで考えられていたか、というと疑問が残ります。



この1年間の常駐生活のなかで、少しはそういったことを意識できるようになってきたと(自分では)思います。
今後また自社に戻り SIer という立場でシステム開発に取り組んでいくなかで、この1年間で学んだことを活かしていけたら、と思います。

*1:ちなみに、『属人性』と『属技能性』を意識したのも、この辺りを考えていたときですね。

「Me2.0」を読んだ

かれこれ4年くらい前に買って、買ったはよいが1/4くらい読んだあとに放置していた「Me2.0」を読み切りました。

ME2.0 ネットであなたも仕事も変わる「自分ブランド術」

ME2.0 ネットであなたも仕事も変わる「自分ブランド術」


日経BP書店|商品詳細 - Me2.0


読むにあたって

本を買ったきっかけは、高専カンファレンスでもお世話になったじゅーんさんさんが読んだというエントリをみて気になったからです。
「Me2.0」を読んだ - 準二級.jp

積んでいる本はたくさんあれどなかなか自分の部屋にいると誘惑も多いので、バレンタインデーという目出たい日に一人で本を持って出かけ集中して読む時間をつくりました。





感想

2010年に翻訳版が出ている本ですが、今読んでも全く違和感がないですね。当時よりも Facebook 人口が増えている(はず)ので、より身近に感じられるかもしれません。
書籍紹介には、「この『Me2.0』は、これから勝者になるためのパーソナルブランディング戦略を説いた本だ。」との記載があります。また、書籍の20ページ〜22ページには以下の記載があります。

パーソナルブランディングとは、自分にまつわる事実や特徴を明らかにし、それを周囲に伝えることだ。

あなたには今も、そしてこらからも、自分の能力や感心に合った仕事につき、思い通りのキャリアパスをつくっていく自由がある。

・現在のキャリアパスに満足しているならー(中略)
・現在のキャリアパスに満足していないならー(中略)
・将来が見えないならー
 何がしたいのかを明確にしよう。自分が重要だと感じるものを一つひとつ検討していけば、自分に合ったキャリアパスが見えてくる。

将来が見えないかどうかはともかく、「自分が重要だと感じるものを一つひとつ検討していけば、自分に合ったキャリアパスが見えてくる」というところに心を打たれたので、じっくり考えてみようと思いました。


全300ページちょっとの本で、「第1部 Me2.0の時代」「第2部 思い通りのキャリアをつくる四ステップ」「第3部 Me2.0は始まっている」という構成になっています。僕が読んだときに受けた印象では、前半に Why や What が書かれていて、後半に How が書かれている、という感じでしょうか。
How を実践するかどうかはさておき、Why や What が書かれている前半は定期的に読み直したいと思う内容でした。

自分のできていることとできていないこと

僕はこの「shiget84」という名前を使い始めてから6年と数ヶ月になります。統一した名前を使って、高専カンファレンスをはじめとした勉強会などで発表させてもらったり、このはてなブログを書いたりする、というところなどは(特にパーソナルブランディングとは意識していませんが)できているところでしょうか。ただ、Twitter なんかには日常をさらけ出しすぎていて、ブログや勉強会をきっかけに知り合った人にはノイズが多いものになっていたりする点は反省すべきかもしれません。(いや、だからとってすぐに変えるつもりもないのですが)

学生さんにオススメしたい

つい先日はてなブックマークで話題となっていたエントリをみて、この本を学生さんにオススメできたらいいなーと思いました。

若者にIT業界に希望を持ってもらいたい - だいくしー(@daiksy)のはてなブログ
このエントリのなかで、だいくしーさんは次のように書いています。

これから彼らが就職活動をしていくなかで、企業の書類選考の段階において、学歴というのはある程度合否を左右する要因になることだろう。ただ、Githubアカウントでコードをシェアする、勉強会に顔を出して名前を覚えてもらう、blogを書く、などの情報発信を通して、所属を超えた個人としてのバリューをアピールすることができれば、紙の上の情報など取るに足らないものとして無効化することはできる。

このMe2.0は「個人としてのバリューをアピールする」ことについて著者の経験をもとに体系立てて書いてある本なので、気になった人には読んでもらいたいですね。


本を読んでいてメモしたところ

  • p15
    • こうした企業は、社員に最高のものを(多くを、ではない)求めることが、ひいてはビジネスの成功につながることを理解している。彼らは過去の経験から、自分の個性が明確になり、受け入れられ、育まれるようになると、社員は仕事に精を出すようになることを学んだ。
  • p58
    • X世代とY世代は互恵的な関係で結ばれている。X世代は豊富な実務経験や職場での地位をY世代のために活かせるし、Y世代は技術の面でX世代をサポートできる。いうまでもないが、尊敬しあい助け合う関係こそ、最強の関係だ。Y世代は、X世代をメンターに持つことの価値を忘れてはならない。
  • p66
    • 私はまず、人脈を使ってインターンを獲得し、「横断的学習(cross-learning)」の機会を得ることにした。横断的学習とは、ある領域を理解するために周辺領域を学ぶことだ。これはぜひ実践してほしい。たいていの仕事は、関連分野の知識がなければうまくいかないからだ。
  • p139
    • 重要なのは、こうした問題を「障害」にしてしまわないことだ。これらの問題を「作業項目(アクションアイテム)」と捉え、ToDoリストに加えよう。
  • p167
    • 「紫の牛」になれ!
  • p171
    • まずは自分にとっての「成功」を定義する。
  • p173
    • SMARTな目標
  • p196
    • 表6.1 面接でよく聞かれる質問
  • p229
    • ビデオを何本配信しようと、ブログ記事を何本書こうと、どんなに立派なパーソナルブランディングキットを持っていようと、本人に実力がなければ成功はつかめない。

まとめ

  • 数年単位で積ん読となっていた「Me2.0」を読みました
  • 記載内容には自分が実施できていることもあり、特に大きな違和感はありませんでした
  • 「成功」のための「パーソナルブランディング」と身構えて実践するもよし、今の日常を楽しくするために共通の趣味をもった仲間を見つける手段として実践するもよし、興味のあるかたは読んでみてください