ソフトウェア開発」カテゴリーアーカイブ

請負開発とアジャイル開発

Qiitaから定期的に好評記事の一覧がメールされてくるわけですが、パラパラっと見ていたら面白い記事が

ウォーターフォールの反省とアジャイルの成功に必要なもの #SIer – Qiita

わかる。

実際に私自身、前職では自社パッケージの開発を行っていて、現在は準委任や請負両方とも関わっていたりするので、言わんとしていることはよく分かる。
そして、携わっていた準委任で参画しているスクラムの案件がそれなりに終りを迎えつつあって、色々と思うところがあったので多少乱雑ではあるけれど書いてみた。
あくまで個人の感想ではあります。

請負で契約に縛られるのは誰なのか

記事では、「問題の原因は請負開発」とあって、そのインセンティブ構造だとかに対して触れられている。

ベンダー側の立場で利益を案件単位での利益を最大化するのであれば、当初契約締結時の仕様を最低限満たすものを、最小の労力で作り上げる事になる。
作りながら「この機能はこういうケースも対応できたほうがいいのでは?」ということに気づいても、当初見積もりからずれる行為であれば事前の要件として明記されていない限りは基本実施しない。
それは、怠慢とかそういうことではなくて、見積もりの前提が崩れ、その見積もりを下に作られているスケジュールからずれ、納期に影響を与える可能性がある。
言い方は悪いが「余計なものを作っていたら間に合いませんでした」って話になりかねないのだ。

残念なところはユーザー側の立場からも話が出ることはある。
RFPのような形で契約を進めていく場合、そのRFP記載内容からズレたことを行おうとした場合にはユーザー側でも承認プロセスを巻き直す必要がある事が多い。
きっちりかっちりした企業・プロジェクトであればなおのこと、「仕様書にかかれているかどうか」を担当者も判断基準にしている。

このあたり、システムに対して明るくない担当者であるケースも多いのでしょうがないところではある。
ユーザー企業側でシステム全てに詳しい人を割り当てることができるのか?とか考え始めると大変だなぁと思うわけです。

請負におけるベンダー側のインセンティブ

すべての開発者がそうだというような性善説を唱えるわけではないけれど、開発者は基本的に良いものを作りたいと考えていると思う(作れるかは別として)。
お蔵入りするためのものを開発なんてしたくないし、大きいシステムや影響の強いシステムを稼働させるのに臆病になることはあっても、やるからにはいいものを作りたい。

先に書いたように、営利企業である限り利益を生まなければならない以上限界はある。
ただ、最低限請負開発を回していると、要件的に問題がなければそれはいいのだが、ユーザ企業側に不満が残る最低限開発だとリピートされるかが怪しい

請負をする以上、案件を取ってくると言うことが必要になるうえで、顧客満足度を高めて、多少高くてもリピートされることをインセンティブにするという考え方になるのかなぁ、と思う。
サスティナブル的な感じだろうか。

内製か外注かの選択

記事でも書かれている、内製化の流れというのは何となく分かる。

一方で、書かれているようにエンジニアを抱える以上、それに付随した組織改革とエンジニアを(数とスキルの両面で)維持する必要が生じてくる。
ベンダーであれば、様々なプロジェクトを通して色々な経験ができる可能性はあるけれど、ユーザ企業の場合は必ずしもそういう環境を提供できる企業ばかりではないと思っている。
このあたりは、ユーザ企業含めて業界の構造がどうなっていくのかは楽しみだ
自社で内製化のために雇用した人材が維持できず、結局は会社対会社でその部分を担保しようとしているのが今だと思っている。

記事では要件が固まっている場合には内製で行うメリットがないとしているが、これに関しては違和感を感じる。

内製でするべきかどうかは、その作るシステムが自社にとって競争優位を生み出すものかどうかなのではないかな、と。
作り上げる時点で何を作るのかの要件が定まっていたとしても、今後、そのシステムを元に戦っていくのであれば自社で抑えておく必要はあるし、その部分を他社に任せてしまうのは良くない。

「要件が固まっている」が”今後変わることがない”という意味であれば別だけど、変わることのないシステムなんてあるのだろうか?と思ってしまうのはエンジニアサイドの視点なのかもしれない。

一方で、要件が固まっていて特に自社の競争優位に大きな影響を与えないシステムに関しては外注を・・・と思ったけれど、よほどのニッチな領域でない限り、パッケージ導入やAI、ローコードツールによる簡易的なものづくりを内製で・・・ってなっていくんだろう。

