GoTheDistance

ユーザ系SIerから全く別業種の会社で「ひとり情シス」として内製してる変わったエンジニアのブログです

WordPressほど頼りになるCMSはないと思います

この辺りの議論が面白かった。

ロリポップWordPress関係の制限には驚いた

ロリポップでホストしたこと無いんですけど、wp-login.phpに対してIPアドレス制限をさせるたりログイン回数に失敗すると業者サイドでロックするのには驚いた。今すぐにロリポップ捨ててさくらのレンタルサーバ スタンダードを使おう!安くて速くて安心だ!

WordPressはコードを書けばなんでも出来るのが良い

WordPressで作れるサイトは多種多様ですので最近ではWordPressで作りますの内容がピンキリで取扱注意ってのはわかるけど、そこでうまく手綱を捌いていくのが腕の見せどころ。その辺の押し引きはキッチリ線を引きつつ、何にカネがかかるのか、何にお金をかけてもいいのかをバランス取らないとねぇ。時には、現実は少しも甘くないことを伝えるのもプロ。

お問い合わせフォームだけ必要であとはHTMLで放置でOKなら、HTMLをAmazon S3にあげてお問い合わせにGoogleフォームを使えば10円コーポレートサイトの完成。それもまたひとつの形。それに、WPの管理画面ってそんなにとっつきにくいかなぁ・・・投稿と固定ページの違いがわからんとかそんなことじゃないの。

CMSとHTMLの違いは明確にしよう

HTMLとCMSの区別がつかないお客さんは多いんでしょうけど、自分で記事を作成してコンテンツを更新するってことは、それ自体にプログラムが内包されているので「車のように持ってるだけでカネがかかる」という現実をありのままにお伝えしようよ。レンサバと契約する理由にもなるから、ページ規模に関係のない話だと思う。

僕もたけさん(@take_it02)と一緒で「なるべくコストをかけずに自分で更新したい」顧客ばっかりです。でも、乗りっぱなしでメンテ無しでも行けますけど、車って老朽化しますから一種の怖さがあるのはわかりますよねっていう話はしています。

HTMLはファイルでしかないけどPHPはプログラムであり、プログラムには実行環境が必ず必要になる。HTMLを作ることにカネがかかることはみんな理解してくれるんだから、もう1歩それを進めてプログラムを動かすって少しも甘くないわ、と。そこをキッチリ詰めてから管理費等の話をしますので、毎月管理費を払ってくれるお客さんもいれば限りなく放置でいいので管理費無しのお客さんもいます。

コードを書けば書くほど、メンテナンスコスト比例して積み上がっていく。HTMLが自転車だとすれば、WordPressは自動車だ。両者の違いは免許が必要なこと。WPを使う免許は要らないけど、使うには専門性が必要。その違いを誤魔化しちゃいけない。

プラグインは諸刃の剣

プラグインを使えばやりたいことがすぐに手に入るけれども、お客さんからすればプラグイン適用したのか標準機能なのかはどうでもいい。プラグインが提供している機能についての改修依頼が来た場合、みなさんどうされているんでしょう。プラグインがフィルターを用意してくれていない場合は、直接書き換えたこともあった。基本的にはコードを書いて対応しています。

僕は自社サイトをWPで運用してて、その中で取引様専用ページを作っています。そのページの中でお取引様だけに製品のカタログPDF等を配布しており、ファイルのダウンローダプラグインを使ってます。そいつがファイルの情報を登録する時にjson_decodeで日本語ファイル名がエスケープされてしまいダウンロード出来ないとか、レスポンス返す時にUTF8でファイル名がエンコードされるからWindowsで日本語ファイル名が文字化けするというクソみたいな問題にぶち当たりました。この程度で済んでよかったw

HTMLだけでいいのってランディングページぐらいじゃないかなぁと思います。会社案内等も修正することもあるし、単なる文字をちょっと更新する度に業者に頼むほうがめんどくさいんじゃないですかね。素人が文章を書くようにHTMLを更新できるっていうメリットは大きい。ペライチじゃない限り、僕は基本的にWordPressを使って構築しています。

