設計意識が薄いということについて
>@komitsubo: 最近はエンジニアは増えたけど、設計できる人は減ってるというのが最近組織の課題になっているという話を聞いて最初は半信半疑というかそんなことないでしょと思っていましたが、実際そうらしいと現場見て分ってきてこれはホントにどうしたものか考える時間が増えた。
このツイートを読んで思ったことを書き連ねていく
>最近は以前は自分達で作るしかなかった機能が既に提供されているので、エンジニアは設計を意識しなくてもサクッとコードが書きやすい環境になっている
>その反面設計をするという意義や必要性がエンジニアから薄れているのかもしれない
たしかに

ググれば大体つくれる
DOM触ることも減ったし、
UIライブラリ使えばスタイリングの知識も隠蔽されるようになった
API実装はできても
API設計ができる人は限られている
グロースするにあたって互換性、拡張性や
コンウェイの法則みたいな勘所も含めて設計できる人はもっと少ない
しかしその裏で何が起きているのかを知らないでいいという免罪符にはならない
知らないと、凝ったことをする場合やマイナーな領域を踏もうとしたときに一気に詰まる
結局は基礎知識がないと0->1でできることは限られている
>気付くと、インフラ、フルスタックエンジニア、ハードウェア制御のエンジニアといった基幹で必要なんだけど人が足りないように、今後は設計を必要とするソフトウェアエンジニアも同様のカテゴライズされるのかもしれない。今のエンジニアからみたらうそでしょと思う事が現実になる日も近いのかも。
フロントは歴史も浅いし複雑化してきてるのでいろいろな人たちがいる
#React の知識や挙動は知っててもブラウザ標準仕様の知識は少ない人とか
実装速度最優先で運用保守に難があるとか
組み込みは出来るけどCSS書けない、あえて書かないという選択もある
大体のケースはライブラリとかコピペでもなんとかなる時代なので

もCSSはいまだに仕様書みないと書けない
でも、どれも適材適所でシステム開発にはかかせない人材
フリーランスで月収100万円!!!みたいな人やプログラミングスクール出たての人とかもまた別の世界観がある
とにかく納品とその報酬(お金)が目的の人たちで、作ったら終わり
お互いに合意が取れてるならそれはそれでアリ
話すと何となく分かる、自分とは価値観がかなり違っていて、別世界で活躍している人たちなんだなと思う
> ソフトウェアエンジニアの価値はコードの技量ではなく、何を作りそれの魅力を周りにどう伝えるかという所にシフトするとなるとこれからのエンジニアにはソフトウェア成果物を使ったある種のコミュニケーションスキルが必要になるんだろうと思うとそれはそれである意味パラダイムシフトなのかなと思う。

の経験上、事業戦略との結びつきが強い
UI/UXを作るフロントエンドこそチームを横断したコラボレーションが大事
中大規模のシステムだと設計しないと取り返しのつかないことが起こる
取り返しのつかない状態に陥らないために努力する小数の人間の成果は見えづらい
そして、小数の働き者である彼らは単一障害点になりがち
設計を見える化することに力を注ぐとよい
BIZ Teamからするとブラックボックスになりがちなので、価値観を合わせる努力をする
段階的に世界を広げていく
0→1ではえいやで進めるしかない場面もある
そんなときには戦略的に
技術的負債を抱えるのもアリだと思う
きれいに設計してもUI変われば作り直しなどもあり得るので
どれだけ追求したとして、「悪い設計」はあれど、「正しい設計」は少ない
大事な視点
いま流行している技術は今後コモディティ化していく可能性が高い
コードの見た目を綺麗にしたりとか、新しい技術を"使える"ことが価値となるケースは今後は減ってくと思う
作ったその先の価値に対する視点
要件が変わったときにどうリスクを減らすか
チェックポイントがコードだけにならないよう段階的に詳細化したりスケールする手段をえらぶ