雑史

思ったこととかメモとか

プロダクトマネジメントを読んだ

読んだのはこれ

きっかけ

特にこれといったものがあるわけではないが、自分達の作っている製品はどのようにして仕様が決められたり、戦略的に作られるのか、ビジネスからエンジニアリングに落とし込む過程でどのように思考するのかを知りたかったから。

感想とか

とにかく一貫して言われていたのが、アウトプットではなくアウトカムということが強く印象に残っている。
今はソフトウェアエンジニアとして働いている中で、チームとしてアウトカムを意識したり、リリースしたその後のインパクトを考えることは、プロダクトを売って食っている人間としてはそうすべきだよなと思った。
それがなぜ必要なのか、自分たちは何のためにそれをやっているのか、学習を通して不確実性を減らしてアウトカムを最大限にするように意識して開発をするということは目先を考えると思考しにくいけど、常に頭のどこか片隅に置いておきたい。

コロナ禍での転職を振り返る

 転職しました

 

6月末で新卒からお世話になっていたセプテーニグループを退職し7月より新しい会社で働いています

 

 感想とか

 

そもそも今回の転職は、「よし転職しよう」という類のものではなかった。

そもそもグループ内転籍して1年ちょいだったし、技術力つけたいな〜と思っていてその辺のこととかチームとかは満足して好きだったので

 

ただ、偶然LAPRAS上で声かけてもらって、いろいろ考えて受けてみたら内定もらって、熟考した末の転職

 

あとは、コロナ禍での選考体験は個人的には結構良かった

全部オンラインで完結できることは都心がちょっと遠い自分にとってはありがたかったし、時間的制約も緩くなったと思う

マンション全体の回線が根っこから遮断されて、テザリングして面接受けるとかもあったが。

 

 考えたこと

 

  •  機械学習も面白いけど、もっとプロダクト開発をゴリゴリやっていきたい
  • できればもっとScala書きたい
  • 社内ツールじゃなくて外に出ているもので勝負したい

 

 最後に

 

前々から長くまとめるの苦手だったし、機械学習も一旦やめてしまったのでブログの立ち位置を変えて思考のアウトプット、メモにする(元々あまり機械学習のことは書いてなかったが)

2020年雑振り返り

はじめに

2020年も年の瀬なので触った技術、どんなことをしたかを振り返る

目標振り返り

kzk0829.hatenablog.comで目標を書いていたのでここの振り返りから

  • ジムに行く ×
  • プールに行く △
  • レースに出る ×
  • サーフィン上達 ×
  • 機械学習関連を仕事でやりたい ◯
  • Kaggleでメダル獲得できればExpert以上目指す ×
  • AtCoderで水色以上目指す ×
  • とにかく手を動かして実力を証明できるようになりたい ?

上の方はコロナ関連で外出できなくしょうがない。
4月に転籍してMLOpsを生業としているので機械学習関連を仕事でやりたいはOK。
KaggleやAtCoderは結局モチベーションが続かなくて一旦やめたので×。
手を動かしての部分は自分だと評価しにくいが、ちょこちょこいろんなもの作ってた。

触った技術

下二つは副業でちょこっとやった感じ。
4月に転籍してそれまでのPHP/Laravelとはガラッと変わった感じ。Scalaはもっとやりたかったので来年こそは。
DDDは技術という枠に収めていいのかわからなかったが、初めてちゃんとやったので入れた。
後個人的にポジティブだったことは、社内ではあるものの初めて勉強会で発表した。

プライベート

  • lightbend academyのscala professionalをやった
  • 4月に子供が生まれた
  • まとめた時間を取ったり勉強に集中するのが難しくなった
  • 本はまあまあ読んだかな
  • ISUCONに出た
    • 惨敗したのでリベンジする

2021の目標

  • 設計やアーキテクチャについて造詣を深める
    • DDDが一番勉強したい
  • Scalaのプロダクトコードをしっかりと書く
    • Akkaもやらなきゃ
  • AWS関連の勉強をする
  • t_wadaさんの技術選定の審美眼内で言われている変わらないものを自分として理解を深めることは引き続き

アクティビティログ

LAPRASにいい感じのがあったので最後に貼っておく

2020年のアウトプットと参加イベントを振り返ると

