タグ

softwareに関するhiromarkのブックマーク (297)

  • "技術的負債"論の道案内 - アーキテクチャの資本コストと情報の非対称性 - Qiita

    はじめに ソフトウェアと組織経営をめぐる問題で避けては通れないのが、「技術的負債」と言う言葉です。一般には、「早さ」を求めて構築されたシステムの構造的な課題が、徐々に蓄積し、債務であるように徐々に開発速度そのものを遅くして行くと言う現象のことを意味しているように捉えられます。 これは、技術組織を持つ経営者や、ソフトウェアエンジニアではない発注者にとっては理解しにくいものです。またソフトウェアエンジニアであっても「古くなってしまったコード」や「わかりにくコード」全般のことを技術的負債と呼び、それをもって何かを説明したかのように考えてしまうことはままあります。 これらに起因して、双方のコミュニケーションが破綻してしまうこともよく見られる景色です。 技術的負債の経済効果は毎年マイナス12兆円 このような構造的な問題をはらむ技術的負債は、老朽化したレガシーなシステムとして、事業の組織改革を遅らせて

    "技術的負債"論の道案内 - アーキテクチャの資本コストと情報の非対称性 - Qiita
  • サポートが終了したソフトウェア一覧が公開、チェックを

    United States Computer Emergency Readiness Team (US-CERT)は2019年10月30日(米国時間)、「MS-ISAC Releases EOS Software Report List|CISA」において、米国多州間情報共有・分析センター(MS-ISAC: Multi-State Information Sharing and Analysis Center)が2019年および2020年にサポートが終了するソフトウェアの一覧を公開したと伝えた。 公開された一覧は次のページからダウンロードできる。 End-of-Support Software Report List 一覧には、アドビシステムズ、アトラシアン、チェック・ポイント・ソフトウェア・テクノロジーズ、シスコシステムズ、IBM、オラクル、マイクロソフト、トレンドマイクロ、ヴイエムウェ

    サポートが終了したソフトウェア一覧が公開、チェックを
  • デンソーがソフト開発、24時間体制へ ニュースイッチ by 日刊工業新聞社

    デンソーは2025年までに全世界のソフトウエア開発人材を、現状比約3割増の1万2000人にする。自動車業界の新たな技術潮流「CASE(コネクテッド、自動運転、シェアリング、電動化)」への対応力を強化し、開発を加速させる。世界各地の拠点を活用し、24時間体制で大規模ソフトウエア開発を行えるようにする。 24日に開幕した「第46回東京モーターショー」の会見で、有馬浩二社長が明らかにした。現在は約9000人がCASEに関わるソフトウエア開発に携わる。今後、インドやベトナムをはじめとした世界中の拠点で人材を拡充する方針だ。 電動化に関わる25年頃までの技術目標も公表した。例えば暖房で電力を多く使う冬期や、バッテリーを冷却しにくい夏場などを想定し、電気自動車(EV)の航続距離を25%、バッテリー寿命を20%延長し、充電時間を3分の1に短縮する。ECU(電子制御ユニット)などから発生する熱を効率的に制

    デンソーがソフト開発、24時間体制へ ニュースイッチ by 日刊工業新聞社
    hiromark
    hiromark 2019/10/28
    管理しきれるのだろうか?ちょっと興味ある。
  • DDDのモデリングとは何なのか、 そしてどうコードに落とすのか

    質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands Read less

    DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
    hiromark
    hiromark 2019/09/01
    理論的には納得。現場で運用するには、という命題やな、、、
  • サーバレスアーキテクチャとは? - プログラマでありたい

    サーバレスアーキテクチャの整理です。少し前は、2-Tier Architecture(クラウドネイティブなアーキテクチャ)と3-Tier Architecture(従来のアーキテクチャ)という対比で論じられることが多かったです。しかし、API Gatewayの登場により、3-Tierな構造でもクラウドネイティブなアーキテクチャにしやすくなりました。ということで、サーバレスアーキテクチャ(ServerLess Architecture)と呼ばれることが多いです。 サーバレスアーキテクチャのパターン それでは、従来型のアーキテクチャ(旧3-Tier)と2-Tierパターン、API Gatewayを利用したサーバレスアーキテクチャをそれぞれ見てみましょう。 従来型のパターン( アプリケーションサーバ・パターン) まずは従来型のアーキテクチャです。間にELBを挟んでAutoScaleにすることは多

    サーバレスアーキテクチャとは? - プログラマでありたい
  • 基本設計を分担してはいけない - 設計者の発言

    プロジェクトメンバーが無駄に多いのが、日型SIの特徴のひとつである。「工数を人数で割れば工期が出る」と考えることが間違いであることは、ブルックスの著書「人月の神話」によって今から40年前に指摘されている。それにもかかわらず、相変わらず多くのプロジェクトで必要以上の人数が投入されている。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 なぜか。業務システムにはアーキテクチャ(意図された構造)が求められる。そして、そこに含まれる膨大な定義要素は、統一感や一貫性を保ち、かつMECEな形で切り出されなければいけない。複数の要員で分担などすれば、それらの課題が一挙に難しくなる。また、DB構成と

    基本設計を分担してはいけない - 設計者の発言
  • 作り直し - hitode909の日記

    ソフトウェアを作ってて、作り直したり、書き直したりするべきかどうかという話をすることがある。 大きな規模だと、ソフトウェアを作り直す、というところから、小さな規模だと、込み入った機能を書き直す、くらいまであるけど、作り直すとうまくいくのは、次の二つのうちどちらかではないか。 最初に作ったときより世の中の技術が発展したとき 昔のコンピュータでは収まらなかったとか、昔は良いライブラリがなかったけど、今はある、というとき。 単に今ありふれた技術で作り直すと、よいものができそう。 最初に作ったときよりはコンピュータのスペックが上がったので、そのつもりで、並列度倍に上げても止まらないし、より速く動かせる、とか。 昔はバッチで計算しないといけなかったけど、今ならリアルタイムに返せる、とか。 昔は依存管理のよいライブラリがなかったけど、今ならこれ入れたら簡単、とか。 最初に作ったときより人間の技術が発展

    作り直し - hitode909の日記
  • トヨタの車のソースコードはスパゲッティコード山盛り? - YAMDAS現更新履歴

    Toyota Unintended Acceleration and the Big Bowl of “Spaghetti” Code | Safety Research & Strategies, Inc. O'Reilly Radar で知った記事だが、この記事自体は2013年、トヨタがオクラホマ州での急加速を巡る訴訟で和解した後に書かれたものである。 この記事で面白いのは、Michael Barr が20ヶ月以上にわたりトヨタ車で使われているソースコードを、Philip Koopman カーネギーメロン大学教授がトヨタエンジニアリングの安全プロセスを精査した話で、両者ともトヨタのソフトウェアがスパゲッティコード山盛りなことを証言している。 トヨタの生産方式はアジャイル方面においてソフトウェア開発手法に多大な影響を与えている。ところでそのトヨタが開発するソフトウェアの品質はどうなんだ

    トヨタの車のソースコードはスパゲッティコード山盛り? - YAMDAS現更新履歴
  • スタートアップや新規事業に限った技術的負債の考え方 | F's Garage

    最近のエンジニアの感覚だと、技術的負債というのを極端に嫌うケースがあるそうですね。 技術的負債とは… 行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引き起こす結果のことを指す新しい比喩である。 wikipedia技術的負債 この言葉は確かにキャッチーだ。プログラムなんて動けばいいでしょという上司に楯突く時に使いやすい武器になりそうだ。 「負債」という言葉はなかなか面白い比喩である。 では少し、負債という言葉について調べてみると、こういうのが見つかる。 負債は借入金や買掛金などの法律上の債務であるとイメージされがちですが、厳密にいったらこれは間違いです。 すなわち負債とは、法律上の債務に限らず、いずれ会社が負担することになるであろう経済的負担で貨幣額で合理的に評価できるものが該当します。 http://financial.mook.to/accounti

    スタートアップや新規事業に限った技術的負債の考え方 | F's Garage
  • Kazuho's Weblog: 「技術的負債」は避けるべき? - 割引率を使って考えてみた

    技術的負債」をコントロールする定量評価手法への期待 からの続きです。 ソフトウェアサービス企業における技術責任者の最も重要な仕事のひとつが、エンジニアリングの効率化です。そのためには、サービスの初期開発コストだけでなく、運用コストを織り込んだ上で正しい技術的判断を行っていく必要があります。 「技術的負債」という言葉は、この運用コスト最適化の重要性を指摘する上で、とてもキャッチーなフレーズだと考えられます。しかし、「技術的負債」を産まないように、あるいは負債を早めに返していこうとすると、開発工数が大きくなってしまうという問題もあります。 初期開発コストと運用コストのバランス注1を、どのようにとっていけば良いのでしょう? 同等の機能を提供する「ソフトA」と「ソフトB」を考えてみます。ソフトAは、初期開発工数が6だが、2年目以降の維持工数が毎年4かかるとします注2。ソフトBは、初期開発工数が1

  • ソフトウェアプロセス技術がロストテクノロジーになっている - きしだのHatena

    最近会った人とよく話すのが、ソフトウェアプロセス技術がロストテクノロジーになってるんではないかということです。 ソフトウェアプロセスというのは、「プロセスがよいソフトウェアをつくる」という前提のもと、どのようなタイミングでどのような成果物を作り、どのような管理をし、どのように検査をしてソフトウェアを作るかという手順です。 そして、プロセス技術というのは、そのようなプロセスを構築し運用し改善する技術です。 このようなソフトウェアプロセス技術は、1995年くらいから2000年くらいにかけて盛り上がり広まりかけたのですが、そのタイミングでWebが広まりはじめ、「Webは進化が速い」「作るものがどんどん変わる」などを合言葉に、「アジャイルプロセスを採用する」という名目でなんら管理されないプロセスが普及しました。その結果、プロセス技術は完全に下火になっているように思います。 もちろん、Webの発展段

    ソフトウェアプロセス技術がロストテクノロジーになっている - きしだのHatena
  • 循環的複雑度を活かしたバグ潜在リスクの軽減 - 現場のためのソフトウェア開発プロセス - たかのり日記

    昨日のエントリーに引き続き、このエントリーは「Software Test & Quality Advent Calendar 2011」における12/19分として書いています。 今日は、少しばかりアカデミックな話。 でも、うまく活用すると、品質改善のための強い武器になることでしょう! 循環的複雑度とは? まずは、今回のタイトルにも書いている「循環的複雑度(Cyclomatic Complexity)」というメトリクスの説明から。 循環的複雑度は、Thomas McCabe 氏が開発したものであり、簡単に言うと、コードの複雑性を数値化したものです。 ソースコードの一部の循環的複雑度は、ソースコード内の線形独立な経路の数である。実際、if文やfor文のような分岐点のないソースコードの場合、その複雑度は 1 であり、そのコードには1つの経路しかない。コードに1つのif文が含まれていれば、コードに

    循環的複雑度を活かしたバグ潜在リスクの軽減 - 現場のためのソフトウェア開発プロセス - たかのり日記
  • 「10倍プログラマ」の神話、Ruby on Railsの生みの親が語った高い生産性のカギとは!? | HRナビ by リクルート

    ずいぶん前のことだが、Webアプリケーション開発フレームワーク「Ruby on Rails」が00年代後半にブームを巻き起こしたとき、強い主張を持つソフトウェアとしてRailsは多くの議論を呼び起こした。その中でも最大のものはプログラマの生産性に関するもの。当時、すでにいくつも存在していたJavaベースのWebアプリケーション開発フレームワークに比べて、Ruby on Railsは10倍の生産性を達成できるという主張だ。 Rubyの生産性はJavaの10倍――。この主張が多くのエンジニアの琴線、もしくは逆鱗に触れた。「さすがに10倍は大げさだ」、「いや、現実に設定ファイルやコードを書く行数が劇的に減るのだから、そのぐらい当然だ」と意見が分かれたのだ。 2005年のリリースから約10年。Railsの生みの親で、今もプロジェクトをリードするデイビッド・ハイネマイヤー・ハンソン氏は当時を振り返り

    「10倍プログラマ」の神話、Ruby on Railsの生みの親が語った高い生産性のカギとは!? | HRナビ by リクルート
  • 今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog

    なんか最近、(比較的)アウトプットしてないな、とふと気づいたんだけど、よく考えたらプロジェクトの進捗のフェーズによってアウトプットの分量が偏るのはいつものことだなー、とも思った。 それらのフェーズを前期、中期、後期、運営期で考えみる。 初期段階 おそらくライブラリの選定段階から始まる。この時期のアウトプットは、いわゆる「やってみた系」の記事が増える。ウェブに出る記事だと、これが大多数をしめる。汎用性が高く、技術的に挑戦的なものが多い。(立場的な話をするとQiitaはそういう記事がたくさん共有されると助かる) 選定が終わった段階で、アーキテクト的な役割の人は、たぶんこうあるべきだ、みたいな思想を形成する。それをクラス図やコード規約や役割に応じたドメイン特化基底クラスとして表現したりする。DDD的なアレならこれをユビキタス言語の構築としてプロジェクトを通してやるべきなんだろう。 使う予定のフレ

    今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog
  • 状況に埋め込まれた学習 - 未来のいつか/hyoshiokの日記

    われわれは学習というのを学校制度の中のかぎられた活動という風にとらえがちである。もちろんそんなことはない。わたしたちは日々の生活のなかで、あるいは仕事の中でなにがしかを常に学んでいる。学び続けている。 単に形式化され言語化された知識を獲得することが学習なのではない。 徒弟制度のような非熟練者が熟練者のもとで作業に参加することによって技術を習得していく方法について焦点を書はあてている。 ソフトウェア開発コミュニティへの参加ということが、オープンソースの発展によって、より開かれた形になり、一つの企業に属さなくても自由にできるようになった。ごく限られた範囲でしか見聞き出来なかったソフトウェア開発のベストプラクティスがオープンソースコミュニティによってインターネットを介して自由に流通している。 その事例を間近で見聞きするにつれ状況に埋め込まれた学習の有効性を確認することができる。 書の訳者あと

    状況に埋め込まれた学習 - 未来のいつか/hyoshiokの日記
  • 開発スピードが遅い?速い?:柴田 芳樹 (Yoshiki Shibata):So-netブログ

    ソフトウェア開発グループあるいはソフトウェア開発組織の開発スピードが遅いとか速いとはか、何を基準に判断するのでしょうか。 人が単純な作業を行わずに、自動化できる部分を徹底的に自動化した場合、残っている部分が当の意味では、その組織での開発スピードです。 たとえば、システム全体のビルド作業を手作業で週に一回行っており、開発メンバーは、単体テストも書かずに、高残業をしながら一週間に多くの機能を実装したと報告する開発を考えてみます。もちろん、他のモジュールとのビルドもしていないし、ビルドするのは翌週の月曜日ということになります。これは、80/90年代によく行われた開発スタイルです。 一方で、Jenkinsを使用しながら継続的インテグレーションを行い、自動実行される単体テスト・システムテストを作成しながら、システム全体の機能のデグレードや副作用が起きていないかを常に検証しながら、開発メンバーがあま

    開発スピードが遅い?速い?:柴田 芳樹 (Yoshiki Shibata):So-netブログ
  • 質問:精神論者にどう向き合えばよい?

    前回の記事で「自分のキャパシティーを超える仕事はしない、と決めれば問題は解決されるわけです」と書いてありました。しかし、そういかない状況があるので悩んでいます。私の職場では「がんばれば何とかなる」という精神論者が大勢います。私が「自分の限界はここまでです」と主張してもなかなか聞き入れてもらえません。前回の質問者ではないのですが、ぜひ、この論点を掘り下げていただきたいです。 回答 ありがたいことに、前回の回答に対してさらなるご質問をいただきました。実際のところ、たかだか800字程度で書けることは限られていますので、こうして一つのテーマについて深堀りできるのはうれしいです。 いきなりですが、筆者は精神論を否定しません。というと、ものすごい勢いで誤解を招きそうというか招くに決まっていますが、要するに筆者は自分に甘いのを思い知っている、自分をわりとダメな人間だと思っている、ということです。ですので

    質問:精神論者にどう向き合えばよい?
  • 「納品をなくせば」の倉貫CEOたちが語る新しいSIへの道 (1/2)

    11月28日に開催されたCybozu Conference 2014では、「納品をなくせば」の倉貫義人氏など新しいSIにチャレンジする4社によるパネルディスカッションが行なわれた。人月単価や情シスの課題、肥大化するSIerなど、問題の質を突き詰める熱い議論が交わされた。 現場もお客さんも幸せにしない「人月単価」という魔物 「私たちが新しいSIに進む理由~クラウド時代に生き残れるSIビジネスとは~」と題されたパネルディスカッションに登壇したのは、納品のない受託開発を進めるソニックガーデンの倉貫義人氏、39万円でのシステム開発を手がけるジョイゾーの四宮靖隆氏、機械学習kintoneを組み合わせたシステムを手がけるTISの久保隆宏氏、ソフトバンクグループのSI子会社であるM-SOLUTIONSの植草学氏の4名だ。 4名は会社は違えど、既存のSIについて一家言持っており、短納期や定額制など新し

    「納品をなくせば」の倉貫CEOたちが語る新しいSIへの道 (1/2)
  • 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita

    はじめに もうすっかり年末なので、これから2015年にかけてアプリケーションアーキテクチャがどのようになっていくのかという個人的な考え/妄想や背景について、「リアクティブ」というキーワードをもとににまとめてみたいと思います。 Google Trendsを見ると"reactive programming"という言葉は2010年前後から、ゆっくりとバズをし始め、現在も上昇を続けています。 また、仕事としては、2010年ごろから大規模なWebサービス開発において、フロントエンド、バックエンド、アルゴリズム改善といった様々な箇所で、リアクティブプログラミングの要素を取り入れながら、アーキテクチャの改善を進めてきました。そのため、こういったアーキテクチャがコード品質の維持や安定性の向上、実際的で複雑な問題の解決にも適応可能であるということを実感として持っています。 近年、そういった要素が様々なツール

    2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
  • ソフトウェア開発時に気をつけてる振る舞い - futoase

    他人と開発する多人数開発(2名以上)のお話。 なんとなく思ってること。 修正してください 仕様が変更になった上での変更であれば、修正ではない。 ので、「変更した理由」と「変更して欲しい意図」を説明する。 その前に一言、「修正」とかチケットで「修正」とつけてはいけない。 その人は「変更前の仕様」を充足した形で実装していたのだから。 バグを出した後の言葉かけ 僕は率直に、見つかってよかったと思うし、そう表現するのだけど、 人によって追い詰める言葉を発してしまう。 追い詰めると、次バグが見つかっても「気が付かなかったフリ」をされてしまう。 そうなると品質が下がる。意味が無い。 話を自己の経験100%で話してしまう 自分が得られた知見は重要なんだけど 働いてきた場所は10も無いだろう。というので 50%ぐらいに抑えて、後は他社の事例とか、 なんか優れたようなドキュメントとか開発の歴史事例とか それ

    ソフトウェア開発時に気をつけてる振る舞い - futoase