A Day In The Boy's Life -59ページ目

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

「運用中心プロセス」という考えかた~モノ作り中心から動くサービスを中心に据えることへのパラダイムシフト @ Social Change!


運用と一言で言っても、業務的な運用とシステム的な運用に分けられたりもしますけど、システム開発の位置づけの中でこれらの領域は結構置いてきぼりになりがちだったりもします。

それは、サービスというものを考えたときに、その利用者に重きを置いているので仕方が無いことかもしれませんが、サービスを使う立場と支える立場を考えると、両者とも利用者であることに変わりありません。


企業にとって利益を生むため注力していきたい表のユーザー機能と、それを支えるために必要なものではあるものの企業としてはそこにかけるコストをできるだけ抑えたい裏の管理機能を考えたら、どちらにリソースをつぎ込みたいかという判断が偏るというのはプロジェクトの現場ではよくありがちな罠になっていたりもします。



「運用でカバー」で片付けられる業務運用


業務運用では、そのサービスを担当する企業や部署が提供サービスを裏で管理するための機能を使って仕事をするわけですが、その機能そのものがサービスのリリース段階でうまく組み込めていなかったり、後回しにされたりします。


取り合えずユーザーが使えるサービスを優先させたいということから、重要度のランク付けが逆転してしまうわけですが、業務系のシステムではむしろこっちがメインであったりもします。

自分たちの業務を効率化するためのシステム化施策の中で、ユーザー機能に注力するばかりに結局効率化が果たせないばかりか、余計なシステムが増えてむしろ仕事が増えるとか。


この辺は業務プロセスの中での出口にあたったりするので、取り合えず入り口を作らないことには始まらないとか、実際にその業務を行う側も取り合えずリリースしないといけないわけで、本来の目的を忘れて「その機能は手運用しながらカバーします」とかって本末転倒な結果になったりもします。

これは、その担当企業や部門に負担がかかるだけでなく、それを運用することになるシステム部門だったりにも大きく負荷がかかります。

機能を作ってないばかりに、依頼都度DBを操作することになったり、求められるデータを加工して提出するということになったり。


まぁ、この辺は要件とスケジュールの問題であったりもするわけですが、ありがちなのは効果測定の機能が用意されていないため、ユーザーからのフィードバックをうまく受け取れなかったり、改善結果がどれほどあったのかがわからず、費用対効果もはっきりしないで運用を強いられるというものがあったりします。

結局のところ、サービスインした後の運用の中でそのサービスの利益を最大化するための次の一手が全く読めない状態に陥ったりするわけですが、取り合えずスタートさせたい気持ちがはやりこの辺は当初の置いてきぼりです。


しばらく運用した後で効果が上がらないといって次の改善施策が持ち上がったりもしますが、それも付け焼刃的な対応に陥って延々と無駄なことを繰り返すばかりか、返ってシステムのライフサイクルを縮める結果にもなったりするわけです。



テンプレに当てはめがちなシステム運用


システム運用は、そのサービスを安定して提供するために必要な業務となるわけですが、それに求められる機能は他のシステムとも共通点が多かったりします。


監視やバックアップとリカバリ、検証やメンテナンスのために必要になるデータのパージ、ジョブ管理など他のシステムでも使うような機能も多く、請け負っている運用システムが多ければ何も考えずに予め決められた運用ツールが選定されていたりしているのではないでしょうか。


この辺は、スクラッチで作るにはコストがかかりすぎるので、商用やOSSも含めて著名な運用ツールを適用していくやり方が一般的でしょうけど、構築の段階で既存の運用ツールが適用可能かやそれにあわせたインフラ設計をしておかないと運用後(または直前)に痛い目にあったりもします。

運用ツールは導入だけでなく、それを操作する人への教育も必要になるので、運用メンバーが普段から慣れ親しんでいるものを適用したり、運用システムを一括で管理できる仕組みがあったほうがコストを抑えることができます。


ただ、この辺は結構既存の運用システムに乗せるということで片付けがちで、新しいサービスに必要なシステム運用をよく吟味するということをしなかったりもします。

一般的なシステム運用というのは既存の運用ツールに載せることでも問題ないでしょうが、そのサービスに特化したシステム運用というものもでてくるわけで、単に他のサービスのシステム運用をテンプレートのように当てはめるだけだったり。


また、システム構築とシステム運用を別々のチームで行う場合は、事前に運用として必要な要件をヒアリングして取り込んでおかないと、「これじゃ運用できない」ってトラブルにもなったりして、運用には運用を行ううえでのポリシーがありますし、取り合えずユーザー機能優先で作ったものに後付で加えるとなると、適用が難しかったりシステム設計が根底から違ってくるために力技をせざるを得ないということにもなったりもします。


このあたりは、運用を初めてわかることも多いため、それを検知するための仕組みが必要になってきます。

そもそも、サービスを安定化するための業務がシステム運用であるならば、それが安定しているかどうか判断できる材料を集められる仕組みが必要になってくるわけで。