今年アウトプットしたものや参加したイベントなどをまとめてみました。

Github

connpass

Blog等

LAPRASポートフォリオはこちらから

オブジェクト指向でなぜ作るのか 9~13章とまとめ

はじめに

kzk0829.hatenablog.com

これの続き
オブジェクト指向そのものを深掘りできる本だと思っていたが、意外と周辺知識の薄めな解説の章があったので残りはサラッとまとめる

第9章 現実世界とソフトウェアのギャップを埋めるモデリング

現実世界の概念や物事をソフトウェア設計に落とし込むモデリングについての章
最近勉強しているDDDでもその重要性は感じており、このモデリングをミスると設計全体の方向性に影響を与えうるし、修正がより難しい領域だと感じている。
そんなモデリングについて、図を使って触りを紹介している章

第10章 擬人化して役割分担させるオブジェクト指向設計

OOPにより、保守性や再利用性を向上させるために、凝縮度結合度を用いて説明している章

  • 凝縮度
    • クラスに定義する機能=部品を一箇所に集めまとまりを強くすること
  • 結合度
    • 部品=クラス間のやり取りを少なくすること

これらを意識することで、保守性や再利用性が高まることを説いている。
また、依存の方向を一方向にすることなどにも触れられていた。

第11章 オブジェクト指向から生まれたアジャイル開発とTDD

ウォーターフォール型開発やその問題点の紹介、それに対してアジャイル宣言の誕生やテストから書いていくTDDなどを言葉の紹介をしていた章
これに関しては他にもっと詳しい資料や書籍があるはずなので割愛。

第12章 オブジェクト指向を使いこなそう

本書の結びの章
新たな知識等はない
印象的だったのは「時代がオブジェクト指向に追いついた」というワードで、元上司の20年選手のエンジニアのかたも「人類にオブジェクト指向は早かった」と言っていたのを思い出した。
半世紀以上前に考案され現代になりやっと定着した定着した技術を本一冊、一朝一夕でものにしようにもできないのが身にしみた。
理解をもっと深めていこうと思った。

おまけ

第13章 関数型言語でなぜ作るのか

関数型言語とその考え方の紹介
現在仕事でScalaに入門しているが、関数型っぽい書き方に慣れないことあるなあと読んでいた。

オブジェクト指向でなぜつくるのか 第7,8章

はじめに

kzk0829.hatenablog.com

これの続き
今回は深い内容ではなかったのでまとめて

第7章 汎用の整理術に化けたオブジェクト指向

オブジェクト指向の考え方は、システム開発における上流工程にも当てはめることができますよ。という章
それは、

という考え方として適用できる。

これらの考え方は、現実世界に適用することができる。

「従業員クラスのAさんインスタンス、Bさんインスタンス」(集合論)やある特定の役目を持つメソッドを呼び出していく仕組み(役割分担)など。

この章はボリュームも軽く、こういうことができますよという紹介だった。

第8章 UMLは形のないソフトウェアを見る道具

UML(Unified Modeling Language)の紹介の章
UMLとは、ソフトウェアの内部構造を図で表現するための書き方のこと。

個人的にUMLは見たことあったものの、言葉は知らなかったし、あまり馴染みはない。

UMLには13種類のダイアグラムがあり、様々な工程、領域に汎用的に対応できるようになっている。

使い方は3つある。

  1. プログラム構造や動作を表現
  2. クラス図
    • 図によって視覚的にクラスの呼び出し関係をみる
  3. シーケンス図
    • プログラムやメソッドの実行順序を表現
  4. コミュニケーション図

  5. 汎用の整理術の成果物を表現

  6. クラス図
    • 現実世界の物事の関係を表現
  7. シーケンス図
    • 役割間のやり取りを時系列で表現
  8. コミュニケーション図

    • 役割間のやり取りを構造を中心に表現
  9. オブジェクト指向を表現

  10. ユースケース
  11. アクティビティ図

上記にあげたのは一例だが、共通していることは、様々な形でシステムの内部を表現しているということ。
実際にUML図を作成したことはないし、見たこともなかったので、このようにまとめるだけで勉強になった。
これはCtoCのSaaSサービスやWebサービスというよりは、デカ目のエンタープライズシステム向けの考え方なのかなと感じた。