aozora.fm第29回目。第29回目は、ゲストにAizackさんをお迎えしています。
Aizackさん、よろしくお願いします。
では、最初に軽く自己紹介をお願いします。
TwitterでAizackと名乗っております。職業は、独立系のSIerでSEをしていまして、
今年でキャリアで言うと3年目ですね。基本的に客先で常駐しながら、
ウェブサイトの構築なんかをやっているので、広い意味ではウェブエンジニアっていうような感じでお仕事しています。
よろしくお願いします。
はい、ありがとうございます。
えっと、Aizackさんと最初にお会いしたのって、あれですかね、EVERYONE ARTPUTのイベントですかね。
えっと、たぶんその辺だと思う。
あ、どうだろう。
なんか応援する会とかのイベントで。
応援会の関係…
あ、えっと、直接お会いしたのはその前に一度、
プレードさんでやられてた転職LT。
はいはいはい。
その時に、それまでお互いなんとなくタイムラインは見てたけど、
これでちゃんとお会いして、あ、あなたがっていうのはあったかなと思ったんです。
なるほど、結構あれですよね。
その後ですかね、MOVPROの話でちょっと出会ったりして。
はい。
っていうのがあって、でまぁ、その10月、11月ぐらいに出たいって話になって、
今7月になって収録をしているので、大変お待たせをしました。
いやいやいや、やっと出れました。
ありがとうございます。
こちらこそ読んでいただいてありがとうございます。
普段から聞いていただいてるけど、ちょいちょい聞いていたんで。
ありがとうございます。
割と楽しみに聞かせていただいてます。
それで、ちょっと自己紹介の話になっちゃうんですけど、
今SIRで働いている客先常駐でウェブ系の開発をやっているってことなんですけど、
主に担当されてるのはフロント、バックエンド、あとインフラ周りどのあたりなんですかね。
基本的にはバックエンドの周りをやってます。
で、今までやったのって大きく2つお仕事があって、
ウェブサイトの構築をCMS化するっていう場合にDrupalっていうCMSを使ってるんですけど、
海外ではよく使われてて、国内だとまだまだしやすくないCMSではあるんですが、
そのDrupalに既存の静的なものを置き換える。
その時にどういう風に設計しないといけないんだっけ、
管理画面どういう風にデザインしましょうか、みたいなのを僕らがやってオフショアに作ってもらう。
それを返ってきて受けてテストするっていうのが1つのパターンと、
今今やってるのが新規サイトを作る中でバックエンドで少しAPIを叩いて、
静的なページを呼び出しをかけるっていう簡単なスクリプトをバックエンド側で作っていて、
そこの設計、構築、テストまでの一連の流れを私が作業者でやっているっていう2つの大きな仕事を客席でやってます。
じゃあそのCMS周りとかだと主にバックエンドとかCMSの設定とかインストールとかをやっていて、
そうですね。インストールはインフラ側でやってる部分もあるんですけど、
そこをどう設定しなきゃいけないんだっけとかっていうのは多少僕らの方でパラメータをいじったりとかしてます。
その2つ目の方のもともと静的なサイトだったのをちょっと動的な部分を決めるみたいな感じで、
APIを叩くって部分をメインでやられてるって感じ。
それは技術的にはどんな言語とか仕組みを使ってやってる感じですか?
技術的にはPHP7を使って、いわゆるバニラPHPっていう形でフレームワークは特に使わず、
PHPで他で作ってるAPIを叩いて取りに行って、ヘッダーとフッター表示して、
あとは静的コンテンツとそれにくっつけて、みたいな形で画面表示をやる。
簡単なスクリプトとそれに紐づくAPIのパラメータとか定義を裏で持たせたいんで、
その辺を設計したり書いたりっていうのをやってるところですね。
フロントは何でそのAPI叩くんですか?
フロントはJSで叩いたと思うんですけど、
フロントは別のチームが作っているので、完全に僕らバックエンドで既に作られたものを呼び出すだけ。
フロント側のチームは別で自分たちでHTMLとCSSとJSで書いて、
いうので分業しているような形で。
じゃあ本当に既存のAPIとの間みたいなのを作るって感じなんですね。
PHP 7系でフレームワークを使わなかった理由、
多分ララベルが一番あれだと思うんですけど。
そこはですね、プロジェクトのもともとの制約が関わっているところだと思うんですけど、
もともとそこまで大きくなる話ではなかったっていう風に聞いていて、
っていうのも、私入った途中から要件定義をやってた、
ウォーターホールでいう要件定義をやっていたタイミングでは、
そもそもそんなに大きなプロジェクトではなかったので、
バニラPHPでいいだろうと。
フレームワークとかいらないよねって話で進んでたら、
どんどんどんどん話が大きくなっていって、
結果的にはそれで足りんの?みたいになったけど、
もう動いてるんでしょうがないっていうような状況ですね。
なるほど。じゃあ、一から自分でこういうAPIがあってこういうことをやらなきゃいけないよね。
じゃあ、愛宅さん一からお願いねんじゃなくて、
既に誰かがある程度レールを引いたものに途中から乗っかってやり始めたら、
燃え出したみたいな。
そうですね。関係者たくさんいる中で、
あれもこれもっていうのが増えていくのはしょうがないところであるんで、
お仕事してる中で、真っ端にいる、
僕でなんとか声を上げて変えるっていうには力を及ばずだったっていうのが、
一言で言うとそういうことですよね。
それは組織構造としては、愛宅さんが作業者としていたときに、
愛宅さんは完全に誰かから言われたことをやる感じだったのか、
あるいはステークホルダーみたいな人と会話ができる立ち位置にいたのか。
どちらかと言えば後者ではあるんですけど、
その会話をするにあたって、もう一個レイヤーがあって、
いわゆるマネージャーがもう一人自分たちのところにいて、
そのマネージャーが窓口でステークホルダーだったり、
自分が客先にいるときのお客さんと話したりっていうのをその人がやっていたので、
僕が直接全ステークホルダーに声かけとかじゃなかったんですよ。
なので一回その人通って全部やり取りが走っていたので、
把握できていないところも多かったり。
直接話せる人もいれば、大体はそのマネージャーを通してなって、
ぶっちゃけそのマネージャーはどうだったんですか?優秀だったんですか?
優秀っていうのは切り方もいくつかあると思うんですけど、
マネージメント側としては優秀な方だとは思っていて、
SEの能力の中でいうと、コミュニケーションだったり、
技術的な部分とそうじゃない部分の翻訳っていう部分、
あとはコントロール、ここに関してはすごく長けていた方で、
ただ一方で技術的な部分にはそこまで強い力だったり関心もなくて、
あとはお前がその作業をやるんだからある程度任せるよって
ドンって投げてくれるようになった。
それがちょっとうまく、僕が力発揮できず力親技の部分が重なって、
モヤっとした感じですね。
話を聞いていると、最初の要件は要件で決まっていて、
おそらくデサイヤーなんで契約形態も受け負いとか自宅のやり方であると思うんで、
最初の範囲にちゃんと収める努力をする、できなかったのが
範囲として一つあるのかなっていうのはちょっとあるんですよね。
当然後から必要なものが出てくるのはしょうがないと思うんですよ。
だって、アジャイルとかスクラウンみたいに最初に決めた範囲でやるんじゃなくて、
もっと大きな目標に向けて必要なものをどんどん明らかに一つやっていくっていうのは
不確実性との戦い方の話になると思うんですけど、
っていうのをやれば、その後から増えてきたものを優先順位に決めて
入れ替えてやっていくってことができるんですけど、
どうしてもデサイヤーの仕事の仕方って半年から半年、
その半年前の優先順位で全てが決まって、その枠組みで勝利が決まっちゃうじゃないですか。
そこからはみ出たものって、ある種冷酷な言い方というか、
この変化を非常に変化しまくっているこの時代に
そこはね、従々承知の上で切り捨てていかないといけないんですよね。
あるいは次のフェーズでやるとか。
そうですね。
っていう調整が実は、受託とか受け負いでやるエンジニア、
エンジニアに限らなくて営業とかもそうなんですけど、
すごく必要なスキルだと思っていて、
結局そこなのかなってちょっと思ったんですけど。
そうですね。そういう意味だと、
仕事が増えた原因って何も僕の上のマネージャーだけの話ではなく、
大きく言うと僕が入ったところ、お客さんがベンダーで入っていて、
そこの窓口がフロントエンドとバックエンドと分かれてたんですね。
バックエンド側が僕の上司で、フロントエンド側が別チームにいて、
フロントエンド側が動くとバックエンドに全部跳ねちゃう仕組みになっているので、
ページ1個表示するにもAPI叩くっていうのがあると、
ページごとにAPIを呼べるようにしなきゃいけないっていう仕組みとかが、
ちょっといけてない仕組みがいろいろあって、
フロント側の要件が増えます。
それがバックエンド側に全部通知されてればいいものを、
分かんないままいつの間にか増えていて、
ギリギリになってポッと増えて、
やりますかって2日前にページ追加増えます、
分かりましたやりますみたいなのが出たりとか。
っていうのも足並みちょっと大きなチームで、
会社単位だとまとまってなきゃいけない部分がまとまり取れてなくて、
フロントの人たちも夜中までお仕事しかしてたみたいなので、
そこにワーってなりました。
あれだ、お隣さんを探せってやつだ。
自分がいるのはバックエンドでAPIで絞っていくと、
そこだけ見ればいいって思いがちなんですけど、
でもそのAPIってシステムの一部だよねってなった時に、
実はそのシステム全体を見ていて、
今言ったようにフロントとバックのチームが別で、
フロントで何か動きがあるとバックにも影響があるってことは、
実はそのフロントのチームとすごく仲良くしておかなきゃいけなかったとか、
動きを読んでおかなきゃいけなかったとか、
全然関係ないですよバックエンドには。
なんだけどシステム前提で見たらそうだよねっていう、
ある種政治的なところもあったりっていうところですよね。
いやーわかる。
それはですね、こっちとしてはある程度やっていたつもりが、
割と握ってたと思ってたところ、
フロントエンド側がいつの間にか突き進んでいたっていう、
こっちからはそう見えるのが何度かあって、
毎回うーんって言いながら、
いいからやってって言われてやらざるを得なくなる。
お客さんと合意取っちゃったみたいな。
それは契約的にどうなのとかもいろいろありそうだなぁ。
そういうのをいろいろ経て、
DevOpsとか、
担当役割で違う人をまとめて一緒に仕事しなきゃダメだよねって思えば、
すごく強くなりました。
なんで近代、こういう話がいっぱい出てくるのっていうところが、
すごく腹打ちする現場ですね。
なんか、ザ日本の開発現場みたいな。
辛さしかないですね。
全部喋っちゃうとどこに飛び散るかわからないんであれですけど、
だいぶごまかしてもこれだけいろいろ出ます。
Twitter界隈とか、
強いITエンジニアの方と会話すると、
やっぱり技術専攻の方がすごく多くて、
DBとかライバラリーとかフレームワークとかにすごい詳しく言語仕様とか、
フレームワークのコード読むといいよみたいな話聞いて、
なるほど、なるほどって思うんですけど、
どうしても僕の中でそれがすごく腹落ちしないというか、
重要なのはわかるんですけど、
それ以上にもっと重要なことがあるんじゃないかっていうのが
すごく自分の中でモヤモヤしていたことがあって、
最近僕もあーって思ったのが、
その技術、フレームワークとかDBとかSQLとか、
いわゆるテック系の技術を僕が多分すごく極めていても、
僕がSIRとしてあるいはITエンジニアとして一番困っていた時期に
役立たなかったなっていうのがあるんだなっていうのがあって、
今のあいざくさんの話は全く同じなんですよ。
ほんとそうです。
どんなに綺麗なコード作法が、どんなに綺麗なインターフェースを定義しようが、
たった一言で全てがぶっ壊れるんですよ。
お客さんと合意とってきたんでってメール一本で残業が決まりますからね。
それって関係ないじゃないですか。
どんなに綺麗なSQLを書こうかDB構造を作ろうか。
だから結局ヒューマンスキルなんだよなっていうのは結局人なんですよ。
それって現場が悪いじゃんとか、転職すれば?って話もあるし、
それそれが別に正解なんですよ。
それを技術、もっと自分がやりたい新しい技術とか、
良い良い技術の活躍の場を求めて転職するのは全然アリだと思うんですけど、
でも特に内部にいるとそうなんですけど、
どうにかしたいって思うじゃないですか。
思います。ほんと思います。
一般、理由とかきっかけはあると思うんです。
人がとか、そのシステム自体が気に入ってるからとか、
最初に入ったからみたいなのがあると思うんですけど、
どんな理由があるにせよ、やっぱ上手くいかせたいじゃないですか。
そうですね、ほんと。
って思った時に、やっぱそこなんだよなって思いはあって。
すげーよくわかるっていう話聞いてて思いました。
ほんとにこう、技術で解決できると思うんですよ。
できないとは言いません。
技術を使うのが聞く人であって、
そこにたくさんの考え方から言葉から何から違う人たちが集まっちゃった以上、
そこを取り成す、上手いことまとめて落とし所を作る人が、
そのスキルを持った人がいないと、
しっちゃかめっちゃかになって、
我解するっていうのは、どのお仕事でも一緒なのかなと。
そこを整理する仕事が必要なんじゃないか、
スキルが必要なんじゃないかっていうのは、
あの案件を今も若干入ってはいるんですけど、
やってるにあたって本当に思いました。
そこが本当にSIRとかで学ぶべき仕事なんじゃないかなって。
そうなんですよね。