転職やフリーランスの件について追記

前回の記事が結構反応あったのと、今行っている会社の社長氏が「うちで働いていること隠さなくてもいいですよ」と言ってくれたので、もうちょっと詳しく書いてみます。

そもそもなんで隠してたのか

過去色々ブログに書いてきましたので、私のことを良く思ってない人も多いだろうなと思ってたので、あんまり勤めている会社(といっても社員じゃないけど)を公にするのもどうかなと思ったのですが、まぁ良いと言われたので書いた次第です。

今働いている会社

root42 Inc.です。こちらで週4日の稼働ということでSES契約で働いています。私は今はDocurainというサービスの実装保守運用広報?などを担当しています。こないだ、Spring fest 2017でブース出展してきました。私のブログとJavaは多分遠いところに居るので当ブログ読者の方で参加した人は多分居ないと思われますが。今度また別のイベントでもブース出展するかも知れません。

root42 Inc.で働こうという気持ちになったのは、大きく3つの理由がありました。前にもちょっと書きましたが。

一つは、root42で使用されているMOD99というシステムです。これは社員の方々が使用する超高速開発ツールの一つであります。超高速開発ツールという名前すら私はそれを聞かされた時は知りませんでしたが、実は同じような趣旨のことを前職でやった経験がありました。超高速開発ツールとはその名の通り超高速にシステム開発を行えるツールなのですが、私はScala+Playを使用して「SQLとHTMLさえ知っていれば誰でもWebシステムが実装できる」というフレームワーク的なものを前職で開発していました。HTMLの中にDBのテーブル、カラムをプレースホルダ的な感じの記法で埋め込んでおき、呼び出されるURLごとに実行するSQLを書いておけば、あとは裏でいい感じにテキストボックスや日付選択ボックスが表示される、みたいな作りでした。これは最終的にSeleniumでE2Eテストを自動生成するようなところまで作り込む予定だったのですが、途中で予算が付かず&上司との衝突&社内ルール的にお客さんが居ない状態で先行投資で開発を進める手続きがクソめんどくさいなどの理由で頓挫しました。が、一応はこれを実プロダクトに利用した経験もあり、社内システムのいくつかはこれで動作しています。

で、MOD99は私がやりたかったことのすべてが綺麗に実現されており、さらにこれを使用して社員の方数名でかなり大きなプロジェクトを何度もこなしてきた経験がお有りとのことで、もう世の中には上には上が居るんだなぁ(こなみかん)と素直に感心したのが一つ。この大きなプロジェクトというものの予算も聞きましたが、前職ではたぶん同じ額だったら30人位人を投入しても結局デスマーチになってる、みたいな規模だったのですがそれを数人で開発したとのことで腰抜かしました。

ちなみにこのMOD99…を直接解説したわけではないですが、超高速開発って実際どうなの?という記事が最近ITmediaで公開されました。

システム導入が爆速に? 「超高速開発」の出番ってどこですか?

上記記事の挿絵は私が担当しています。絵でお金をもらったのは始めての経験でした。(大昔に自分のWebサイトでイラスト集を2個くらい売ったのを除けば…)

二つ目は非常に私にとって都合の良い条件を提示して下さったこと。リモート勤務可、週4の稼働で可。料金会社持ちの飲み会に毎回出席させて頂いた上、健康診断やインフルエンザの予防接種まで受けさせてもらっています。たぶんSES契約で個々まで厚遇してくれる会社は無いんじゃないかと思っています。

三つ目はDocurainの開発をさせて頂けるとのこと。当初新規サービスの立ち上げで一からコードを書いてほしいと伝えられていましたが、実際かなりの裁量を与えられて好きにやらせてもらいました。やはり何もないところから作っていくのは楽しいです。とある人が「世の中にはゼロから1にするのが得意な人と、1を100にするのが得意な人の2種類が居る」と言っていたのですが、私が得なのは多分前者だろうなぁと改めて思いました。

Docurainについて

Docurainは帳票作成サービスです。

帳票って作るのクッソ面倒くさいですよね。JasperReportとかSVFとかが有名だと思いますが、私はC#erだったのでグレープシティのActiveReportを使っていました。Jasperに似た感じの製品で、VisualStudioに統合されたエディタを使って開発します。これらはどれも良く出来た製品だと思うのですが、エディタを使うのにスキルが必要な上に狙ったように帳票を作るのにかなりのノウハウが必要です。ActiveReportの場合はレンダリングの各種イベントの間に色々なフックをかけて複雑な処理を行うコードを差し込んだりしていまして、あれはかなり職人芸的な感じだったと思います。

Docurainの特長は、帳票のデザイナとしてExcelを使用したという点にあります。Excelであれば誰でも使用できます。Excelでデザインした帳票がそのまま出力されます。だからグラフやスタイル、オートシェイプなんかもそのまま出力できます。外部から動的に画像を差し込むことも出来ます。

