理由はそのうち考える

まずやってみよう

モダン・ソフトウェアエンジニアリングを読んでイベントに参加した

タイトルに惹かれたのと、オンラインイベントが企画されていたので読んだ。

www.shoeisha.co.jp

書籍の概要

世界に乱立するプラクティスを整理して組み立てるための共通基盤Essenceについて、仕組みや具体的な実践方法を紹介している。Essenceとは、ソフトウェア開発の技術的活動(エンジニアリング)の"エッセンス"を整理したもの。SEMAT(Software Engineering Method and Theory)により発案された。

イベントの内容

イベントはこちら。Ivar Jacobson の熱意の込もった講演も良かったし、2時間あっという間だった。

smartse.connpass.com

Essenceの使い方

3つある。詳しくは書籍を読んでほしい。

現状を診断するためのレンズとして

カードを使ったゲームをプレイすることで、現状を把握することができる。Essenceにはソフトウェアエンジニアリングに必要不可欠な要素をアルファと呼んでいる。それぞれのアルファには状態があり、その状態を確認することで現状を把握する。また次に向かうべき状態についても同じくゲームによって合意を得ることができる。さらにはアクティビティスペースと呼ばれるプレースホルダーにチームで実践しているプラクティスをマッピングすることで、どのようなプラクティスが必要かを判断可能にしている。

ラクティスを言語化するものとして

Essenceには共通の言語(記号)があり、それらを用いてプラクティスを図示化することができる(プラクティスのエッセンシャル化と呼ぶ)。これによりプラクティスがEssence言語でマッピングされ、共通の理解を得ることが できるようになる。

プロセスの共通基盤として

Essenceによって言語化されたプラクティス同士を組み合わせることで、それぞれのチームに合うかたちでの開発プロセスを作り上げることができる。

チームを越境するEssenceの力

スクラムをはじめとしたアジャイルはチームのコミュニケーションがベースとなっている。そのためチームメンバーが変わったり、新たなプロジェクトが始まってチームが再編成されたりすると、培ったプラクティスに関する知識や経験はリセットされたに等しい状態になるが、Essenceはプラクティスを言語化しているので、チームを跨いで経験を持っていける*1。そこがEssenceの持つ強みの一つだと感じた。

イベントでモヤモヤが少し晴れた

書籍を読んでいて正直取っつきにくいと感じていた。使いどころのイメージがイマイチ掴めず、唐突に使用されている感があった。そういう気持ちを抱きつつイベントに参加していたが、角さんの講演で"プロダクトのUMLに対するプロセスのEssenceという位置づけっぽい"ということを聞いて、ああなるほどそういうことかとEssenceに対してあったモヤモヤが少し消えた。これだけでイベントに参加した甲斐が個人的にはものすごくあった。ありがとうございます。

高まる期待感と懐疑心

EssenceがUMLのように一般的に普及すればすごい世界が来るだろうという期待感はある。あるにはあるが、そういう世界が本当に来るのかどうかはまだわからない。書籍で知るまで自分も存在を知らなかったし、イベントでも世界では流行ってそうなのに日本では知られていないことに対して疑問を持っている方もおられた。

個人的には希望を持っている

改めて考えるとEssenceは、ゲームを通じてプロジェクトの現状を診断し、今のチームに不足していること・次にすべきことを明らかにすることができ、またプラクティスを言語化し共通の理解を得られるようにもでき、 さらにはその言語化したプラクティスを合成・再利用ができるようになる強力なツールだと思う(特に一番最後)。ただそれにはEssenceが広く一般的に知れ渡り、(Essenceに対する)理解があることが前提になる必要がある。まだまだ先は長いと感じるが、イベントに参加してポジティブに考えるようになった。

終わりに

まだまだ書き足りないことは多いが、Essenceについて知ることができてよかった。Essenceでプロセスを表現する時が来るのかどうかはわからないが、そのときのために準備しておきたいし、こういうものがあるということを発信していきたいとも思う。

*1:これには組織の文化を無視しないことが前提にある。