この指とまれ!
朝、顔を洗っていると、ふと歯磨き粉のことが気になりました。
フタがデカくて自立している。
子供のころの歯磨き粉のフタは細くて、チューブは横たわっていました。
こいつら行くとこまで進化しとるな。研ぎ澄まされとるなとw
一方、システム開発はどうでしょうか?
粗悪なシステム、完成しないシステム、見積と実績の乖離、炎上、デスマーチ、、、
業界紙、同業者仲間からよく聞かれる話です。
残念ながら弊社も例外ではございません。
完璧なシステムを開発できている会社はどこにもないのではないでしょうか?
にもかかわらず、AI、IoTと新しい市場が広がり、そこに多くのベンダーが群がります。
そして、顧客に対して都合のいいことを並べ立て、同じ過ちを繰り返していく。
本当にそれでいいのか?
私たちは、一見時代遅れに見えるかもしれませんが、システム開発と正面から向き合い、真のシステム開発を追求したいと考えております。
また、システム開発が追求できれば、そのやり方をAI、IoTと新市場に展開していくことはさほど難しくないはずです。
逆に言えば、それが追求できていないのに新市場に展開して、本当の価値を生み出すことができるはずがありません。
本コンテンツをお読みになり少しでも共感いただけた人は、この指とまれ!
挑戦するお客様の力に
▼「挑戦するお客様の力に」これは私たちの理念です。
本気で世の中を変えたいと思っている人たちにシステムという武器を提供したい。
・ほんと便利になったよ。最高!
・これで本業に集中できるよ!ありがとう!
・エンジニアってかっこいいね!
私たちはこんな仕事がしたいんです!
開発効率を極限まで高める
でも今のシステムは費用対効果が悪すぎて、そんな挑戦する人たちの足かせにすらなりえます。
私たちは決してエンジニアリングを安売りするつもりではありません。
4つのアプローチで開発効率を極限まで高めようとしています。
・細分化された開発プロセス
・チームワーク
・ユニット化
・スモールスタート
▼細分化された開発プロセス
鈴木商店ではシステム開発の工程を100以上のプロセスに分解しています。
このプロセスは最小公倍数的に全てのシステム開発で共通して使用できるものになっています。
まず、そのプロセス毎の工数をエンジニアが見積ります(Plan)
その上で実際の日々の作業時間をプロセス毎に記録していきます(Do)
見積工数と実績工数を比較することで、ボトルネックを可視化することができます(Check)
そしてボトルネックを改善する(Action)
このPDCAサイクルを回し続けることで、システム開発のプロセスに磨きをかけています。
▼チームワーク
カレー機能とシチュー機能があったとします。
多くの会社では、カレー担当がカレーをつくり、シチュー担当がシチューをつくることになりますが、それでいいのでしょうか?
野菜を切り、玉ねぎを炒めるという途中の工程は同じで、最後のルーが違うだけ。
だとすれば、野菜切り担当と玉ねぎ炒め担当に分けるべきです。
そのためには、料理長(=開発リーダー)のスキルが求められます。
鈴木商店の開発リーダーは、現役のエンジニアが担当します。エクセルでスケジュールと予算だけを管理しているオラオラリーダーではありません。
メンバーはデータ構造、ソースコードのレベルで開発リーダーと相談しながらプロジェクトを進めていくことができます。
だからこそ、野菜切り担当、玉ねぎ炒め担当という役割分担が可能になるわけです。
鈴木商店ではプロジェクトをコンサルティングリーダーと開発リーダーのツートップ体制で進めていきます。
コンサルティング部の役割は、お客様の業務を徹底的に理解した上で最適なシステムの提案を行い、その結果を開発部に伝えることです。
レストランでいうところの、ホールマネージャー的な存在。
お客様の好みを理解した上で、料理長に伝える存在です。
コンサルリーダーと開発リーダーは、どちらが上ということはなくフラットな関係でお互いを尊重、信頼しあうことを大切にしています。
いわゆるディレクターの下にエンジニアがぶら下がるチーム構成では、開発のことがよくわかっていない上司からの指示に従う形になってしまい、エンジニアからしてみれば「OKY(お前、来て、やってみろ)」、ディレクターからしてみれば「なんでわかってくれないんだ」の悪循環になってしまいますよね。
鈴木商店では、ホールマネージャーと料理長がお互いを信用しあって美味しい料理を作り上げていくのです。
▼ユニット化
システムには、ログイン、権限管理、メール配信など様々なシステムで共通で利用できる機能が多くありますよね。
これを毎回作るのってすごい無駄。
他のPJからコピって持ってこようとしても、微妙に仕様が違って苦労することも。
鈴木商店ではこのような共通部品をユニットとして管理しています。
そして要件定義時にこのユニットにあうように仕様を調整します。
この要件定義時にユニットを意識するというのはとても大切で(もちろん仕様にあわない場合もありますが)「これが標準です」とお伝えすると、多くの場合「あ、それでいいよ!」となります。
家を立てるときもほとんどの家でユニットバスが使われますもんね。
▼スモールスタート
「全ての要件を明らか」にして、一括請負ウォーターフォール型で開発することができれば、トータルコスト・納期は最小となります。
ただ、「全ての要件を明らか」にすることは極めて難しい。
仕様変更、納期遅延、使われない機能、、、
そのため、少しずつ開発していくスタイルのアジャイル開発がブームになっているわけですが、コストや納期を決めずに、かかった工数分だけ請求するというお客様側にリスクをなすりつけるようなスタイルには違和感があります。
やはり、モノづくりを生業としている私たちはやはり成果物にコミットしたい。
時間の切り売りのような工数の提供でなく、モノの価値をお客様に提供したいと考えています。
鈴木商店では、まず初期開発として必要最小限の機能のみを切り出して、ウォーターフォール型でシステムの骨格を組み上げます。
それが正常稼働した後に、追加で機能を肉付けしていくという、ウォーターフォールとアジャイルの中間的な開発スタイルをとっています。
技術力とは
一般的なシステム開発では、複雑な業務ルールを整理整頓したうえで、シンプルなロジックを大量に組み立てていきます。高度なアルゴリズムを駆使するようなケースはあまりありません。
この前提において、本当に大切な技術力は、以下の2つだと考えています。
・複雑な業務ルールを整理整頓する力
・シンプルなロジックを大量に組み立てる力
▼複雑な業務ルールを整理整頓する力
システムを必要としているお客様の業務はえてしてコンガラがっているものです。
電話、FAX、紙、エクセルの限界(すげーなこのExcel(汗))、、、と属人的な運用が繰り広げられています。
システムを作るというのは、そのような複雑になった業務のルールを定義していくことに他なりません。
「つまりこうゆうことですよね。じゃあ1:Nの構造ですね。」と情報設計していくわけです。
私たちは全てのプロジェクトでエンドユーザーと直接やりとりしますので、お客様の立場に立ち、時にはお客様以上に業務を徹底的に理解し、複雑な業務をシンプルなルールに落としていく力がとても大切です。
▼シンプルなロジックを大量に組み立てる力
複雑な業務ルールを整理整頓さえできれば、あとはシンプルなロジックを大量に組み立てるだけです。
特別難しい高度なアルゴリズムを駆使するようなケースはほとんどありません。
ではシンプルなロジックを大量に組み立てるのに大切なことはなんでしょうか?
チームワークは前述の通りですが、もう一つ、正しく道具を使うことだと考えています。
道具は用途通りに正しく使ってはじめて本来の性能を発揮します。
「ノコギリは引く時に力を入れる」などその道具の設計思想を理解することが大切なのです。
言語やフレームワーク、ツールも同様です。
乱暴な言い方をすれば、枯れた技術でも正しくその技術を使いこなせれば、十分に良い物を作れるはず。
しかし、エンジニアの自己満足、オタク的な興味だけでむやみに新しい技術を広げて正しく使用できていないケースが多く見受けられます。
これでは最新の電動ノコギリで釘を打とうとしているようなものです。
私たちは最新の技術ばかりを追いかけるのではなく、熟練の大工が瞬く間に釘を打っていくように、道具を使いこなすことが重要だと考えています。
でも最新技術が好き♡
「新しい技術をむやみに広げない」と前述しましたが、まったくやらないということではありません。
もちろん電動ノコギリみたいな破壊的な道具はいちはやくとりいれます。
AWSなんてパンチありますもんね。
そして、新しい技術って楽しい!大好き♡
だからエンジニアをやってるわけで。
鈴木商店には新しい技術にチャレンジするための「チャレンジ予算」という制度があります。
例えば、Swiftでネイティブアプリを作るとします。
でも、社内にノウハウがなく、他社の相場が500万程度なのに対して、自社開発するには1,000万かかっちゃうというような場合、この「チャレンジ予算」を適用します。
お客様へは500万請求し、自社負担チャレンジ予算500万と合わせて1,000万のプロジェクトとして開始するわけです。
このようにして新しい技術をアップデートし続けています。
※チャレンジ予算には全社売上の5%を確保しています。
鈴木商店のこだわり
▼100%自社社員開発
開発効率を極限まで高めるための取り組みは、急遽集まった寄せ集めのメンバーでは成し遂げれないと確信しています。
信頼できる仲間と知恵をしぼりあい、切磋琢磨を繰り返しながら目標に向かっていくことでこそ、達成できるのです。
なので私たちは、派遣エンジニアや外注を一切使わず、100%自社社員開発にこだわっています。
▼エンドユーザーと直接取り引き
お客様が本当に望んでいるシステムを開発することが私たちの使命です。
ですので、大手ベンダーが間に入って、言われた通りに開発するような下請け仕事はやりません。
お客様の生の声を聞きながら、お客様の喜ぶ顔を想像しながら開発することにこだわっています。
ベンチャーを楽しむ
これまでつらつらと偉そうな事を書いてきましたがが、とはいえまだまだベンチャー企業。
まだまだ理想には程遠い状態です。
炎上、見積ミス、バグ、お客様からのお叱り、、、
課題が山積みです。
でも、課題ってチャンスじゃないですか?
解決するだけで、その分成長するんだから!
この未完成な状態を「自分で決めれる!」とポジティブに楽しめる人たちと一緒に理想に向かって突き進みたいと考えております。
ハイリスク・ハイリターン
ベンチャーで働くって、大手企業で働くより一般的にはやっぱりハイリスクですよね。
なので鈴木商店で働くためには大きなリターンがないと割にあわないわけです。
では、ハイリターンってなんでしょうか?
▼仲間との達成感
困難なプロジェクトを血の通った仲間と完成させ、お客様から感謝の気持ちをいただいた時の達成感はハンパないです。
「本当にありがとう!」
「あなたにお願いしてホントによかった!」
そこには大企業の歯車では決して味わえない、俺がやったんだ感があります。
▼エンジニア、コンサルタントとしての市場価値
世の中のトップエンジニアと呼ばれる人たちには、なんらかの肩書があります。
「あの会社の元CTO」「◯◯を作った人」など。
鈴木商店ではリスクを負ってでもジョインしてくれるエンジニアに肩書を得るチャンスを作る使命があると考えています。
小さなベンチャーであるからこそ、今、鈴木商店にジョインすればいきなり中心人物です。
そして鈴木商店が有名な会社になれば、「あの鈴木商店を成長させた中心人物」という肩書をもっていただけます。
そうすることでエンジニアとしての市場価値は一気にあがるわけです。
その確率はかなり高いと思いますよ!今が買いですよw!
真っ白なキャンパスに描く
自社サービスを運用している会社と受託開発会社、どちらが魅力的ですか?
自社サービスがヒットしている会社は収益率もよくて、安定してそうですよね。
でも、仕事内容に目を向ければ、既存サービスの機能追加や運用がほどんど。
エンジニアとして楽しいですか?
私たちは今は開発効率を徹底的に追求するというテーマのもと、あえて大変な受託開発の道を歩んでいます。
その方が明らかに開発力が身につくと確信しているからです。
毎回真っ白なキャンパスに絵を書いていくって楽しいですよ!
WEB未経験者を応援しています!
鈴木商店ではWeb未経験で入社した組込系等のエンジニアが多く活躍しています。
Webといえどもプログラムの原理原則はそれ程変わりません。
逆に言えば、小さなメモリーを意識しながらC言語を書いている人の方が、プログラム力があるとさえ思います。