セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

システム開発

Windows Terminalで起動時にUTF-8(chcp 65001)を指定する

メモです。 Windows Terminalが実用的になってきました。以前は日本語の表示が怪しい部分があって導入を見送っていたのですが、最新版を確認したら直っていたみたいなので十分使えると思われます。 Windowsでターミナルを使うに当たり必要なのが、初期ディレ…

リモートワークするCTOとして3年半活動してみた感想

僕は、株式会社チェンジ・ザ・ワールドのCTOとして、山形県酒田市にある本社と自宅のある東京都小平市を行ったり来たりして生活しています。 最近では、中国で発生した新型コロナウイルスが感染を広げていて、日本でも連日のニュースで世間を賑わわせていま…

最も良い見積もり手法は見積もりをしないことだ

qtamaki.hatenablog.com 以前に書いたエントリーですが、もう3年も経っていました。それから状況が変わったかというと、システム業界の状況はあまり変わっていないように見えます。ただ、SIerは増々勢いを失い、自社製品の開発に携わるエンジニアの割合が増…

Oralce JDK の有償化後の今 OpenJDK ベースでベストな選択肢

さて、OracleがJavaの開発キットを有償化することを発表して1年半が経ち、実際に有償バージョンがリリースされて、更にJDK8がサポート対象外となりました。 qtamaki.hatenablog.com これはだいぶ前に書いた記事ですが、その後も状況は刻々と変化していき、…

Oracle JDK 11のリリースと有償化について

さて、以前から有償サポートのみとなったことが話題になっている、Oracle JDK ですが、初のLTS(長期間サポート)となる、JDK 11 がリリースされました。 JDK 11 Release Notes, Important Changes, and Information 有償サポートになったからといって、お金を…

Javaランタイム(JRE)のサポートと互換性について

qtamaki.hatenablog.com 先日、Oracle Javaの今後のサポートについて考察したのですが、1点漏れていた議論がありました。 Javaのランタイムエディション(JRE)のサポートについてです。 結論から言うと、JREは強い後方互換を保ってアップデートされるため、「…

ScalaのFutureに渡す ExecutionContext の挙動がわかりにくいので図解する

Scalaには、非同期実行をサポートするために Future というクラスがあります。 正確にはJavaにも同名の仕組みがあるのですが、それをちょっと便利にした感じのものです。 Futureの仕組みを簡単に言うと、関数を渡すと別のThreadでその関数を実行してくれるも…

テストしようよ

先日、息子と遊んでいると私達が「作品入れ」と呼んでいるファイルを持ってきて、私にこう言った。 「ここのぶぶんにはいる紙がないんだよねー」 そこで私は、部屋に戻ってA4サイズのコピー用紙を持ってきて提案してみた。 「これなら入るんじゃない?」 す…

システム開発時のネーミングついて

※ 筆者の特性上、話題の対象が業務システム開発に偏っていることを予めご承知おき下さい システムのネーミングですが、困りますよね。 長年業務システム開発で、DB設計などに携わった身として、少しだけコツをお話したいと思います。 前提 まず、前提として…

システム開発の見積もりは、覚悟と覚悟のぶつかり合いだ

システム開発の見積もりには、色々な手法があります。 ファンクションポイントとかCOCOMO法とか。 これらはなるべく見積もりの根拠を確かにし、実際の工数とのブレがなくなるようにするために考え出された方法です。 しかし、いくら根拠を以って正確に見積も…

システムの発注者は自分に必要なシステムを自分で知らない

システム開発系のエントリーでちょいちょい言及していますが、自分が欲しいと思うものが、本当に必要だったものとは限らないと言う話です。 もうちょっと、強く言うと、コンピュータによるシステムは、「作ってみて」「改良」しないと、本当に必要なものを知…

ウォーターフォールが成功する可能性

agnozingdays.hatenablog.com すっかり、書くのを忘れていたのですが、ウォーターフォールプロジェクトでも成功することがあります。 それどころか、エンタープライズ系システム開発プロジェクトの成功率は、24~28%ぐらいだったはずなので、100本プロジェク…

日本がウォーターフォールを脱却できないのは予算取りのせい

simplearchitect.hatenablog.com なんか、SIっぽい話題が多いですね。 アジャイルの時にも書きましたが、日本でユーザー企業が、SI案件を発注するまでの間には、「予算取り」という工程が欠かせません。 元記事では、主に開発者サイドにフォーカスしてウォー…

絵に描いたようなSI炎上案件を見たので過去の経験から勝手に解説する

www.tsubakimoto-neko.com 絵に描いたようなSI炎上案件ですね。 僕も長らくシステム開発業界に漬かっていますので、身につまされる思いです。 自分の拙い経験から、行間からあふれる業界の闇を勝手に解説したいと思います。 営業主導で案件が決まる 30%OFFの…

アジャイルは死んだのか?

www.infoq.com 死んだというか、死んでないと思いますけど、よく耳にするのはこんな感じでしょうか。 パターン1 元々向いてない分野に無理やり導入しようとした パターン2 聞きかじった程度の上司が始めてドキュメントを無くしただけで後は何も変わらず状況…