数年で取り巻く環境は目まぐるしく変わっていくので、身の振り方は常に考えておかないといけないところですね。

EM Conf JP 2025

いつも楽しみにしているfukabori.fmが更新。
今回は来年二予定されているEMコンフに関しての紹介

122. EMConf JP 2025 w/ dora_e_m | fukabori.fm

ちなみに、11/14現在ではEM Conf JP 2025 のチケット購入は Coming Soon 状態
開催日は2/27ということでまだ結構時間がありますね
平日ということなので仕事を休めれば、行ってみたいところ。

EM。
難しい肩書だと思っています。

プロジェクト、ビジネスのマネジメントではなくエンジニアリングのマネジメントという位置づけ?
多分組織によってどこまでそれが許されるんだろうか?ということとか、そもそもジョブ定義として共通化なんてされていないんだろう。

そもそもの話として、そこまで多い人数のいない組織の場合、そのあたりの区別は曖昧で結局全てをマネジメントしないといけない状態になる認識でいる。
しっかりと役割として分担できるほどの人的にも金銭的にも余裕なんざないのである。

それでも学びは多いはずだし、そういう状態に持っていくことができればいいとは思うので、やさぐれていないで話を聞きに行きたいと思うところ。

スタッフの応募はすでに締め切られてしまっているのであくまで一参加者として。
楽しみであります

すっかり自己研鑽が止まってしまった

忙しいとしか言ってない気がするが、ここのところ忙しい。

忙しい中でもランニングだけは欠かすまいとしているので、必然的に疲れてしまったりなんだりで気が乗らず、自己研鑽として掲げているAWSの勉強がすっかり止まってしまっている。

うーん、SAA資格の有効期限。切れちゃうな。

とはいえ、このままではいけないのでなんとか切り替えなければ、と外部の情報を物色し始めました

Github Universe

GitHub Universe 2024

Githubが主催しているカンファレンスでVirtualであればFreeで参加することができます。
今年はやっぱりAI関連ですかね。

Universe 2024 – Curated Agenda (rainfocus.com)

Githubのカンファレンスは参加したことがありませんでしたが、もしかしたらコードも付いてくるかも?と思うと、テック系としては良い学びになりそうな予感がします。

来週からなので、楽しみです

5-Day Generative AI Intensive

Home (rsvp.withgoogle.com)

Googleが主催しているAI開発向けの5日間のコース。
5日間と言っても、1日あたりは2~3時間を想定しているそうな。

こちらも無料で受講が可能なので、レベル感はちょっとわからないですけれど申し込むだけ申し込んでみようかな?と。

ここのところ怠け気味なので、なんとか奮い立たせてやっていきたいところです

環境構築はいつも人の心を挫く

今月号のSoftware DesignはLLM特集
自分で手を動かしながらLLMを用いたアプリケーションを作ってみよう!ということなんだけど、経験上LLMに行き着くまでに挫折しそうな人が多いと感じた。

いわゆる環境構築だ

今回も紙面に環境構築のサンプルというか参考となるコマンドが載っているが、そもそもこれがなんのOS上で構築するためのコードなのかはどこにも説明されていない。

案の定、手元のWindows環境では動作しなかった。。

現場でも、環境構築の手順に関しては手順書が用意されていることが多いが、基本的にそれ通りに行くことを見たことがあまりない。

環境を構築するということは、必要となるライブラリなどを意識するうえでは大事なんだが、それを導入する、大本の環境を統一することが出来なければその先に進むことができなくなることはザラにある。

解決策の一つは、ベースとなる環境を統一してしまうことであり、やはりDockerなのではないかと思っている。

ローカル環境を汚すこともなく、共通の状態からスタートできるわけなので良いはずなんだがなかなかそういう説明をお目にかかれない。

なんとも非合理だ

もちろん、Docker上ではGUIを用いたIDEを動かすことは出来ないので開発環境としては辛いものがあるのは分かるが、せめて紙面のサンプルであればなんとかならんものかと思った。。

頭で気持ちをくじかれると、すごい徒労感が出てしまうんだよね。

Claude3.5 sonet を使い始めています

GPTもいいのですが、最近はClaudeを使い始めています

Claude

日本語に関して、非常に自然な形での回答が返ってくることもいいのですが、Artifacts機能がなかなか素晴らしい。

簡単なツール作成であれば、それほど労力をかけずに作ることができるかもしれないポテンシャルを持っているように感じます。