これからもワンコインレンサバでWPだ

WordPressはコードを書けばなんでも出来るのがいいし、知れば知るほど面白い。インストールして放置しても最低限のことはできるし、コードが書けてWPのアーキテクチャがわかれば、お客さんの色んな要望に対応できるようになるし頂ける対価にも幅が出てくる。WP案件で食ってるわけじゃないけど、僕にとってはWordPressは頼れる相棒のような存在です。ありがてぇことです。

本日でプログラマの定年を迎えました

SIerをDISってブログを書きはじめ、気がつけばプログラマの定年の歳になってしまいました。まだ実感がわかない。Paiza開発日誌のSIerのDISり方が品がないのでちょっとイラついています。DISられるには充分なネタがあるからしょうがないんだけどね。

10年前は自分はコードを書くことは無いなとか思ってたら、ほぼ毎日しょうもないコードを書いていることにびっくりしている。平凡な誰でも書けるようなもんだけど。解決している問題が平凡だからね、LINEのインフラ作ってるわけじゃないからね。しょうがないね。どうでもいいけど、スーツとギークって完全に死語だね。肩身狭いわ。'`,、('∀`) '`,、

で、最近5年間を見て思うんですけど、これからIT業界(システムインテグレーションの業界という意味)のマーケットの成長は鈍化すると思います。ITの世界って、オーダーメイド(受託開発)、既成品の買い切り(パッケージ)、サブスクリプションの3つしかビジネスモデルがございません。大きく言えば。

上記の3つのビジネスモデルの中で伸びる可能性が高いのはサブスクリプションですが、サブスクリプションが当たり前の世界になると、業界内で食っていける人が減る可能性が滅茶苦茶高いです。なんでかといえば、Webサービスフリーミアムだイエーイという世界と同じように、業界内競争が熾烈になって共食いが発生するからです。共食いの結果生き残った所がコモディティ化の進行に伴い価格を下げていきますので、生き残れる業者が減ります。

そのような状態で業界全体の成長が加速するかなぁ・・・と。

クラウドが当たり前になることで、クラウドの上でソフトウエアを作ることも当たり前になった。その結果、いかにクラウドの上のサービスを組み合わせて最適解を産むかというビジネスが増えた。今現在、SIで元気のある会社ってそーゆービジネスをやっている所が多いように感じます。AWSのサービスを組み合わせるとか、KintoneみたいにPaaSやるとか。

個人レベルでは、ソフトウエアがコモディティになりましたので、高度なプログラミング技術を求められる案件よりも、普通のアプリやWebを作る案件の方が圧倒的に多くなっていると思います。コモディティになるってことは入手しやすいってことですからね。でも、その普通のアプリやWebを作ることが出来る人を育成できる会社が、どんどん減っているのが気がかりです。IT業界を志す方々の裾野は広くなっていくけれども道は細くなるというか。入学するのは簡単だけど卒業する(進級する)のは難しいというか。素人++みたいな人は3年持たずに消えていくような、そんな世界になりそうです。

コードで回りを動かせたらどこでも食って行けることは間違いないので、コードで回りを動かすために何を実装すれば世界が代わるのか、何を身に付ければ作りたいものが実現できるのかを、愚直に考えて行きたいと思います。僕も。

それでは、また。

経営が苦しい会社が陥りがちな5つの問題

トップやリーダーがこういう考えで物事を判断するとろくな事にならず経営状態が良くならない。そんな「あるある」ネタが5個たまったので、シェアさせて頂きたく思います。

1. やってみないと分からんと高を括る

やったことがないことをやる意味はすごくある。やったことがないことができるから成長できる。けれども、やってみて失敗した時の影響範囲によってはものすごく高い授業料を払うことになります。

運営上の課題を整理して走り続けるのはOKなんですが、やる前にダメだった時の終わり方を必ずシミュレーションする必要があります。ここまでやってダメなら次を考える「撤退ポイント」がないと、いつかは辿り着ける症候群に陥ります。この疾患は感覚で物事を判断するタイプに非常に多く、逆算して物事を考える習慣がありませんのでやってみないと気がすまないという。

