石の上にもn年

nは任意の自然数

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−を読了。
本書は、アジャイル開発とは何か、どう計画し、どう運営していくかをとっつきやすい言葉で解説した入門書である。
前職はガチガチのウォーターフォール開発が殆どだったが、本書でアジャイルなソフトウェア・エンジニアリングのプラクティスとして紹介されているリファクタリングテスト駆動開発、CIは体験したことがあり、アジャイルはざっくり理解しているつもりだった。が、つもりはつもりでしかなかったため、具体的な例を踏まえた知識を得られたのは大きい。
関心した話としては、見積もりを絶対サイズではなく相対サイズで、具体的な日数ではなくポイントで見積もる点だ。ポイントで表すことで見積もりはあくまで概算であり不確かな情報であることが明示されるため、実績に伴う再見積もりの手間を避けることができる。
また運営として、ユーザーストーリーを集めてスコープを柔軟に計画を立て、1~2週間のスパンでイテレーションを回すというフローだが、現在携わっている仕事ではこの開発スタイルが恐ろしく上手く回されているということを本書を読んで改めて実感した。

本書の最後には『この先どこへ向かえばいいのか?』として下記の言葉で締められているが、 この考え方は、社会人としての自身の立ち振舞にも繋げられる考えだと思う。

  • 毎週、価値のある成果を届けられているか?
  • たゆまぬ改善のための努力を惜しまず続けているか?

この2つの問いへの答えが「イエス」なら、君はアジャイルだ。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

私の履歴書

自己分析がてら。

学生時代

プログラミングに最初に出会ったのは中学校に入ったとき。
部活動の勧誘で科学部Computer班が自作ゲームを展示していたのを見て即入部した。
部室は3畳半の「理科倉庫」で、PC-9801Windows95が分厚いブラウン管モニタと共に両脇に並んでおり、背中合わせに2人座ったら間は通れないほどギュウギュウの部室。
初めて触れた言語はN88-BASICで、自分でコードを書いて動かすというルーチンがひたすらに楽しかった記憶がある。CIRCLEとLINEを駆使して自機と弾を描き、シューティングゲームを作っていた。

高校に内部進学した頃にはVisual Basicに触れてたはずだが、Windowsフォームで何を作っていいか分からず、結局BASIC弄りに戻ってた気がする。
そういえば自作のホームページも持っていた。当時ハマっていたCGIゲーム(箱庭諸島三国志NET…)のファンサイトをHTMLで書いて、ISDN回線でFFFTPを使ってアップロードして…。 消した記憶は無いが、まだネットの海に漂ってるんだろうか。気になって調べたら当時のインターネットサービスプロバイダはGMOインターネットに吸収されて、サービスの新規受付は終了していた。さらば黒歴史

優れたプログラミング能力があるわけでも無かったのに、大学は工学部情報工学科に進学。部活動のメンバーで他に情報系に進む人間は居なかった。
大学に入ってからはプライベートでコードを書くことをしなくなってしまい、エレクトーンサークルとバイトに励む低意識の大学生だった。
卒業論文は深度センサを使った顔方向検出法の検討。当時販売されていたKinect v1は安価な深度センサとして注目されていた(ような気がする)のだが、手足を動かすような大きい動作は拾えるものの、首をかしげる動作などは拾いづらいという欠点があった。 そこで顔の凹凸から顔方向を検出することで首振り動作などの人間の行為を認識する、というテーマで研究を開始。Kinect for Windows SDKC++)で座標を取得し、MATLABで解析、最適な顔方向の検出方法を研究していた。

研究意志が強かったわけではないのに、ただ周りに合わせて就職ではなく大学院進学を選択。しかし情報工学専攻の大学院入試に落ち、受け皿だった産業技術専攻で進学した。 そうこうしてる内にKinect v2が発表。顔認識の機能が強化され、顔方向まで取得できるようになっていた。 今考えれば顔方向の検出は手段であり、手段が強化されたことは喜ぶべきことで、そこから何を成すかが目的だったはずなのだが、当時の自分は完全に手段が目的化していたことに気付かず、研究の成果が出ていなかったこともありドロップアウトしてしまった。 結局大学院を1年で中退した後に学部既卒として就活に望んだ。

職歴

2014年4月~2019年2月:中堅IT企業(金融系SIer

父親が証券マンだったのが縁なのか、証券・銀行をメインユーザーに持つ独立系SIerに就職。
配属はネット証券が顧客の受託開発プロジェクトで、退職までの5年弱ずっと本社で仕事をしていた。
入社研修後初のプロジェクトは、投資信託システムの新規構築。半年ほど。ASP.NET Core + AngularなWebアプリケーション開発にプログラマとして参画したが、案件が実装フェーズの途中で凍結。Webシステムとは何たるかを知ることはないまま終了した。
次に参画したのが、既存の証券バックオフィスシステムの保守開発。複数案件をこなしてトータル3年強。
クラサバで画面はJava、CORBA通信でバックはCOBOL、DBはOracleCOBOL…噂には聞いていたレガシー言語。今まで触ったことは無かったが懐かしさを感じた。「行番号」とBASIC以来、10年ぶりに再会したためだ。Javaには殆ど手を触れず、98%はCOBOLを弄ることになる。
金融商品の追加対応にプログラマから入って以来、主に証券税制の改正に合わせてシステム改修をこなしてきた。
業務内容で言えばジュニアNISA、つみたてNISA、NISAロールオーバー、夜間バッチの性能改善など。役割で言えばメンバーからリーダーまで、工程で言えば基本設計から総合テストまで。
その他に上記案件の合間で他プロジェクトの手伝いとして、銀行の事務部向けにExcel VBAEUCツールを作ったり、証券のファンドラップシステムをVB.NETで保守開発したり、社内研究としてPython + Qtでビットコインウォレットを作ったり。勉強と称して仮想通貨に手を出して痛い目に遭ったり。

新しいことをしたい、というぼんやりとした思いを抱える日々を過ごしていたところ、ふと同業他社がオープンな勉強会を行っているのを見つけて参加。以前仕事でお世話になっていた方と再会して話すうちに、他社との仕事への興味がムクムクと。半年ほど悩んだ結果、退職を決意。

2019年3月~:フリーランス

意を決してフリーランスとして仕事を始めたものの、何もできないことに気付く。
ただひたすら準備不足を痛感・焦り、今に至る。

何ができていないのか

  • 情報収集(インプット)の不足
    • どうせ最新技術を調べても仕事で使わない/使えないから…と怠けて情報収集を怠っていた。
    • 技術どころか普通の社会人がが持ち合わせているであろう知識すら足りてない。
  • アウトプット能力の欠如
    • 今までのアウトプット量の問題なのか、アウトプットの速度が遅い。
    • 答えのない問題に対する成果を求められたとき、思考が止まる。
  • ITスキル不足
    • Web系が未経験分野であるにも関わらず技術習得が間に合っていない。
    • クラウドも。もはや上から下まで全部。

何をしなければいけないか

  • 本を読み漁る習慣をつける。日経ビジネスは定期購読を始めた。
  • 読んだ本・雑誌はこのブログで感想を書いてアウトプット癖をつける。
  • Microsoft Learnでのハンズオン学習や、Microsoft AI & Innovation Centerでのセミナー受講。connpassで勉強会へ参加したり、coursera、udemyなどのMOOCでの学習も考える。

何になりたいのか

ゼロからシステムを組めるエンジニア迷走中