ただ、GPTにしてもClaudeにしてもプログラムを書かせてもそれがそのまま動くということはなかなかなく、それなりに分かっている必要が出てしまいます。

Artifacts上で構築させたWebアプリケーションも、そもそもプレビューがエラーとなってしまうことも多々あり、GPTでは作成したコードの実行方法も教えてくれたのですがClaudeは聞かないと答えてくれません。

そして、往々にしてうまくいかないことも。。。
ただ、このあたりはすでにここまでできているのであればあと一歩。
壁を超えてくる日も近そうです。

WindowsとGPTが統合されて、ローカル環境のセットアップを含めて実行してくれるような未来も来るかもしれないと考えると、いよいよ持ってAI全盛期になりそうですね。

一方で、開発者に取って考えてみるとこれが開発の作業になってしまうと、楽ではあるものの開発者冥利に尽きるシーンに出くわすことが少なくなる。

さらに、とりあえずまずはAIに聞いてみると言うのは、スピードで考えれば良いことなのかもしれませんが、頭の中で論理立ててロジックを考えていくという訓練する場を減らすことにつながってしまう。
ローレベルの開発者がスキルアップをするシーンが奪われていくのではないかと要らぬ心配をしてしまいます。

それでも、使うメリットは高いと言わざるを得ないところが難しいですね。
良い付き合いができればいいと思うのですが。

そこはかと漂うIT使いこなしてない感

仕事で、Webアプリケーションのパフォーマンスを改善する必要があり調査しています。
基本的にはChromeのDeveloperToolsでNetworkタブで計測。
複数のLambdaで構築したAPIを呼び出していたりするので、処理時間の長いLambda関数に関してコードを見ながら短縮の余地がないかを探していました。

ただ、これって基本的にパフォーマンスが悪いという原因をバックエンドに求めていることになるんですよね。

私自身がフロントエンドよりもバックエンドの方が理解しているというのもあり、実際にバックエンド側でそれなりの時間がかかっているという予想は立っていたので今回のケースにおいてはそれでも良いのかもしれませんが、手順としてはちゃんと事実を知る必要がある。

では、どうすればいいのか?というと、もう少しDeveloperToolsの機能を使いこなしましょうね、ってことだと思う。

Lighthouse機能とか、しっかり使ったことなかったなぁ

AIにしても普通のToolにしても、特定の機能で頑張っているのではなくて、ちゃんと新しく追加された機能だったり、本来の手順としての使い方だったりということをもう少し勉強するべきなんだろうと改めて思った。

永遠にまだまだだな

久々にBuildに参加してみようかと

毎年のことですが、Microsoftの開発者向けイベント、Buildが月末に開催予定との案内が来ました

Microsoft Events – Microsoft Build Japan

セッション情報も公開されていましたが。。。

PowerPoint プレゼンテーション (microsoft.com)

思ったよりも数が少ない印象でした。

どう考えても今年のメインテーマとしてはAIであると思っているし、OpenAIを要するMicrosoftとしてはCopilotなりAzure AI なりで盛りだくさん!かと思ったら、そもそもセッション数が少なかった。

うーん、こんなモノだったかな?

いずれにしても、少しAzure関連の情報からは離れてしまっていたので、ざっくりと全体を聴きつつ、Copilotも見ていきたいです。

恥ずかしながら、ベータ版で触ったのみで有償化されてから触っていないんですよね。
試しにものづくりしてみたいと思ったときに、やっぱり試してみたいわけで。
お話を聞いてみて、判断していきたいところです。

Qiita Engineer Fest 2024が始まるよ

Qiita Engineer Festa 2024(キータ・エンジニア・フェスタ 2024) – Qiita

というわけで、Qiitaがイベントを行います。

年末に行われるアドベントカレンダー企画に近いのかな?と思ってみてみると。。。

Qiita Engineer Festa 2024 の記事投稿キャンペーンに紐づけて19記事投稿すると、「Qiitaオリジナルグッズ」を必ずプレゼント!38記事投稿すると更に特別な「Qiitaオリジナルグッズセット」を必ずプレゼント!

いや、どんだけ書かせるんだ!

まぁ、記事の文字数とかそういう制限はないみたいなので、極端な話、適当に落ちている話題で記事を書いても達成はできなくはないけれど、そういうことじゃないよねって気もする。

Organization対抗戦は、私が所属している会社では大っぴらにはやっていないので対象外。