「やってみないと分かんない」の対極は「やる前から終わってる」です。ゴール(到達点)は近づいてくるものであって、追いかけるものではありません。

2. 売上はあればある方が良い

売上が無ければ何も始まらない。売上がすべてを癒す。それは正しい。

でも、安定した経営をする為に必要なのは売上を最大化することではなく、利回りを最大化すること。かけたコストに見合うリターンがどれだけなのか。そのリターンを組織力で得るため為にはどうすべきなのか。そこから逸脱していくと、環境の変化にとても弱くなります。

売上原理主義に侵されてしまうと、下記ポイントが蔑ろにされがちです。

  • 売上と比例して仕入も増えていないか
  • かけた経費に見合う利益は妥当なのか
  • 誰か・どこかに過度な負担を強いていないか
  • 次に必要なお金をかける意味があるのか

1000万の売上でかけた経費と仕入が800万、500万の売上でかけた経費と仕入が300万。どっちがいいかと言えば後者です。残る額が同じなら支払いが少ないほうが(損益分岐点が低いほうが)良い。でも、1000万の売上が減るとただ怯えるケースが多い。利益率を悪化してまで掴んだ売上の未来は、大抵暗いものです。会社のキャパやビジネスモデルに依りますが、安定した基盤を作るために売上を減らすのが最適な場合もあります。

3. お客様は常に敷居が低いサービスを喜ぶ

より早く、より安く、より細かく。より利便性の高いサービスを提供する。大変素晴らしい考え方です。

お客様が注文しやすいように障壁を下げようという話は一見素晴らしく感じますが、敷居を下げ過ぎると足元を見られます。ま、あそこならこの程度の注文でええか、と。顧客の中でのランクが下がり、自分で自分を安く売るのは身売りにしかなりません。必要以上のサービスを提供すると過剰な負荷がかかり、自社の営業利益を圧迫します。

全ての顧客に対して、各々の望む形に合わせることは出来ません。必ずどこかで意味のないサービスを提供することになります。言い方悪いですが、どの会社も明確な判断基準を持って顧客を選ぶ必要があります。「ここまでしか出来ません」という線を引く。その線の引き方が顧客管理そのものです。経営者の腕の見せどころ。

4. レベルが違うものを努力で解決しようとする

これは1番のアンチパターンにも似ているのですが、10の力しかない組織が20のことを達成するのは無理です。10の力で20の重さの石を押し続けるのは無駄。押し続ければいつかは20の重さの石をずらすことぐらいは出来ますが、その負担を別の所でしわ寄せしてるだけです。同じことを繰り返して異なる結果を期待することを、アインシュタインは「狂気」と表現しています。

努力で最も大切なのは方向性です。寿司を上手に握れるようになりたいのに、ラーメンを茹でる努力をしてもしょうがない。極端な例を上げましたが、その努力を続けても全く状態は良くならないだろっていう話は結構多いです。人の動き方が正しい方向に変われば会社はガラッと変わるものです。

5. 俺がやったほうが会社にとって都合がいい

経営における「クソジーコ問題」とは / 佐藤 裕介 | STORYS.JPと少し似てる。

創業者は凄腕の営業マンであることが多いです。誰よりも多くの情報を引き出し観察し洞察した上で、その顧客との商談を成立させます。が、洞察という行いは非常に感覚的です。言語化するとマニュアルになっちゃうというか。その嗅覚がある前提で営業マンに指示を出すからどうしようも出来ず、結局自分でやっちゃう。そしてミドル層が入れ替わり立ち変わり、振り出しに戻る。

誰かの能力に依拠して何かを立ち上げることは何の問題もないですが、会社組織は常に変革をしていかねば現状維持すら難しくなります。組織変革を阻害する一番の理由は、属人性です。その人がいないと回らない場合と、その人が足を引っ張る場合があるんですけどね。極端に言えば後者だったら切ればいいだけなんですけど、前者になると一筋縄ではいかない。

色々と書きましたが、強いて共通点を挙げるとすれば「意味の無いことをやっていれば、必ずどこかで歪みが生じる。」ってこと。その辺りがマネジメントが求められる大きな理由の1つだと思いました。