日本のSIerはいつまで親の脛をかじり続ける気なのか

かつての技術大国日本 かつて、日本は技術立国と言われ、機械電気電子産業において、世界に名だたる企業を幾つも輩出し、それこそ日の出の勢いで世界を席巻した。 これらの産業が好調だった頃、日本におけるシステム開発とは、それらの巨大な利益を挙げる企…

「納品」をなくしてもうまくいかない(読書感想文『「納品」をなくせばうまくいく』)

「納品」をなくせばうまくいく ソフトウェア業界の“常識"を変えるビジネスモデル作者: 倉貫義人出版社/メーカー: 日本実業出版社発売日: 2014/06/12メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る たまに発生する読書感想文です。 今回…

試したことのないプログラムは絶対に動かない

今更言うまでもないかもしれませんが、動くことを確認したことのないプログラムやシステムは絶対に動かないと思って間違いありません。 よく、「本番にあげたら動かない」とか言う事象が発生しますが、当たり前です。試してないのですから。 なので、本番環…

夢の構造についての考察

そもそも、夢とは何でしょうか? 夢をかなえるとはどういうことなのでしょうか? そして、どうやったら夢はかなうのでしょうか? 誰もが知っている言葉ですが、いざ厳密に定義しようとすると難しいものです。 ぱっと思い浮かぶのが「サッカー選手になりたい…

「都会脱出型ハッカソンVol.01 SHONAI de HACK in 山形県酒田市(庄内地方)」を終えて

先週末は、ハッカソンのため山形県は酒田市まで行ってきました。 syonai.doorkeeper.jp きっかけはStartup Weekend Yamagata きっかけは、9月に参加したStartup Weekend Yamagata(以下SWY)で、「ふるさと開発合宿」をテーマに、庄内地方で開発合宿をすること…

「第2期 第23回 H本読書会 in 秋葉原」を終えて #readhbon #haskell

第2期第23回H本読書会を開催しました。 第13章「モナドがいっぱい」の最後の部分と第14章「もうちょっとだけモナド」を読みました。 H本読書会とは? すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディ…

都会脱出型ハッカソンというイベントを開催してみることに

日頃、ごみごみした都会でプログラミングをしていると煮詰まってくることが多いですよね? 縁あって、山形県は酒田市の施設を安く借りることが出来そうなので、「都会脱出型ハッカソン」と銘打って、田舎の広々とした所でコードを書くイベントを開催してみる…

純粋な関数がツリーをなすということ

プログラミングにおけるコミュニケーションパスの問題 - セカイノカタチqtamaki.hatenablog.com 先日、この記事で「参照透明性のある関数を組み合わせてプログラミングすると、出来上がったプログラムは、きれいなツリー構造になります」と書いたのですが、…

プログラミングにおけるコミュニケーションパスの問題 (2021年版)

(2021/2/25 内容を見直し、加筆訂正しました) 先日、こちらの記事で組織やプロジェクトの運営におけるコミニュケーションパスの問題について書きました。 qtamaki.hatenablog.com 同じような問題が、プログラミングにおいても言えます*1。 プログラムにおけ…

プログラミング言語の難しさはより遠くに飛ぶための翼である

複雑さについて思うこと。rentwi.textfile.org この記事に触発されました。 というか、丁度この事について考えていてブログを書こうかと思っていたところでした。(^^;マジデ ソフトウェア開発とは、現実世界の複雑さをプログラムコードの難しさに置き換える作…

組織におけるコミュニケーションパスの問題

人が何人か集まってプロジェクトを行う場合、どのような組織を組み、レポートラインをどのようにするかというのは非常に重要な問題です。 常時炎上しているような組織やプロジェクトは、コミュニケーション戦略に問題があったり、そもそも戦略そのものがない…

CURDは死んだのか。と、論理削除

Re: 論理削除はなぜ「筋が悪い」か - Blog by Sadayuki Furuhashi 論理削除の話が盛り上がっているので考えて見ようと思った。 まず、自分の立場では、論理削除賛成で追記型のimmutable DBは懐疑的。 ドキュメントDBとかオブジェクトDBとかはよくわからない…

山の民のウォーターフォール理論

ブックマークにコメントしたらスターがついてるので蒸し返してみる。 ソフトウェア開発における海の民と山の民 - セカイノカタチ ソフトウェア開発における海の民と山の民 - セカイノカタチ ソフトウェア開発における「山の民」とは、SIerと、そこからそびえ…

PDF出力ライブラリlibHaruを使う

PDF出力ライブラリとしてlibharuを使ってみることに。 libharuのgithub その他の選択肢 iTextSharp -> AGPLなので却下 PDFSharp -> 日本語フォントが使えない(調査し、解決しそうだったがC#での開発が却下になってしまったのでお蔵入り) 開発プロダクトがC#…

ソフトウェア開発における海の民と山の民

ソフトウェアを行っている会社は世に数多ありますが、これらの会社はその出自により「海の民」と「山の民」に分けられると思っています。 山の民 山の民は、先祖をたどると恐らくIBMに行き着きます*1。彼らは、スーツを着てプログラムを書くことで知られてお…