職業としてソフトウェアエンジニアをやってきてわかってきたこと
今までのソフトウェアエンジニアとして拙い経験からわかってきたことリストです。 思いついたものを箇条書きで書いています。 その考えに共感するきっかけとなったリンクあるいは参考になるリンクがある場合はそちらも併せて貼っています。
- デプロイ回数を増やすことはいいことがたくさんある
NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話 - Uzabase for Engineers
- 採用で妥協しない方がよい
最近だとback checkというリファレンスチェックサービスを使う会社さんも増えてきたように思います。
リファレンスチェックは、書類選考や面接だけでは分からない採用候補者の経歴や実績に関する情報を、候補者の上司や同僚といった一緒に働いた経験のある第三者から取得することができるサービスです。候補者をよく知る他者からの評価のため、より客観的な視点を含めて採用候補者の適性やチームとの相性を判断することができるようになります。
back check(バックチェック) | 実施数No.1のリファレンスチェックサービス
- DX Criteriaはやった方がよい
年に2回程度、チームビルディングをする機会などにやると足並み揃えやすいんじゃないかなと思ったりしてます。 DX Criteria (v202104)
- イミュータブルにできるものはイミュータブルにしておくとよい
ECRリポジトリのタグ〜アプリケーションコードもイミュータブルにできるところはしておくとバグを減らせることが多いです。
テックリードというと技術選定や専門性を求められる意思決定に責任を持つ、チームメンバーの技術的な底上げに寄与するというイメージがありますが 会社の方針や会社のフェーズ感によってはピープルマネジメントを求められることもあると思います。
- アーキテクチャに正解を求めすぎないことも大事である
最近はアーキテクチャの「正解」を求める声が強すぎる気がするので、そろそろソフトウェアパターンへの揺り戻しを期待したいところなのです
— Masayoshi Takahashi (@takahashim) 2021年9月7日
- テストコードをちゃんと書くとよい
バージョンアップしやすいように、リファクタリングしたときに壊れたことを安全に検知できるように。
- E2Eテストという単語は文脈によって意味が大きく異なるので注意する
Autify、cypress、Ruby on Railsでいう(System Spec)など様々な文脈でE2Eという言葉が使われている。 今議論しているEnd-to-Endはどこからどこまでなのか意識すること。
- ライブラリの採用は作者の思想に協調できるかが大事である
36. [後編] You have commit bit! w/ songmu | fukabori.fm
- チーム開発におけるコミュニケーションや部署間の調整はコミュニケーションパスを意識するとよい
組織におけるコミュニケーションパスの問題 - セカイノカタチ
- ステージング環境は多くの場合不要かもしれない
毎日何度も本番環境にデプロイをしている話 - Mitsuyuki.Shiiba
- フィーチャートグルを活用するとよい
新機能をリリースするときにビッグバンリリースをしない。 フィーチャートグルを活用することで段階的にリリースを実施する。
- 絶対見積もりをしない
納品のない受託開発を詳しく知る - SonicGarden 株式会社ソニックガーデン
不安とストレスから解放される見積りとスケジュール方法 - Qiita
- チームメンバーを信頼、尊敬し、謙虚に振る舞うとよい
転職市場での自分の立ち位置を定期的に確認するとよい
何も設定してないけどデフォルトでそこそこ動くツールは普及する
例: VS Code、Next.js
- DBに対するイレギュラーなオペレーション操作もバージョン管理するとよい
GitHub issue上で実行予定のコマンドおよびSQLをレビューしない。リポジトリにスクリプトをコミットし、レビューを通す。
- 本番環境をカジュアルに直接操作しないようにするとよい
Zero Touch Productionとは何か | Taichi Nakashima
- チームで開発から運用までの全ての工程を担当できると効率がよい
例: 「You Build It, You Run It」、「Full Cycle Developer」
- 技術は手段であってもいいし、目的であってもいい
プログラミング言語選びを優先してしまい何を作るかを後回しにするのは良くない、「目的と手段が逆だ」と言われがちだけど、実際その言語のエキスパートと呼ばれる人達は特定の言語に固執しつつその言語で何でも作ってみる事でエキスパートになっているので、僕はあながち否定するつもりはないな。
— mattn (@mattn_jp) 2022年3月17日
他にもたくさんありそうですが、疲れたので 今回はこのぐらいにしておきますノシ