エンジニアの「出来る」を正しくマネジメントする為に必要なこと

この記事面白かったです!

「出来る」と「実装する」の間には多くの解決すべき問題が含まれているから気をつけろよっていう警鐘を鳴らしている記事なのに、「出来るからやるって単純バカなんだけど」っていう反応が多いのが印象的でした。その理由の9割は、タイトルに「エンジニアはネ申」って書いたせいだと思うけど。

私からは、社内業務システム内製を通じて感じました、創造主であるところのエンジニアとハッピーに仕事をするためにはこういうことを一緒に考えよう、っていう話をしたいと思います。

実装可能と実現可能は別問題

前述の記事も僕の補足も、主題はこれだけ。だいたいそんな感じ。でも、順を追って説明します。

技術的に実装可能なのか否かは、当然一番最初に考える問題です。そこでNoならこの話は終わります。技術的と簡単にまとめますが、エンジニアによって判断基準は全然違うから悩ましいです。そこは差し引いて、単純に求められた機能の実装が可能なのかという点に絞って前提をおきます。

仮にその機能が実装可能とします。政治的制約(大人の事情)を度外視して本筋を述べますと、「可能かどうか」と「やる必要があるか」は全く別の話になります。可能だからあったほうがいいのでやろうってのは、よい結果を生みません。哲学がないからです。本来は「無くてはならないものだから、やろう」という説明が出来る必要があります。

実装可能から実現可能かの議論を生産的に行うためには、ソフトウェア開発においては下記の代表的なポイントを抑える必要があります。

  • 既存のプログラムの影響範囲
  • 納期が遵守可能かどうか
  • 実装コスト(工数)
  • その機能があることに生まれる価値
  • その機能がないと損失する価値

ほとんど政治的な部分です。作ることの意味を見出すためには、ソフトウェアを使っている人々の様々な立場を吸収して立脚点を作る必要があります。

僕の場合、経営者及び事務方の思いつきによる「これがあるといいなぁ」というぼんやりした実装依頼が結構多いです。それだけでは作る理由にはならないので、「現時点でその機能がないことでどんな損失があるのか」という話を先に詰めます。その詰めを怠ってしまうと、ソフトウェアがどんどんメタボリックになります。作ることで自分の首を絞めて技術的負債が積み上がるなんて、実にバカバカしい。非常に良くないことです。

難易度は別問題として、機能追加するのは簡単です。作ればいい。人間で言えば、食べる量を増やせばいい。でも、減らすには哲学が必要です。ダイエットに適切な方法と適切な食事が必要なように。

・・・っていう背景を前提において考えますと、ソフトウェアのマネジメントをするにあたっては「作らなくてもいいんじゃね、それ」を議論するのが一番早道だなぁと感じることが多いです。何故かと言いますと、

  • その機能が無いと解決できない問題は明確なのか
  • その問題を解決することでどんなメリットがあるのか
  • これだけのコストをかける意味があるのか
  • 作る以前に代替手段はないのか

上記4つに明確に回答できる必要があるからです。この4点を利用者・実装者・マネージャーの三者で共有することが、「やらなきゃよかった」という残念な結果を未然に防いでくれます。

なんでここまで議論する必要があるかって言うと、間違った要求が来ることも多いから、だったりします。欲しいって言ってる内容と、実現したことで期待する結果が食い違うのはよくある話ですよね。お前が欲しいから作ったのにこれは違うってなんだよ、みたいな。その乖離を防ぐことはとても重要な事です。腐った仕様を生み出して機能を提供してしまうと、誰も得をしませんから。

この問題については詳しくは下記の過去記事で議論していますので、よろしければご参照下さい。

Happy Coding!

永和さんの「価値創造契約」が大苦戦を強いられている件

この資料、非常に衝撃的だった。中の人がここまで公開していいものなのか、という意味でも。

永和さんの価値創造契約とは

新しい契約形態での受託開発サービス「価値創造契約」 | 永和システムマネジメントに詳しくありますが、簡単にいえば「初期費用無料で、常に改善・運用をしながら月額定額制でシステム利用料を頂く」というビジネスモデルです。価値あるシステムは必ず長く使われ変更を伴うのだから、その変更を受け入られるモデルを提供すれば双方にメリットがある。これが立脚点のようです。