ちなみに、帳票のデザイナとしてExcelを使うというアイディア自体は結構いろんな人が経験したことなんじゃないかと個人的には思っています。私も前職でテンプレートとして用意したExcelファイルを読み取り、プレースホルダが描かれたセルに外部からデータをApache POIやOpenXML読み書きライブラリを利用して差し込んでいく…というものを何度か開発しました。しかしこれも相当面倒なんですよね。ただはめ込んでいくならすぐできちゃうのですが、行が可変になった瞬間にしんどくなります。そうなってくると妥協して帳票ごとにハードコードで書いちゃうとかになります。頑張って行可変の仕組みを導入しても結局罫線のスタイルがおかしくなってきたり、大きなデータを出力させようとするとOutOfMemoryで死んだりとかいう現象に直面して面倒くさくなってくるんですよね。

これも余談ですが、上記でちょっと書いた私が前職で作った超高速開発的なツールというやつで使用していた帳票機能は、HTMLをPDFに変換するというものでした。CSSってmm単位でスタイルを定義できるので、印刷にも耐えうる編集能力があるんですよ。HTML+CSSはExcelに比べると要求スキルは高いですが…。

DocurainはOpenXMLなファイル(つまりxlsx形式)であれば、Excelでの印刷結果と同等になるように内部のXMLを直接いじったりするところまでチューニングしているらしく(コアエンジン部分は私は作ってませんので聞いた話です)、ここまでやるのは並大抵の精神力では無理でしょう。無理なことは外部サービスに頼りましょう、ということでDocurain。Excel帳票と流しこむJSONデータを合体させた出力結果をPDFやExcelで出力できるのですが、PDFとExcelどちらでも出力できるというのがこれまた良いですね。お客さんによっては「帳票を後から書き換えられたら困る。後から帳票を書き換えられないようにPDFにしてくれ」という人も居ますし(いや、AcrobatやIllustrator使えば編集できるけどね。本当に保護したいなら電子署名しないとダメなんだけどね、と言いたいのは我慢して)、「あとで細かいところは現場社員が書き換えるような運用をしたいからExcelで出力してくれなきゃ困る」というお客さんも居ます。あと、もう一つよくあるのが「うちはクラウドサービスの利用禁止だからねー」とかいう会社ですね。この点も、Docurainはオンプレで動作させることも可能(別途相談)です。

で。私はこれ非常に良いと思ったのですが、世の中には「Excelを使う」というところで引っかかるひとも居るらしく。Docurainの紹介をしたところ、「あーExcel方眼紙ですかこれ…」「神Excelみたいな感じですか…」みたいな反応をされることも経験しました。でもこれは誤解です。

Excel方眼紙や神Excelの問題点は、

  • 入力が困難な場合がある(一文字ずつセルに入れるとか、妙な入力制限がかかってるとか)
  • Excelの中にデータを入れて管理するのは、入出力や検索いずれもしんどい(例えばExcelでアンケート作って事務方がコピペで集計するなど。正しい設計をしていればそこまで大変ではない)
  • マクロを使用して業務処理などを実装してしまうと、ExcelVBAを理解出来る人が少なく、ソース管理も難しいことから製作者しか保守できなくなってしまう(保守性の問題)

というあたりにあると私は認識しています。ですが、アウトプットの表現としてExcelを使うことは上記のような問題とは無関係です。

しかし帳票デザイナとしてExcelを使うことに何も問題が無いというわけではありません。例えばExcelはエディタ上でのフォントの描画サイズを正しく計算していないので印刷するとずれるというのはよく聞く話ではあります。しかし、簡易なDTPツールとしてこれほど多くの人が利用でき、かつ、生産性の高いツールはありません。デメリットとメリットを差し引いた時、誰しもが使える有力な帳票デザインツールとしてはExcel以上のものは無いのでは現実ではないでしょうか。本来表計算を行うためのExcelを帳票のデザイナとして使うのは問題がある、それは正しい反論だとは思いますが、しかしExcel以上に使い勝手が良くて要求するスキルレベルも低いようなソフトが一般的なオフィスに浸透するまで待てば?というのはあまりに楽観主義的と言えると思います。今ある道具、今ある現実で何とかする。そのために泥臭いところを進んで背負う。Docurainはそういう、戦う男たちの道具だと思っています。

フリーランスとしての活動

なんだかDocurainやMOD99の宣伝記事みたいになってきたので話を自分自身に戻します。

私個人としてはフリーランスなので、これからも他の仕事を取っていきたいとは思っています。ただし、個人で受注するならば規模の小さいものに限られることになると思いますが…。今漠然と考えていることを大雑把に記すと、

  • 数人でタッグを組んで漫画(SF)を作りたい
  • 前職〜転職あたりまでの経験をまとめた本を書きたい
  • なんかもっととにかく絵を書きたい
  • 3DCGの制作活動も再開したい
  • というかブログをもっと更新したい
  • AutoDaysは計画変更中。海外をターゲットにして再計画中
  • 実名や自分の写真を出して活動したい

みたいなことを考えてます。ほんと漠然とした話なんですけど…。

まぁ幸い、生活に必要なお金は得られていますし、空いた時間をもっと有効に使っていきたいなーとは思うのですが、空いた時間があると酒を飲んだり子供と遊んで終わったりになるので難しいところ。