残るはスポンサー企業テーマになるわけですが、今のところ5つの企業がスポンサードしているよう。
ちょっと気になるのはCodeAGIというもの。

CodeAGIで実際にコードを自動生成してレビューを投稿しよう! – Qiita

今どきめずらしく、クライアントアプリっぽい。
そして、いたるところにデザイナーではなくエンジニアが作ったっぽい資料感がたまらない。

記事連投とかはちょっと続く気がしないけれど、CodeAGIというものは少し触ってみても面白いかな、と思った。

新卒研修で教えることはなにか

Qiita見ていたら、毎年のことではあるけれど新卒研修に関する記事が

【2024年度】エンジニア向け研修資料まとめ #エンジニア – Qiita

リクルートやサイボウズなど、大手のベンダーはさすがの充実度である。

ただ、これだけの研修を用意できるのはもちろん素晴らしいのだけれど、その研修をこなすことができるだけの下地を持った新卒がいるということが一番素晴らしいとは思っている。

結局のところ、入社前段階で何をやっていたのか。
どこまで研鑽を積んできたのか?ということになるのではないだろうか。

正直言って、文系出身者や大学までプログラミングやってませんでした!みたいな人がこの研修を受けてどこまでついていくことができるのだろうか。
ついていくことができたとした場合、それはそれですごい地頭にだろう。

それでも、本当にこの内容を理解できているのだろうか。。。?
少なくとも講習だけで頭に入るとはとても思えないのだけど、それは所詮私程度の頭ということになるのかもしれない。

結局のところ、息子を見ていても中学・高校時代から情報系の授業が体系として組み込まれている現代において、新人研修の中身自体ももっと若手に作らせないと行けないのではないかとすら思えてくる。

根本的に前提が違うのかもしれない

そう考えると合点がいくわけだが、同時に、自分自身に対して若干寂しさを感じてしまうものですね。

そうは言っても、まだ10年以上は働かなければならないわけで、新卒研修の資料を見ながら、「新卒に教えている内容、わかんないんだけど」という気持ちを抑えながら勉強していくしかないわけです。

頑張らねば

ソフトウェアアーキテクチャに関して

たまたまですが、イベントにいくつか参加しました
ここのところ、登録はすれどもなかなか参加できなかったりしていたのでちょっと久しぶりです

ソフトウェアアーキテクチャメトリクス – Forkwell Library #44

ソフトウェアアーキテクチャメトリクス – Forkwell Library #44 – connpass

https://amzn.to/3IgDAGe

毎度おなじみのForkwellさんによるイベント。今回は「ソフトウェアアーキテクチャメトリクス」という本の訳者さんが登壇。

オライリー本なので、なんとなくタイトルからアーキテクチャに対しての何かしらのメトリクスを取得するための手法だとかがまとまっているのかな?と思っていたのですが、そうではないよう。

10人のアーキテクトが思い思いに話をしている内容であって、訳者の方いわく「エッセイ」だと。
なるほど。

オライリー本は、時々そんな感じのエッセイ本を出しますよね。

言ってしまうと、まだ話をまとめるには時期尚早ということなのかもしれないな、と思った。

NECグループAWS活用の裏側大公開|Well-Architectedフレームワークとコミュニティ

NECグループAWS活用の裏側大公開|Well-Architectedフレームワークとコミュニティ – connpass

こちらはAWSに焦点を当てたもの。
でも、よくよく考えて見るとこちらもアーキテクトの選択で何を重要視するのか?だったり、選択したアーキが正しかったのかを振り返るという観点では通じるものがあるかもしれないな?と思った。

AWSの資格試験では基本的にUdemyを中心に勉強をすることが多いのですが、存在は知っていてもちゃんとWell-Architectedフレームワークを読んだことないな、と思いました。

落ち着いて考えてみると、一度それを頭に読み込んでから資格勉強したほうがいいのでは。。。と今更ながらに思ったわけです。

AWS Well-Architected – 安全で効率的なクラウドアプリケーション (amazon.com)

このあたりの資料はそれなりの頻度で更新されていきます。
そもそものAWSサービス自体が追加されていくので結構たいへんですよね。。。

イベントでは、どうやってこれらのレビューをやっていくのかとかも話されていたので興味深かったです。
一方で、自社でそこまで回していくのは、それなりに規模がないと厳しいような気もしましたが、そのあたりはしっかりと学んでいないものの言い訳なのかも。

うーん、勉強しないとですね