まとめ


その他にも運用の中でユーザーからフィードバック事項を取り込んでいく際の保守のしやすさというものもあります。

コードのシンプルさであったり、拡張性であったり、バグ管理であったり、そのリリース管理であったり。

このあたりの事も、目の前のことにいっぱいいっぱいになっている構築フェーズの中ではなかなか手が付けられないと後回しになりがちですが、その後の運用を考えたら当然前もって考えておく必要のあるものです。


こういったことを考え出すと、取り合えず動くものを作るという目の前の視点から、もう少しその先の突っ込んだ視点で考えるべきことも多いのだと感じます。

運用はサービスを提供するうえで基礎となるものなので、それを開発プロセスの中心におくというのは理にかなっていることかもしれません。




もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら/岩崎 夏海
¥1,680
Amazon.co.jp


だいぶ遅ればせながら読んでみた。

私自身、ドラッカーのマネジメントを読んだことはないのですが、最近読んだ「ドラッカー 時代を超える言葉―洞察力を鍛える160の英知 」の中でも幾つかの言葉が紹介されていたり、その他の書籍や雑誌でも引用されたりしているのを目にしたりします。

それだけ有名な書籍なわけですが、やはり読破するとなるとそれなりのパワーがいるもんなので、こうしたストーリー性を交えて解説してくれたら読みやすかったりします。


まぁ、そのストーリーというのは多少無理があったり、そんなにうまくいくものなのかと思ったりもするんですが、マネジメントに書いてあることを実践し、成功を収めるという筋書きの中ではそういうストーリーに持っていかないとしょうがなかったんではないかなと邪推したりもします。

「もし高校のときの自分がマネジメントを読んだら」で考えてみると、多分興味を示さなかったかさっぱり理解できなかったんだろうなと思ったり。


野球チームの話なので、野球のルールとかも絡んできたりもするんですが、なんとなく野球そのものをあまり知らない方が、人をどう動かして成功に結び付けていくかって点が俯瞰的に読み取れるかもしれないかなって思ったりします。

これに書いてあるようなストーリーの中のごたごたというのは、職場とかでも結構あるもんですから野球という舞台を取り払って、その人事や人材の教育という点で置き換えて読みやすいかなと。


ドラッカーの言葉というのは1つ1つ凄く心に響くものだったりするんですが、やはり具体的にどう自分の仕事や生活の中で実践していかないといけないのかということがなかなか理解できなかったりもします。

そういう意味では高校野球のチームという舞台の中で、それらの言葉をどう考えて実践に結び付けていくかという点が1つの例として具体的に書かれていて、ドラッカーの言葉とその意味と行動への結びつけという観点で1つのヒントを与えてくれる本かもしれません。



目次


第一章 みなみは『マネジメント』と出会った

第二章 みなみは野球部のマネジメントに取り組んだ

第三章 みなみはマーケティングに取り組んだ

第四章 みなみは専門家の通訳になろうとした

第五章 みなみは人の強みを生かそうとした

第六章 みなみはイノベーションに取り組んだ

第七章 みなみは人事の問題に取り組んだ

第八章 みなみは真摯さとは何かを考えた



先月で、このブログも5周年を迎えました。

アクセスがあったり、コメントしてくれたり、はてブしてくれたり、Twitterで紹介されたり、+1されたりと色んな反応がモチベーションにつながって続けるきっかけになっているんだと思います。

ということで、少しばかり遅くはなりましたが毎年恒例?のブログに関するまとめを書いてみたいと思います。


ただ、ブログのいいところとか何でブログ書くのかとかって結構過去に書いてきて自分の中で目新しい視点もなかったりしているもんですから、エンジニアとしてのブログという観点で今回は書いてみたいと思います。



技術ネタを書くにあたって気にかけていること


自分がブログに技術ネタを書くにあたって注意していることは下記のような感じです。


  • 環境を明示する

技術ネタと一言でいっても、OSや言語、バージョン、構成などの組み合わせてみると無限にあったりしますし、「同じエラーメッセージなんだけど、俺が探しているのはこの情報じゃない」なんてことはよくありますし、ちょっと検索キーワード変えたら英語のサイトだらけみたいにもなって、ネット上でまだ情報が全然足りてないっていうのは感じたりするところです。


見る側もどんな環境で試したときにできるのかとか、自分がはまっている問題と同じ環境で解説しているのかとかは気になったりしますからね。


  • ちゃんと検証する

仕事で使う技術ネタを書くことが多いんですが、職場でブログを書くわけにもいかず、自分専用の環境を借りたりしてそこで確証を取ったものを書くようしています。

まぁ、当たり前なんですけど予想で書いたり、他人の記事を引用だけしたりしているとコメント貰ったときに反応も出来ません。


この作業がかなり面倒で、ブログを書く上で多くの時間を費やすことにもなったりするんですが、自分でやったことを明示した方が後々苦労しないで済みますし、そもそも知識を身に付けやすいですからね。


  • わからないことや対象範囲をきちんと書いておく