2013年営業実績、0件

資料によればテレアポを800社行い、様々な展示会にも出展されたそうです。12社にコンタクトできたけれど受注は0件だと書いてあります。マーケティングに失敗してしまったと言って良いでしょう。

受託開発の弊害と指摘される「価値あるシステムを作りたいユーザーと、作ることが目的になるベンダーとの間に生まれる、ゴールの不一致」を解決できるビジネスモデルなのに、どうして苦戦を強いられてしまったのか。僕が思うに大きな理由が3つあったと見ています。

謳ってるメリットが伝わらなかった

価値創造契約では、「いつでも解約」「初期費用無料」でソフトウエアの利用するまでの負担をかけないという点がメリットとして謳われています。しかし、資料でも言及されていますが、ユーザーにとっては全くメリットでは無かったと書かれております。解約する前提でシステムの開発依頼をする会社は無い、と。嫌な言い方をすると、いつでも逃げられるように予防線張ってるんちゃうかと勘ぐられることもあるなと感じました。

負担がかからないから良いでしょってのは、「この商品は他のメーカーより安いからお得ですよ」という話と大差がない。極端に言えば価格勝負をしている。割安という点をクローズアップしてしまうと、自分の欲しい価値がゲットできる保証になってない。その商品である理由が説明できていないし、買った後のメリットが理解できない商品を買う顧客はいない。その辺のズレがあったのでは、と。

チケット制がうざい

月額定額なのに従量課金でチケットを売ったのも非常に不自由で、個人的には気に入らない。回数制限があったら、そう簡単に変更依頼は頼めません。もし頼んだ変更を適用した結果、昔のほうが良かったから戻したいという時に新たにチケットが発行されてしまうとなると、デメリットが際立ちます。「ちょっとした機能追加にチケット追加ならやめよう」→「チケットで予防線張っといて何もしてないのにカネを取るのか」にすり替わってしまうんじゃないでしょうか。運用しているから何もしてないわけじゃないけど、心証の問題で。

後から見えない費用がかかる可能性が高いのなら、始めに一括で払ってスッキリしたいというのが一般的な感覚でしょう。

要件定義〜リリースまでの費用をとらなかった

取るべきです。絶対。

WF型でもアジャイル型でも、要件が決定しなければ次の工程に進むことはできません。特に柔軟に変化に対応することを前提とするアジャイル型の場合は、WF型よりも顧客にかかる負担が大きくなるはずです。だからこそ、期間を決めて金銭を発生させることで真摯な議論を積み重ねるようなビジネスモデルにすべきでした。要件定義が遅延すると追加料金出ますよぐらいでもいいでしょう。その後が月額定額なんだから。どの案件でも要件定義は不可避ですし、そこできっちり詰めていればフェーズ分けの議論もしやすいでしょう。

この部分が無料になってしまうと、発注側は「無料だからいつでもいいや、後から考えよう」になりかねないし、開発側は「明確な縛りがないから、詰めたくても押し切れない。非常にやりにくい。」という中途半端な状態になるんじゃないでしょうか。また、このまま進めてリリースして大丈夫かという不安にもつながります。要件定義等のコストをサービスしてしまえば開発者のモチベーションを下げる結果になるでしょう。

上記3点のビジネスモデル上の欠点が大苦戦の背景にあるのかなと思いました。

その他資料に記載されているエピソード(失敗談)は、このモデルに限ったものではないと思ったので取り上げておりません。詳しくは資料をあたってください。

今後の展開は?

どうしましょうかねぇ・・・ まぁ、頂くべき対価の設定を間違えてしまったのなら、価格体系を大幅に見直すべきでしょう。そうなると今までと何も変わらないよって話になりそうだから何とも難しいのだけれども。

長く使い続けられるシステムを育てていくことがWin-Winなのは間違いありません。でも、価値を提供するためには然るべき所で対価を頂く必要があります。今後どのような巻き返しをなさるのか、期待しております。