Labo288

プログラミングのこと、GISのこと、パソコンのこと、趣味のこと

チーム開発で悩みが尽きなかったので「カイゼン・ジャーニー」を読んだ

はじめに

  • 入社2年が経過した2022年4月からエンジニアリングマネージャーを務めるようになりました。また所属先が受託メインの企業なので、小規模の受託開発のプロジェクトリーダーを並行して務めています(これは以前からやっていたが)。加えて、自社開発で試験的に取り入れたスクラム開発のスクラムマスターを務めるようになりました。
  • つまり3年目からはプレイヤーからマネージャーに役職が大きくシフトしました。個人的にはプレイヤーとしてまだまだ未熟という自覚があるので、技術を深掘りしたい気持ちはあるものの、マネージャーを経験しておくと視野が広がりそうだなとか、やってみたら案外面白いかもという気持ちもあります。

そんなわけで2022年度も残り3分の1ですが、いろいろ悩みが尽きず、やや心が折れたところで(メンタルヘルスではなくモチベーションの話)、こういう時は歴史に学ぶべきと思い、とりあえず定番っぽい「カイゼン・ジャーニー」を読んでみました。感想などをこの記事で述べてみます。

www.amazon.co.jp

思ったこと

  • シナリオがややドラマチックすぎる?けど面白かった。物語調なので、無味乾燥なシナリオだと面白くなくなりそう。
  • いわゆるJTCでこういう立ち回りをしたら怒られそうwもしくは潰れそう。
  • 心が折れる前に、今の居場所でまだやるべき・できることはあるという、自己啓発になって行動し始めた。
  • スクラム開発の具体的なプラクティスが紹介されているが、スクラム開発じゃなくても有益だと思う。
  • 「部署・役職・会社・契約…などの境界を超えて一歩踏み出そう」というのが本書のメッセージ
    • しかしこれは、境界で区切られた各人の領域が、各人により十分にカバーされていることが前提(※1)で、そのうえで境界を越えるチームが強い、のだと思う。
      • 領域の広さが人によって違う場合どうなるだろうか?
      • 明らかに「相手の領域」に落ちているボールは、境界を踏み越えて蹴るべきだろうか?
  • シナリオでは人手不足という設定だが、各人の業務遂行能力(および学習能力)が十分以上であることが前提となっているように思えた(浜須賀くん有能すぎんか、など)。

※1:最低限の責任範囲の定義は当然のようにあって各人がその範囲をカバーしていることがチームの前提であり、本書はそこから、「越境」によりレベルアップするための本だなと思いました。

2021年度の振り返り(エンジニア2年目)

はじめに

(今はもう6月ですが)3月末でエンジニアの2年目が終了したので振り返ります。下記は1年目の振り返り。

kiguchi999.hatenablog.com

総括

 1年目よりも2年目の方が成長を実感出来た。私はQGISとフロントエンドを得意分野としてきた人間だが、この1年はサーバーサイドの技術力が向上した感がある。それを専門とするエンジニアには敵わないまでも、知識として・手札を持っておくことの重要性を理解した。 この点、業務で経験を積めた…のは事実だが、きっかけは個人研究。下手の横好きで触った技術でいきなり本格的な業務に参加…はなかなかリスクが高いしそもそもアサインされないわけだが、今年は幸い、失敗した時のリスクが小さいタスクで使ってみて経験値を貯め、より重要度の高いタスクへ応用…というステップを踏めた(技術選定に裁量があったりタスクの受け方が柔軟だった)。
 その一方最近は、専門技術の深掘り…という意味では伸び悩みというか、既存の手札の応用で解決出来てしまう、という感覚がある。これは技術者として成長した結果である一方、マンネリに陥らないよう常にアンテナを張っておく必要があるな、と思うところ。

2021年度で1年間やったこと

全般

QGIS

GTFS-GO

github.com

運行頻度集計機能や、GTFSデータリポジトリとの連携機能追加。

QGIS本体へのコミット

たった1文字のコミットを糧に生きていく

github.com

その他業務

多数の業務で開発。

  • ラスター重畳計算
  • WebAPI連携
  • Leaflet連携 など

ウェブ開発

フロントエンド開発

  • Vue.jsやReact(Next.js)を利用した開発業務に複数従事。

バックエンド開発

  • Docker/nginx/Express.jsを利用した開発業務に複数従事。

MapLibre GL JS

github.com

github.com

  • その他アウトプット多数

MapLibre GL JSで時系列コントロールを扱う[maplibre-gl-temporal-control] - Qiita

MapLibre GL JSがv2.0.0になりました - Qiita

MapLibre GL JSと地理院標高タイルで3D地形を表示する - Qiita

ジオコーディング・ウェブサイト

  • ジオコーディングサーバーの開発
  • フロントエンドの開発(Vue.js + AWS CDK)

search.mierune.io

WebGL

  • GLSLをある程度使えるようになり、業務にも多数応用。下記はちょっとした技術記事。

luma.glでWebGLに入門する - Qiita

WebGL2(luma.gl)でTransform Feedbackをやってみた - Qiita

WebGLをGISに応用してみる【DEM編】 - Qiita

その他GIS開発

github.com

対外発表

MIERUNE Meetup #1

docs.google.com

地理院地図パートナーネットワーク

https://maps.gsi.go.jp/pn/meeting_partners/data/20211208/7_MIERUNE.pdf

FOSS4G 2021 Japan Online

Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動

DellのゲーミングノートG15(5515)にUbuntu20.04をインストールしたはなし

TL;DR

  • 公式のインストールメディアを使って難なくインストールできる
  • しかし、GPUドライバのインストールとNVIDIA X Server Settingsで設定の変更をしないと、Chromiumの動作が非常に重たくなる
  • NVIDIA X Server SettingsではNVIDIA(Performance Mode)を選択しよう

ちなみにLubuntuはマルチディスプレイが正常に動作しなかったので早々に断念

Ubuntuのインストール

下記のとおり

diagnose-fix.com

インストールするだけで、マルチディスプレイ環境も整うので特に問題ない…と思いきや、Chromiumベースのアプリケーションの動作が非常に重たくなりました。--disable-gpuフラグで起動すると軽快になるので、GPUが悪さしているという予想がつきます。しかし毎回の起動時にこのオプションを与えるのは非常にめんどうですし、VSCodeやSlackなどもChromiumベース(Electron)です、このままでは使い物になりません。

GPUドライバのインストール

下記のとおり

qiita.com

たぶん下記のようになるので、-510をインストールしました

vendor   : NVIDIA Corporation
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-510 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

しかしこれでも解決せず。

NVIDIA X Server Settings

GPUドライバを入れると、NVIDIA X Server Settingsというアプリケーションがインストールされます。起動して下記の設定を行います。

f:id:kiguchi999:20220313135931p:plain
NVIDIA(Performance Mode)を選択

この値、デフォルトはNVIDIA On-Demandになっています。これを変更したらChromiumベースのアプリケーションが正常に動作するようになりました。