技術ネタって突き詰めていくとかなり深いところまで辿ることにもなりますし、ネタを書くにあたってわかっていることとわからないこととって当然入り乱れますので、わからないところはわからないってきちんと書いてた方がいいかなと。

それに反応したコメントがもらえたりしてわかることもあったりしますからね。


また、わからないことではなくても、説明したり検証する対象範囲とかを明示しておくことで読み手も自分が欲しい情報とマッチするか判りやすくなるかと思います。

検証自体も何が出来ればOKなのかってのを決めておかないと延々と繰り返す羽目になりますし、何の話をしているのかの境界がわからなくなってきますからね。


  • 途中で躓いたことを書いておく

自分自身、最初から最後まではまらずに成功するというのは結構まれなことです。

途中で環境の差異により追加のタスクが発生したり、謎のエラーに悩まされたりというのはよくあることで、ググる場合ってその躓いたところの回避方法を探すということが一番多いのではないでしょうか。

こういうのって、同じことやろうとしても同じところで自分自身はまったりもして、「あの時どうやってっけなぁ」と悩まずに済むように、書いておいたほうが助かったりします。


こうすればこんなことができるよ!って解説記事って、購読しているサイトとかから偶然拾ったりもしますけど、実際その通りにやっても自分の環境じゃうまくいかないってことが多かったりしますし、その時には自分がはまったときのエラーメッセージとか回避方法とかが有用な情報になってきたりもします。


  • カテゴライズしておく

仕事で色んな技術に触れたりもしますし、長い間別のことをしていると前につかっていた内容って頭から飛んだりもするもんなんで、「あーこういうことはできたな」ってインデックスは持っているんですけど、「どうやるんだっけ?」みたいな状態になっていて、自分のブログ内を検索して記憶を辿るといったこともよくやったりします。


その情報を探しやすくするために、カテゴリや関連するエントリを紐付けておくと自分自身もブログを情報の倉庫として利用できるようになります。

同じカテゴリなら興味を持ってくれる記事もあったりして、購読者を増やすきっかけにもなるんじゃないでしょうか。


  • 技術ネタとしてのストーリーを考えておく

やったことのログをひたすら貼り付けておくのもいいですけど、ある程度どういったネタを書いていくのか、何の操作ができる、何の情報が取り出せるのがゴールになるのかってことを考えてエントリを構成した方が、読み手としても理解しやすくなります。


インストールネタなら開始から終了までとシンプルに書けますが、○○が出来るかの検証をするというなら、検証方法とか検証結果とかその検証結果の根拠とか、順を追って説明することでストーリーが作れたりもします。


  • 外部サイトのリンクや情報源を用意しておく

ブログを見に来てくれた人って、ほぼ書き手が何者かわからないわけですよね。

なので、よくわからないやつの言っていることって信憑性がイマイチだったりもするわけです。

まぁ、その内容から信頼を得ていくことも出来ますが、自分がその記事を書くにあたって参考にしたサイトや書籍、公式のマニュアルなんかのリンクがあれば、その記事の信頼性をあげることが出来たりもします。


また、何をきっかけにそのエントリを書こうとしたのかとかを示すことで、先ほど書いたストーリーを作るって点も出来やすくなったりもします。



エンジニアブログとしての意義


ネット上でエンジニアとして有名になりたいなら、ブログでちまちま技術ネタを書いていくよりは、サービス作ってしまってユーザーかき集めた方が圧倒的に早いんだと思います。

まぁ、早いだけであって難易度は全然別なんですけどね。

こういうことができるよ!ってことをネタとして書くより、こういうことを実現できるサービスを自分の手で作りましたといってしまった方が、ユーザーも読むよりも体験できるわけで、この人スゲーって理解は一瞬でつくわけですよね。

必ずしもスゲーになるかも別ですけど。


例えスゲーという反応が多く得られても、エンジニアとしてはそこで使った技術や苦労話などをしてみたい衝動にも駆られるもんだったりもします。

ただ、Twitterでやるには文章が短すぎますし、SNS使うのはクローズ過ぎますし、勉強会で発表するのは人数が限られますし、Slide Shareでその資料を共有するにしても発表用の資料なんで読むだけではいいたいことを伝え切れなかったりもするわけで、ブログは書くのは非常に面倒なんですが自由に表現できる分、なんとでもできる受け皿としては利用価値がまだまだあるんじゃないかなと思うわけです。


ブログで技術ネタ書くのって自分用だったりすることも多いんですが、ネットに公開している以上は他の人の目にも留まる事があるわけで、その利用目的が一致してくれれば価値が高まるわけですよね。

なので、ブログで技術ネタを書くのって結構相乗効果を生み出しやすいもんじゃないのかなって思ったりします。


ということで、更新頻度は落ちているんですが、これからもゆるい感じでネタを書いていけたらと思っています。