はてなキーワード: Chefとは
10年くらいWeb開発業界にいて、ここ最近はRailsでアジャイルな高速開発的なものの周辺にいる。今は開発者〜マネージャの間を行き来しつつ顧客窓口〜実装まで一通りこなしている。
あちこち渡り歩いて色々なエンジニアと一緒に仕事をしたり、お客さんに頼まれてエンジニアの面接やらに顔を出したりすることがあるのだが、ここ最近のWeb開発はますます主力級のゴリゴリ書けるエンジニア(いわゆるフルスタックエンジニアと呼ばれるものも多分ここに入る)と大したことのないエンジニアの差が開いてきたように思う。
主力級のエンジニアは1〜2回がっつり打ち合わせしてプロジェクトの重要点とざっくりラフなイメージを共有すれば、どんなに遅くても1週間もすればプロトタイプが上がってきてお客さんに見せつつ微調整し、いわゆるアジャイルとかスパイラル開発的なことができる。デザイナがいなくてもBootstrapでとりあえず最低限の見た目を作ってくれるので、とりあえずデザイナ無しで開発して最終的にお客さんが気に入らなければWebデザイナに見た目整えさせてテンプレ取り込み、という開発がここ最近のメイン。
ソースコードもフレームワークやRESTfulの基本概念が理解されているコードなので、後日の機能修正の時にそのエンジニアが動けなくても自分がフォローして修正することもできる。
仕事もしやすいし、実質1〜2人の稼働でサクサク進められるのでコミュニケーションロスもなく楽しい。
一方、大したことないエンジニアは前述した流れが全くできない。
まず決定的なのは、開発が遅い。ちょっとしたデザイン無しのCMS(リッチUIなし)をRailsで書くのに1週間かかっても終わらなかったりする。これじゃ生PHPで書くのと変わらないかそれより遅いので、Rails使う意味がない。
次に、品質が低い。できあがったと言われて念のためチェックすると、基本的なCRUDレベルでエラーが出たり、お客さんに見せるプロトタイプだと言っているのに初期データ(seeds)の整備すらされていなかったりする。本人のローカル環境で動いてるけどstaging環境にdeployすると動かないとかはよくある。
パッと見に分からない部分もひどくて、ソースを確認すればあちこちどこかからコピペしてきたコードのつぎはぎで、HTML規約違反やJavaScriptのエラーまで放置されていたり。あと実装しましたと口頭で言っていた機能がソースコードコメントではTODOになっていたこともあった。
最後に、成長しない。開発上詰まった所なんかを主力級エンジニアに聞くのは構わないのだが、表層的な理解に留まり応用が利かない。30分〜1時間も主力級エンジニアの時間を浪費しながらもまた同じ様なところで同じ様なミスをする。自分もよくプチ勉強会みたいな状態になったときには参考図書や技術資料のポインタを投げたりしているのだが、参照先を見て深掘りすることはほぼない。
厄介なのは、こうした大したことないエンジニアも、Railsであればあちこちのチュートリアル記事や書籍を参考に、そこそこそれっぽく見える自作サービスくらいなら作れてしまうという点にもある。
彼らの作るサービスはまさに書籍やチュートリアルサイトのコピペの集大成だが、個人が趣味でやっているサービスとしては十分に動く。そして周りには「エンジニアです。個人でWebサービスも公開してます」となる。サービスの外からは内部のコード品質などはわからない。
プライベートで開発するのはむしろ奨励しているのだが、彼らはその拙い(あえて「拙い」と書く)サービスでもって「俺はもういっぱしのエンジニアだ」と勘違いしてしまっている様に思える。
だが違うのだ、お前が書いているシステムは「とりあえず動く」レベルのものであって、受託開発としてお金をもらってお客さんに納品するシステムや、数千万〜数億の売上を左右するような業務システムではその素人クオリティでは話にならないのだ。
適切な例外処理、担当者がミスしにくい管理画面の設計、お客さんの想定ユーザ数に耐えられるレベルでのスケールする設計、開発者が入れ替わっても保守が続けられるようにするための最低限のドキュメントなど、production level qualityに足りていない部分がいくらでもあって、そこまで考えられて「主力級エンジニア」なのだ。
こうした主力級エンジニアと大したことないエンジニアの谷は以前から感じていたが、ここ最近ではさらに顕著に感じるようになってきたように思う。
例えば、主力級エンジニアはRailsだけでなくミドルウェアやprovisioning(chefとかansible)、最近ではdockerやCI、AWSの新サービスなどについても各自追いかけていて、自分も含めてちょいちょい議論をすることがある。「最近のアレってどうなん?」とか「はてブでやたらXXX流行ってるけど、これって結局数年前のYYYの焼き直しじゃん」みたいな。
そんなところに大したことないエンジニアもはてブやRSSなどで用語は聞いたことがあるので混じってくるのだが、まず前提知識がなさすぎて議論にならない。大体「XXXマジすごいっすね〜(意訳)」で終わっていて、その技術の背景や今後どうなりそうか、自分達が取り入れることで業務効率や開発の楽しさが改善するのかといった視点がない。
他にも、ちょっとしたトラブルシューティングの際も、基礎がなさ過ぎて問題の切りわけができない。問題の原因がネットワークレイヤなのか、ミドルウェアなのか、アプリなのかすら判断できなかったり、そもそもアタリを付けるのが絶望的に遅かったり勘が悪い。
単に作業が遅いというのではなく、問題の切りわけというエンジニアとして最低限できないといけない事すらおぼつかないケースも見かける。
こうした大したことないエンジニアは速度・品質・難易度面で新規開発プロジェクトにアサインするリスクが高いので、必然既存サイトの運用・メンテ(ちょっとしたページデザインや文言修正)といったタスクが回されるのだが、最近この辺りも仕事がなくなってきているように思う。
というのは、お客さん側にRails Tutorial程度の開発知識を持っている元エンジニアや趣味でちょっと触ってみましたレベルの人が増えてきたから。これは恐らくRails特有な所(自作Webアプリ簡単に作れる啓蒙がなされている)がありそう。
ちょっと考えてみれば、文言修正やデザイン修正する程度の作業、外注に頼むと数万かかる上に見積やら稼働確保やらで数日〜数週間待たされるのに対し、担当者が自分でやってしまえばすぐに済む話というのはちょっと考えれば分かるわけで。
# もちろんそれでも保守契約や責任分解点の関係で外注するケースはあるだろうが、Railsを採用するようなWebサービスは速度重視のことが多い
そんな中、この「大したことないエンジニア」の人達はどうなるんだろうなあ、と思う。開発会社ではなくRailsシステムを運用しているユーザ企業に行けば多少は需要あるのかなーとも思うけど、ユーザ企業はできないエンジニア雇うほど余裕もないだろうし。
せめてコミュニケーションスキルが高いとかそういう利点があればいいんだけど、変に自分が「エンジニア」というプライドがあるのか、窓口とか管理方面は率先してやろうとしなかったりもするし。
早めに「エンジニア向いてないよ」と言ってあげるのが良いのだろうか?
Playbooks — Ansible Documentation
railsbox - Fast and easy Ruby on Rails virtual boxes
Ansible入門 (全15回) - プログラミングならドットインストール
Amazon.co.jp: 入門Ansible eBook: 若山史郎: Kindleストア
Amazon.co.jp: Ansible Configuration Management 電子書籍: Daniel Hall: Kindleストア
Red HatがITオートメーションのAnsibleを$150Mで買収へ…OpenStackデプロイをDevOpsのために簡易化
Git Clone (スタートアップスクリプトID:112600117316)
指定のGitリポジトリをcloneし、指定の実行ファイルを自動的に実行します。
https://github.com/philc/terraform
fog - The Ruby cloud services library
A list of base boxes for Vagrant - Vagrantbox.es
Discover Vagrant Boxes | Atlas by HashiCorp
https://github.com/ryotarai/itamae
Itamae - Infra as Code 現状確認会 // Speaker Deck
Amazon.co.jp: Chef実践入門 ~コードによるインフラ構築の自動化 (WEB+DB PRESS plus): 吉羽 龍太郎, 安藤 祐介, 伊藤 直也, 菅井 祐太朗, 並河 祐貴: 本
Docker - Build, Ship, and Run Any App, Anywhere
[翻訳] Dockerについてよくある勘違い | TechRacho
Puppet Labs: IT Automation Software for System Administrators
お仕事は?
どんな技術があるの?
→高専までで使ったことのある言語はC/android/C#/C++/javaなどなど
→業務経験では、node.js/JavaScript/PHP/chefなどなど
どこが嫌か?
あくまで、生きるための手段であって、生きる目的ではない。
だが、社長は仕事が生きる目的であって、それを僕にも矯正してくる。
2,同僚が嫌
考えなしに、酷い事(嫌味)を自分はオモシロイと思って、言いまくる素敵な社員
3,クソPMがいる事
そのPMは、今仕事が無いので、社内では、もっぱら艦こればかりやってる。
しかも、PMの経験が豊かか?というと、アジャイル開発やスクラム開発、ウォーターフォール開発等の言葉も知らないらしい。
しかし、ヤバイのは、そんな僕でも出来ちゃうような状態の酷さのくせに、我が物顔で、僕に説教をしてくる。
正直、キレそうになる。
あのな、お前そんなんじゃ、少なくとも俺は、お前の指示聞きたくないぞ。
つうか、お前、俺より無能のくせに、俺のことを、お前っていうな。名前で呼べ、アタリマエのことだろ。
4,クライアントが嫌
クライアントが日本語が不自由な人で、質問をすると、キレてくる。(日本人です。)
お前の社内チャットの文面、いつも体言止めで終わってて、本当に意味不明なんだよ。
例
高橋さん DシステムのXX機能
(このあと、返信するまで、何もなし)
XX機能がどうしたよ!何が言いてえんだよ!!!1111意味がわからないんだよ。
頼むよ。続きの文面書いてよ・・・。エスパーじゃないからわからないんだよ。
はぁ、転職したい。
年明け出社したくないよ・・・。
開発するにあたりAmazon絡みの検索をしてる時にこの記事にたどり着き、10年近く運営しているサイトと同じくらいのはてブが一日で着くのを見て、やってきました。
コミック、小説、作者別に新刊・新作をメールにてお知らせ【ベルアラート】
ベルアラートは商品の発売日をメールで受け取ることを目的に開発しました。
機能的には、コミックだけではなく小説や専門誌を含むあらゆる書籍、DVD、ゲーム、家電の発売日もカバーをしていますが、ランディングページを作るのにあたりメーカー名などを調べ尽くすのが大変だと思いコミックに特化したサイトの構成にしています。
・ コミック、小説など書籍の予約開始日と発売日をメールで知らせます。
・ 出版社、タイトル名、著者を調べ回らなくても良いように雑誌一覧や連載中のタイトル一覧、著者一覧をランディングページとして作成しました。
自身は週刊少年ジャンプなど少数の雑誌を毎週購入して読んでいたので、あまりコミックを購入しないのですが、雑誌を読まずにコミックを購入している友人と本屋に行った時に出版社や連載誌によって発売日がまちまち 休載などがあったりでタイトル数が増えると発売日把握が面倒だと感じたから作ってみようと思いました。
まぁ、その時にしっかり似たようなツールが無いかしっかり探せばよかったのですが、なんとなく漫画に絡んでみたかったのもあって、きちんと探さなかったです。
・当初想定していた最低限の機能の開発に2週間
・それをいじくり回して機能追加、修正を行うこと2週間
・バグ取りを行いつつ公開準備で1週間
Phpstorm:PHP用のIDEとしては評判が良いので、今回の開発から利用開始。今まで秀丸やSublimetextなどのテキストエディタメインで開発してたけど、統合開発環境のありがたみを実感。
PHPに特化してるだけあって、痒いところに手が届く感が素晴らしい。
ちなみに、Phpstormは日本語ローカライズされてないので隅から隅まで英語でびっしり。
TwitterBootstrap:今回初めてCSSフレームワークを利用してみた。導入するだけでデザインがそれっぽくなるのは◎。またレスポンシブデザインも簡単に対応できるので、スマホとPCの両方で使用することを前提にしたサイトを作るならすごくお手軽。
ただ、JQueryUIや部分的なハックを用いる際の競合には悩まされた...。
Vagrant+Chef-solo:使ってみた。便利だった。ホストとゲストOS間の共有ディレクトリも簡単に設定できて、いやー、これで開発環境の仮想サーバをバンバン建てられるわー。
今回の案件で便利だったというより、今後の開発全般に対してメリットが大きい。
連載中のタイトルなんて、そんなにたいした数無いだろうし、まずはコミックのタイトル一覧を作ろうと思いExcelファイルにまとめていきましたが、執筆時点で雑誌数86、タイトル数2012に達し連載中の数にびっくり。舐めてましたまだまだ増えそう・・
・ タイトル数がめちゃくちゃ多い
・ タイトルの読み方が解らない(菩提樹寮のアリア → リンデンホールのアリア)
・ 正式タイトルとコミックにする時の名前が違う(ソードガイ 装刀凱 → ソードガイ)
・ 原作、作画、プロデューサー、シナリオライターとかの名前を全て拾うとAmazonで抜け落ちてる場合がある
・ 新連載と連載終了の情報がつかみにくい。(特に打ち切りはひっそり終わってることが)
・ Amazon側で姓名の入力が一緒になっている著者と別れている著者がいるので著者によって姓名の間にスペースを入れる入れないでHitしたりしなかったりする
(蒐集奇譚イットは座紀光倫を著者に入れるとHitせず座紀 光倫だとHitする)
・ 困ったことに2巻と3巻など巻によって著者の姓名が別れたり別れなかったり
検索ページで全てのアラート登録ができますがコミックに関しては連載中タイトル一覧か雑誌一覧から目的のタイトルのランディングページに行き緑色のボタン「◯◯」の発売日の通知を受け取るを押してメールアドレスを入力すれば目的の商品のアラートが受け取れます。
人気のタイトルは関連書籍が多数でるので、検索ページでアラート設定する場合は、タイトル、著者、ジャンルを指定しないと意図しない通知も来ます。
専門誌とかであれば単純にキーワードに「wordpress」などと入力して設定してもいいかもしれません。
冒頭に書いた通り書籍以外も設定可能なので例えば「コーエーの信長の野望」の新作発売日を知りたいのであれば、検索のTVゲーム欄にタイトルを信長の野望、メーカーをコーエーテクモゲームスにすればアラートを受け取れます。
登録されたアラートのメールドメインを見ると思っていた以上に携帯アドレスの登録が多く、スマホアプリを9月中にリリースしたいと思っています。
このベルアラートは貴方が所有しているAmazon アフィリエイトIDを入力すれば、ベルアラートからの発リンク、発売日や予約開始日のメール通知が全て貴方のアフィリエイトIDリンクになりますので、貴方のサービスとして利用可能です。
リンクする際にはURLの?aid=aaaa-22としてリンクして下さい。(aaaa-22部分は貴方のアソシエイトID)
今後、楽天や他のプラットフォーム対応時には追加して頂くパラメーターが増える可能性があるのと貴方のサイトから登録されたアラート数やタイトル(登録メアドは非公開)などの実績把握のためにも、ユーザー登録して頂いた方がアソシエイトIDなどをまとめて入力できるので紹介リンクを変更せずにすみます。(ログインした状態でこのページにアクセスして下さい。)
ご紹介頂ければ幸いです。