Melting Pot of Thoughts

SaaSスタートアップのCTOです。思考の整理のため考えたことをメモ書きレベルでアウトプットしていくブログです。

エンジニアリング

ドメインエキスパートとどれだけ議論しても、完璧なドメイン理解にはたどり着けない

自分がこれまでSaaSを開発してきた経験の中で、「ドメイン領域に対する自身のモデリング精度が低かったゆえに、機能リリースからある程度時間が経ったのちに仕様をガッツリ見直した」ことがよくありました。 特に投資の計算指標などドメイン知識が複雑なもの…

スクラムは積極的にカスタマイズして使うべき

有名な開発フレームワーク”スクラム”が、現代のアジャイル開発にもたらした貢献は多くの人が認めるところだと思います。 私自身も、スクラムの思想である「経験主義」「リーン思考」に強く影響を受けた人間の一人です。 私はスクラムの考え方自体はかなり好…

技術的負債が返済されない理由と返済する方法

ITエンジニアにはおなじみの『技術的負債』についての記事です。技術的負債の定義は「最善ではない設計や実装により内部品質が低下し、将来的な保守性やシステム性能としてのスケーラビリティに影響を与えるような課題」とこの記事内ではします。 コードを書…

ボーイスカウトルールをあらゆることに適用する

プログラミングには”ボーイスカウト・ルール”と呼ばれる有名な格言があります。 ボーイスカウト達は「来たときよりも美しく」という原則を大事にし、キャンプした後は過去に他の人が出したであろうゴミも持ち去りキャンプ前よりもキレイにしようという文化が…

1 on 1のテーマは人により大きく異なる

"1 on 1"は色々な会社で行われている人気の制度で、今やノウハウが本にもネットにもたくさん落ちています。 よく言われている1 on 1の原則としては、以下のようなものがあるかと思います。 1 on 1は1 on 1を受ける人のためのもの 1 on 1をする人は話を傾聴す…

新規開発立ち上げ期におけるコードレビューの役割

どんな開発現場でもコードレビューは重要です。今の時代だとGithubのプルリクエストなどをベースとしたコードレビューは、開発の現場ではもはや必須ともいえる制度です。 ただ私はスタートアップでの立ち上げ期を経て、新規開発立ち上げ期においてはコードレ…

コードそのものではなくプルリクエストを成果物として意識する

ソフトウェアエンジニアが直接的に生み出すものはプログラムのコードそのものです。 しかし個人的な経験として成果物をコードそのものではなくプルリクエスト全体だと捉えることでぐっと仕事の質が良くなったので、その話について書いてみます。 ※ 注:以降”…

”フルスタックエンジニア”という単語はもっとポジティブな意味で捉えられていいんじゃないか

個人的な感覚ですが、昔から"フルスタックエンジニア"という単語はネガティブに捉えられることが多い気がしています。 実際、試しに”フルスタック”とGoogle検索してみたところ、サジェストには「いらない」「器用貧乏」「笑」など、嫌われている雰囲気があり…

ポジティブなフィードバックは『できて当然のこと』にもするのが良い

先週ネガティブなフィードバックを活かす方法(以下記事)について書いてみたので、今週はポジティブなフィードバックを活かす方法について書いてみます。 前回記事 ポジティブなフィードバックは『称賛する』と同義です。ポジティブなフィードバックはネガ…

ネガティブなフィードバックを活かす方法

仕事においてフィードバックを受けることの大事さはおそらく誰もが認めるところだと思ってます。様々な組織において行われている1on1や評価面談などの制度も、フィードバックをすることで個人の行動をより良いものにしていくことが目的だったりします(もち…

1人目のエンジニアにかかる魔法とそれが解けるまで

プロダクトや機能をゼロから最初に作るエンジニアは、その作ったものを改善するフェーズにおいてまるで魔法がかかったように凄まじいパフォーマンスを発揮できます。今回はその話について書きます。 10xという名のバフ魔法 プロダクトを立ち上げた凄腕エンジ…

事業内容によって必要なエンジニア組織は異なる

CTOアドベントカレンダー2021の12日目の記事です。 今の時代、様々な組織の情報透明性が上がっています。有名スタートアップが自社のエンジニア組織についてメディアで発信している情報を見たり、流行りの本でGAFA・米国ユニコーン企業のエンジニア組織で採…

ドキュメントのアーキテクト

開発組織においてドキュメントは重要です。開発組織のドキュメントには要件定義書・設計書等の開発資料や、運用作業の手順書、実装ガイドライン、開発体制の説明など、様々な種類のものがあります。 ドキュメントにより用途は異なりますが、以下のようなメリ…

フルリモート勤務のコツ(個人編)

コロナ禍が始まった頃から完全フルリモート勤務になり、かれこれ1年半近く続けています。フルリモートならではの不便さは当然ありつつも、個人的にはすごく好きな働き方です。 1年半続けたことで、フルリモート勤務をする上での自分なりのコツがつかめてきた…

成果と技術的成長のトレードオフが起きるとき

若いころに先輩エンジニアから「若いうちは技術だけを追求し、その技術が生み出す成果物の価値(例:プロダクト価値)は意識しないのもアリ」と言われたことがありました。私は基本的に『技術はツールでしかなく生み出すものの価値こそが大事』という考え方…

自己組織化と独断は両立する

近頃のエンジニア組織では”自己組織化”の概念がよく取り沙汰されています。『個々人がおのおの組織全体のことを考えて自律的に行動することで、結果秩序だった組織になる』という考え方です。 ボトムアップ型組織の考えであり、個々人の意欲や能力を活かす方…

チャットツールの功罪

かれこれ7年近く仕事でSlackを使っていますが、昔に比べてすごく便利になったなと感じています。 私は昔はメールを使っており、一瞬Yammer・Facebook Businessのような社内SNSを使っていた時期があり、その後はずっとSlackを使っています。世の中的なトレン…

ソフトウェアエンジニアにおける”正解を求めてしまう”罠

私はソフトウェアエンジニアの採用活動を仕事柄しているのですが、DDDやクリーンアーキテクチャに興味を持つ人に本当によく会うことが多いように感じます。 私もDDDやクリーンアーキテクチャの本は読んでみたことはあり、それらが提唱する思想自体はすごくい…