タグ

ソフトウェア開発に関するs_hiiragiのブックマーク (19)

  • ソフトウェアの内部品質に生じる様々な問題は組織設計にその原因があることも多い / Internal Quality Issues Caused by Organizational Design

    2023-11-21 技術的負債に向き合う Online Conference https://findy.connpass.com/event/297813/

    ソフトウェアの内部品質に生じる様々な問題は組織設計にその原因があることも多い / Internal Quality Issues Caused by Organizational Design
  • ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か | Social Change!

    「プログラミング経験のない人がソフトウェアの設計をすること」の是非について、どう考えますか? もしかしたら、このブログの読者であれば、プログラミングが出来ないのにソフトウェア設計をするなんてありえない!という意見の方が多いかもしれません。私もそういう意見ではあったのですが、色々な人と話をするにつけ、どこか違和感を感じていました。 その違和感の正体を探るべく、ソフトウェア設計とプログラミングについて考えてみました。そこでわかったことは「ソフトウェア設計」について、人それぞれに捉え方が違うために、話が通じないことがあることから産まれた違和感だったということです。 この記事では、私の考える「ソフトウェア設計とは何か」について書きました。 ソフトウェア開発はすべてが「設計」である モノづくりにおいて、大きく工程を2つに分けるとしたら「設計」と「製造」に分けることが出来ます。何をどう作るかを決めるこ

    ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か | Social Change!
    s_hiiragi
    s_hiiragi 2023/10/16
    “むしろ、実際に動かすことが出来ない分、うまく作れないでしょう。”
  • 機能は追加すればいいというものではない

    みなさん、新機能は好きですか。ソフトウェアへの機能追加は、ユーザ目線で単純に考えると「できることが増えていくのでよい」という響きを帯びています。しかし実際は、長く使われるソフトウェアであればあるほど、新機能を追加すべきかどうかはものすごく気を使って決めるものであって、やればいいというものではないのです。この記事の目的は、新機能の追加には細心の注意が必要だとわかってもらうことです。おもな対象読者はソフトウェアを長期間メンテしたことがないかたがたです。 みなさんが使っているOSSに新機能を追加するPRを送った場合を考えてみましょう。ここで重要なのは、PRが送られてきたメンテナやコミッタといわれるコア開発者たちの立場になって考えることです。彼らの役割は、自分たちを含むユーザがそのソフトウェアを使い続けられるようにメンテし続けることです。このメンテのコストに注目すると、機能追加は基的にコストを上

    機能は追加すればいいというものではない
  • 技術的負債は開発者体験を悪化させる / Technical Debt and Developer Experience

    2022-12-21 技術的負債の返済から改善する開発者体験 - Techmee vol.5 https://timeedev.connpass.com/event/268296/ 動画 https://youtu.be/tQ3BGgnvMwQ

    技術的負債は開発者体験を悪化させる / Technical Debt and Developer Experience
  • 糞コードは直すな。 - Qiita

    とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話 透明性高め料金値下げを」という記事もあるように世の中の携帯電話の料金プランはかなり複雑です。例えば、auだと「auでんき」といった電気料金とパックされた電話料金プランがあります。また、「auスマートバリュー」といったプランもあり、家のインターネット回線をa

    糞コードは直すな。 - Qiita
  • 日本語でプログラミングしてはいけない理由 - プログラマーの脳みそ

    詳しすぎる詳細設計書 - SiroKuro Page とか 詳細設計書に何を書くべきか? - Sacrificed & Exploited 関連。 ソースコードと1対1で対応するような仕様書を書いてはならない理由。 日語は読み上げれるかもしれないが内容を理解できるとは限らない 日人なら日語で書かれた相対性理論の教科書を読み上げることはできる。しかし相対性理論を理解できるというわけではない。 日語は論理演算を表現するのに向いていない OR と XOR の区別がつかなかったり、括弧による演算順番の指定がやたら面倒くさくて見通しの悪いものになったり。 日語は例外処理を記述するのに向いていない 法律の例外事項とかの読みにくいことと来たら。 日語はシンタックスハイライトされない 「を」とか「は」とかカラフルになっても嬉しくないけど。 日語はコンパイラによる静的チェックができない Wor

    日本語でプログラミングしてはいけない理由 - プログラマーの脳みそ
  • Facebookのバグ自動修正ツール "SapFix" とは何ぞや? - bonotakeの日記

    前回の記事↓で国内ソフトウェア工学事情を勢いに任せて書いたら思いのほか炎じょ……バズってしまい、しかも身内のソフトウェア工学の先生方に火をつけまくってしまいまして、いやはや。関係者の皆様すみませんでした*1。 フォローの記事も書こうと思ってたんですが、少々タイミングを逸してしまった感。でも少し誤解を与えたところもあるんで、また時間ができれば書こうかと思います。 bonotake.hatenablog.com しかし、それから一週間くらい経ちまして、今度はソフトウェア工学に関わる人間としてはなかなか嬉しいニュースが。 それで、つい以下のようなツイートをしたところ、これも軽く話題になってるようで、今もまだ通知が止まらない感じです。 automatic repair、ついに来たか これはガチで近年のソフトウェア工学の成果 Facebook、バグを自動で修正する新ツール「SapFix」開発 htt

    Facebookのバグ自動修正ツール "SapFix" とは何ぞや? - bonotakeの日記
  • 朝会(デイリー・スクラム、スタンドアップ・ミーティング):An Agile Way:オルタナティブ・ブログ

    アジャイル開発では、チームの状況を共有するミーティングを毎朝行う。これを、デイリー・スクラム、と呼ぶ。短時間で立ったまま行うことを習慣化することが多く、スタンドアップ・ミーティング、と呼ぶこともある。(※前者はスクラム、後者はXPからの用語) チームは、現在のプロジェクトの状況を壁を使って見える化し、チームで共有する。現在の状況を示すタスクボードや、かんばん、バーンダウンチャート(進捗を示すグラフ)、そのほかの貼り物をする。このような場所で行うと、朝会の伝達効率がいい。 各自が短く次のこと(3つ)を報告する。 昨日やったこと 今日やること 障害となっていること アジャイル開発では、コードを継続的にインテグレーション(結合)して常にテストが通る状態に保つ。同様に、毎朝、チーム自身もインテグレーションし、みんなの頭の中と行動を結合し、最新の動ける状態に保つ。 日では、朝会、と言う言葉がよく使

    朝会(デイリー・スクラム、スタンドアップ・ミーティング):An Agile Way:オルタナティブ・ブログ
  • アジャイルはマイクロマネジメント

    垂直スケーラビリティと効果的なテストによる金融取引システムのパフォーマンスと効率の最大化 Peter Lawrey氏はJavaチャンピオンであり、Chronicle SoftwareのCEOとして、開発者を鼓舞してソリューションのクラフトマンシップを高めることに情熱を注いでいる。経験豊富なソフトウェアエンジニアとして、Lawrey氏はソフトウェア開発プロセスにおけるシンプルさ、パフォーマンス、創造性、革新性を奨励することに努めている。

    アジャイルはマイクロマネジメント
  • SIerがExcel→Javaのコード自動生成をPGに押し付けるのは善か悪か? - 達人プログラマーを目指して

    以前Java EEや.NETCOBOLやVB6よりも当に生産性が高いか? - 達人プログラマーを目指してにて 何でもかんでもとにかく自動生成させたがる。特にExcelなどの表から大量のクラスを自動生成させるなど。たいていそのようにして生成されたクラスはゴミで保守も大変なものになりがちです。 ということを書いたことに対して、会社の忘年会で上司や同僚の間で議論が盛り上がって興味深かったので、ここで自分の考えを再度整理させていただきたいと思います。(忘年会で1次会、2次会の間ずっとこういった話題で話が盛り上がるというのはかなり特殊な部署なのかなとは思います。「SIerのやり方はXXだ」一口に言っても、それは全体的な一般傾向を表しているのであって、実際はさまざまな人々がいることを忘れてはなりません。あくまでもそういう意味で捉えてください。) それで、私の周りにはプログラミング好き、技術好きが多

    SIerがExcel→Javaのコード自動生成をPGに押し付けるのは善か悪か? - 達人プログラマーを目指して
  • PMに技術力は不要?プロジェクトを炎上させる3つの原因 - paiza開発日誌

    Photo by crudmucosa こんにちは。倉内です。 前職ではSIerでSEをしており、炎上プロジェクトにもたびたび遭遇しました。 担当したプロジェクトの規模はさまざまでしたが、途中炎上せず成功を収めたプロジェクトは残念ながらほとんどありません。 一体なぜ炎上プロジェクトは繰り返し生まれてしまうのでしょうか?私がPMを務め大赤字&納期遅延を引き起こしてしまった炎上プロジェクトを振り返りながら考えてみたいと思います。 目次 私の簡単な経歴 炎上したプロジェクトの概要 開発工程で問題発生 表面的な原因と当の原因 開発の遅れは開発チームに原因がある!? 当の原因はPMの能力不足 1. 技術力不足による見積もりと実態とのギャップ 2. 顧客コントロール不足による品質悪化原因の作り込み 3. 信頼関係の構築失敗によるコミュニケーション不全 失敗を繰り返さないための解決策 まずはプログラ

    PMに技術力は不要?プロジェクトを炎上させる3つの原因 - paiza開発日誌
  • ツールに使われる人々 - すずきぃ Diary

    開発工数の短縮を目指して、新規ツール/手法を導入する。 そういって始まった開発において、どのような問題が起きたか。 エバンジェリストの働き方 新規ツールを導入する前には必ず、評価期間が設けられる。 また、3~5年という経験と実績もあるはずだった。。。 頼らない/受け身なサポート 開発プロジェクト側は今回初めての人が多数。 プロジェクト側で、評価(トライアル)を行いベンダーと共に行ってきた。 しかし、評価メンバーだけで開発するわけではない。 評価メンバーはごく一部... 全体メンバーの1割かもしれない。 そうした中で エバンジェリストなるサポートにアドバイスをもらっているか? この答えは「No」あるいは後述するサポートの問題かもしれない。 マネージャーがどうあるべきかをわかっていない開発が始まってしました。 「分からないことが分からない」っといった名言がうまれる。 さて、「分からないことが分

    ツールに使われる人々 - すずきぃ Diary
  • スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita

    あまりにバズってしまったので、前書きを追加 ここまでバズってしまって正直すまんかった。 この記事はもともと愚痴記事をマイルドにして投稿しただけなので「テストを勧める」とか「テストを信奉する」とかそこまで強い意図は特にありません。(私がテスト好きなのは否定しません) 「テスト書こう」に対して「そんなコストはない」と言いながら、いろいろ問題が生じる現状を愚痴りたかっただけです。愚痴るだけだと生産性がないから、なんでこんなに認識が違うんだろうと原因を考えた結果、テストを書くことに対する技術で実際にコストが大きく異なるなと気づいて書いた次第です。 この記事の対象は「テストを書く技術がなく、テストを書く気がない」組織に所属する人です。 アジャイル開発において「テストコードは当然」なのか?という記事で(私の記事をきっかけとして)テストコードの「徹底」とか「カバレッジ100%」とかを批判し、トレードオフ

    スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita
  • 闇のDevOps DevOpsと業績評価 – ところてん – Medium

    ここから、DevとOpsが協力すればより効率的になる=DevOps、という言葉が生まれました。 当時は大企業においてはDevとOpsが分かれていることが当たり前だったのです。そして、大企業における当たり前が、当たり前ではないことに気付き始め、DevOpsを実現するためのツールができ始めたころでもあります。 ではなぜ、大企業ではDevとOpsが分かれているのが当たり前だったのでしょうか? ハードウェアの時代その昔、産業の主役はハードウェアでした。 そのため、多くの企業はハードウェアを作ることに対して最適化が行われました。 ハードウェアには研究開発、製造、運用サポートといった大きな区分けが存在します。そして、それぞれの仕事において要求する人材レベルは異なります。 加えて、大量生産された製品の運用サポート(設置作業員、サポートセンタ)には、大量の人員が必要になってきます。 したがって、組織を研究

    闇のDevOps DevOpsと業績評価 – ところてん – Medium
  • クソコードが生み出す余計な「将来的な費用」について、金額面で考えてみた - SE(たぶん)の雑感記

    最近、クソコードを見るのが楽しくなっています。 クソコード、格好良く言い換えれば技術的負債とも言えますが、これがどういう余計な費用を生み出していくか、思ったことを書いてみます。 なぜ「利益」ではなく「費用」なのか クソコードが費用となるなら、超美麗なコードは利益を生み出すのか? という疑問はあると思います。 これは先に説明が必要ですね。 まず、どれほど綺麗に書かれたソースでも、「それ自体では収益を生み出さない」です。 システムが利益(これは収益の増加、費用の削減両方を含む)を生み出すかどうかは、システムのコンセプトや営業活動、利用促進等に依るところが大きいです。 よって、システムが仕様通りに作られている限り、「プログラム内部がクソコードかどうか」は、一応関係ありません。 クソコードでもいいんじゃね?という状況 いきなり例外(笑) 絶対に自分しか使わないソース 好きなだけ汚してください(笑)

    クソコードが生み出す余計な「将来的な費用」について、金額面で考えてみた - SE(たぶん)の雑感記
  • クレア法律事務所

    当社で使用するためのソフトウェアの開発を外部のソフトウェア会社に委託しようとしたところ,受託会社から再委託を許可してほしいと言われました。再委託を許可した場合どのようなリスクがあるのでしょうか。 再委託のリスクとして,次の2つが考えられます。 情報漏洩が生じやすくなるというリスク 成果物の品質が担保されないリスク 解説 1 情報漏洩について 再委託が行われると,ソフトウェア開発のために受託会社に提供した貴社の秘密情報を,再受託会社も取り扱うことになります。再受託会社にまで秘密情報の重要性に関する認識が行き届かないと,再受託会社から秘密情報が漏洩するおそれがあります。そこで,以下のような対策を講じるべきでしょう。 委託会社・受託会社間の秘密保持契約で,再委託契約の際に秘密保持契約を締結することを義務付ける。 再受託会社に提供する秘密情報をできる限り限定し、開示するときは秘密情報であることを明

    クレア法律事務所
  • アラン・ケイ - 「ソフトウェア工学」は矛盾語法か? [邦訳]

    アラン・ケイ Is “Software Engineering” an Oxymoron? By Alan Kay (訳注: 以下の文章は、http://d.hatena.ne.jp/sumim/20080806/p1 に紹介されていたアラン・ケイの文章 -- Is “Software Engineering” an Oxymoron? -- を訳したものです。原文もsumim さんのサイトからダウンロードしました。最初に書かれたのは 1999年から2000年ごろと少し古いので注意してください。日語で矛盾語法(oxymoron)とは聞き慣れない言葉ですが、ジーニアス英和大辞典によると an open secret (公然の秘密) や、living death (生き地獄) のような矛盾する二つの単語を組み合わせた熟語の事を言うらしいです。) 真のソフトウェア工学はまだ未来のものだ。一年と

  • ピープルウェアを読んだ - はこべにっき ♨

    この前id:hitode909くんからピープルウェアを貰ったので読んだ。非常に面白くて、興味深い話が多かった。 ピープルウエア 第3版 作者: トム・デマルコ,ティモシー・リスター,松原友夫,山浦恒央出版社/メーカー: 日経BP社発売日: 2013/12/18メディア: 単行(ソフトカバー)この商品を含むブログ (6件) を見る このは、作者のトム・デマルコさんとティモシー・リスターさんが10年に及んだ調査と、自身のソフトウェア開発の経験をもとに、ソフトウェア開発における人に関する問題をたくさんのコラムを通じて教えてくれる。冒頭には以下のようにある。 実際のところ、ソフトウェア開発上の問題の多くは、技術的というより社会学的なものである。 いろんなレイヤにおける人の問題についてそれぞれ章がわかれていて、個人からオフィスやチーム、さらには会社組織のはなしへと続く。結構マネージャー視点ぽいコ

    ピープルウェアを読んだ - はこべにっき ♨
  • IPA曰く「ソフトウェア開発の生産性は年々低下傾向にある」 | スラド デベロッパー

    ストーリー by hylom 2018年03月15日 16時35分 生産性を高めるために冗長な記述が求められる言語とフレームワークを導入すべきか 部門より 独立行政法人情報処理推進機構ソフトウェア高信頼化センター (IPA/SEC) は3月6日、近年のソフトウェア開発の傾向を分析した「ソフトウェア開発データが語るメッセージ2017」という資料を公開し、ソフトウェア開発の生産性は年々低下傾向にあるとの警鐘を発した(プレスリリース)。 この資料は2018年のソフトウェア開発データ白書用に収集したデータを元に作成されたもの。IPA/SECでは、新規開発プロジェクト全体におけるソースコード行数の生産性が年々低下傾向にあることに着目し、ここからソフトウェア開発の生産性が低下していると主張している。 データのさらなる分析の結果、この要因として「品質要求レベルが上昇している」「要員のスキルに低下傾向がみ

  • 1