タグ

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

  • 「システム設計の謎を解く」の感想 - 勘と経験と読経

    書籍モニターキャンペーンに当選してプレゼントいただいた書籍「システム設計の謎を解く 強いSEになるための機能設計と入出力設計の極意」を読了したのでその感想など。自分にとっては恐ろしいほどに有用なだった。ただひたすらにソフトウェア開発の基設計について考える。 以前に書いた記事はこちら 「システム設計の謎を解く」を読みながら設計について考える - 勘と経験と読経 アジャイルフリーでテクノロジーフリーな基設計の 書は一言で言うとそんな感じ。 要件定義の領域は扱っていない(ただし、基設計の前にやるべき事は整理されている) アプリの基設計が中心でアーキテクチャ設計は軽く触れる程度 詳細設計についても範囲外 オブジェクト指向設計については軽く触れる程度 アジャイル開発も触れる程度 この割切り(?)は顧客の立場に立って考えるととても実践的だと思う。 顧客の立場からすると アーキテクチャの

  • The Twelve-Factor App (日本語訳)

    はじめに 現代では、ソフトウェアは一般にサービスとして提供され、Webアプリケーション や Software as a Service と呼ばれる。Twelve-Factor Appは、次のようなSoftware as a Serviceを作り上げるための方法論である。 セットアップ自動化のために 宣言的な フォーマットを使い、プロジェクトに新しく加わった開発者が要する時間とコストを最小化する。 下層のOSへの 依存関係を明確化 し、実行環境間での 移植性を最大化 する。 モダンな クラウドプラットフォーム 上への デプロイ に適しており、サーバー管理やシステム管理を不要なものにする。 開発環境と番環境の 差異を最小限 にし、アジリティを最大化する 継続的デプロイ を可能にする。 ツール、アーキテクチャ、開発プラクティスを大幅に変更することなく スケールアップ できる。 Twelve-F

  • GitHub時代の開発委託とは? デブサミでQA@ITの事例の話をします - QA@IT公式ブログ

    2013年2月14日と15日の2日間にわたって東京・目黒で開催されるDevelopers Summit 2013(デブサミ2013)の1セッションで、QA@ITの委託開発の話をさせて頂くことになりました。 ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例(仮) 私はこれまでいつも、デブサミは取材記者という立場で見て来ました。記者として取材して、例えば以下の様な記事を書いて来ました。聴衆に混じって講演を聞く側だった私が、まさか話す側に回ることになるとはと、今からドキドキしています。 デベロッパーズ・サミット2008:すばらしいソフトを作るには、カリスマが講演 未来の言語は「APL」? Rubyのまつもと氏が講演 IIJRuby対応PaaS「MOGOK」は、どんなサービスか? さて、デブサミは開発者のイベントですが、私は委託側、つまり受託開発における「お客の声」ということでお話

  • ユーザーのつぶやき(要望)はなぜ1時間で本番リリースできたのか - give IT a try

    はじめに 昨日の朝、Twitter上でこんなやりとりがありました。 youRoomをメモ代わりとして使うこともあるんだけど、書いた月日は分かっても「年」までは表示されていないので、ちょっと困った #youRoom— yoh nakamura (@yohhatu) October 31, 2012 困ってないで@kuranukiさんに要望を伝えれば… RT @yohhatu: youRoomをメモ代わりとして使うこともあるんだけど、書いた月日は分かっても「年」までは表示されていないので、ちょっと困った #youRoom— Ryutaro YOSHIBA (@ryuzee) October 31, 2012 やりましょう。 RT @ryuzee: 困ってないで@kuranukiさんに要望を伝えれば… RT @yohhatu: youRoomをメモ代わりとして使うこともあるんだけど、書いた月日は

  • 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編)

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編) 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡山五郎氏の講演「自動改札機ソフトウェアの品質向上の取り組み 厳密な仕様、もらさないテストを目指して」。この記事では、そのダイジェストを紹介しています。 記事は、前編、中編、後編の3部構成です。お読みのページは後編です。 大規模なテストをどうやって実行しているか 続いて、大規模なテストについて。 1000万件のテストパターンを作っても、それぞれのテスト結果の正解を人手で作っていたら追いつきません。なので、別々に運賃計算ソフトウェアを作って、その答えを突き合わせてチェックしよう、という話です。 例

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編)
  • 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(中編) - Publickey

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(中編) 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡山五郎氏の講演「自動改札機ソフトウェアの品質向上の取り組み 厳密な仕様、もらさないテストを目指して」。この記事では、そのダイジェストを紹介しています。 記事は、前編、中編、後編の3部構成です。いまお読みのページは中編です。 自動改札機の制御は1000件くらいのテスト さて、次は間違えない自動改札機の話です。ここからソフトウェアの話になります。 1つは運賃計算。この切符はこの駅で降りられるのか、というもの。そしてもう1つは自動改札の制御。ランプを光らせるとか、切符を回収するとかです。 まずはその

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(中編) - Publickey
  • 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) ふだん何気なく使っている鉄道。改札を降りるときにICカードを自動改札にかざすと、「ピッ」という音と共に一瞬のうちに運賃を計算してくれます。けれど、複数の路線を乗り継いだり、途中で定期券区間が挟まっていたりと、想像しただけでもそこには膨大な組み合わせがあります。それでも運賃計算プログラムはわずか一瞬で正しい運賃計算が求められ、バグがあったら社会的な一大事にもつながりかねません。 爆発的な計算結果の組み合わせがあるはずの運賃計算プログラムは、どうやってデバッグされ、品質を維持しているのでしょうか? 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)
  • ソフトウェアエンジニアリングのビジネス ー スループット会計と制約の理論

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ソフトウェアエンジニアリングのビジネス ー スループット会計と制約の理論
  • 「ソフトウェア開発プロジェクトをとりまく6つの誤解」は真実でもある - arclamp

    「ソフトウェア開発プロジェクトをとりまく6つの誤解〜プログラミングを経験しないとわからないこと」に釣られてみます。 6つの誤解は次の通り。 既にあるソフトウェアを流用した方が速く作れる ソフトウェアはハードと違って後から容易に直せる 誰が作っても中身は同じ品質になる 共通部品から先に作ることが出来る 人を増やせば一度に沢山の機能が作れる 正確な見積もりを出すことが出来る 記事の前提は"お客さんはITにそれなりに詳しい(けどプログラミングはしたことがない)情報システム部門の人"ということだと思います。 この6つは誤解しやすいし、僕もお客さんと会話する内容です。でもね、お客さんがそう感じていることも事実です。なるべく安く早く、そして変更に強いシステムを作りたいと願うことは当然のことです(もちろん予算どおりに)。 ソフトウェア開発に職人的(あるいは芸術的)要素があることは間違いありませんが、それ

    「ソフトウェア開発プロジェクトをとりまく6つの誤解」は真実でもある - arclamp
  • 日本型ソフトウェアファクトリーこそ真の敵 - 勘と経験と読経

    最近ネットで話題になったスライド「ウォーターフォールの歴史」を見ながら、むしろ皆の仮想敵はウォーターフォールではなく、日型ソフトウェアファクトリーなのではないかと考えた次第。 最近アジャイル界隈でよく聞く話 「自分の現場がウォーターフォールで全然ダメで それをアジャイルなら変えられないかと思って」 いったい誰と戦っているんだ・・・・・・ History of WaterFall - Speaker Deck 真の敵はこいつだ! ソフトウェアファクトリ software factory / ソフトウェア工場 / ソフトウェア生産工場 組織的ソフトウェア開発アプローチの1つで、ソフトウェア開発に関する手順、手法、ツールを標準化してノウハウや知識、成果物の蓄積と再利用を促進し、厳格な工程管理・品質管理を適用することで、ソフトウェア開発の生産性と品質を向上することを目指すコンセプトのこと。また、

    日本型ソフトウェアファクトリーこそ真の敵 - 勘と経験と読経
  • ウェブの「受託開発」が面白くないという8つの誤解 - Zerobase Journal

    ぼく自身は多くのベンチャー企業とかよりよっぽど面白い仕事を「受託開発」でやってきているので(あ、もちろん「面白い」というのは主観的な問題だとお断りしておきますが)、ウェブ業界にはびこる「受託開発はダサい」という思想に強い反発を持ってきました。今日はそいつらをバッサリ斬ることにします。 ぼく自身は多くのダメなベンチャー企業とかよりよっぽど面白い仕事を「受託開発」でやってきているので(あ、もちろん「面白い」というのは主観的な問題だとお断りしておきますが)、ウェブ業界にはびこる「受託開発はダサい」という思想に強い反発を持ってきました。 今日はそいつらをバッサリ斬ることにします。 これまでに見聞きしてきた「受託開発が面白くない理由」を一つずつ取り上げて検証します。 × 受託開発なんて所詮「自分の事業」じゃないから自社事業がやりたい。 ○ 「受託開発」でも「自分の事業」としてコミットすることができる

  • 受託開発脳から自社開発脳へ切り替えの7つの壁

    velc: これ、思ったより大変でした。 自分含め、うちにいるメンバー全員、 これまでの経歴では受託開発をメインにやっていたため、 自社サービス開発の経験はかなり少なかったです。 でも、ヴェルクでは、受託開発をしつつ、 時間を作って色々と作っていこう、というスタンスのため、 起業直後から色々と企画を考えていました。 でも、受託開発脳から自社開発脳への切り替えは思った以上に苦労しました。 要件定義等でお客さんと一緒に要件を考えたりしますが、 最終的に「やりたい事」を持っているのはお客さんになります。 要件定義の前の企画やグランドデザインと言った分野は お客さんの戦略に沿ったものになります。 だから、最終的には、誰かが答えを持っている事が殆どです。 そのため、ゼロからそれを考える事があまりないんですよね。 いざ、ゼロから自分たちで企画を考えようと思った時、 いろいろと壁がありました。 1.

    受託開発脳から自社開発脳へ切り替えの7つの壁
  • 「テスト自動化ツールを導入済みは8.5%、85%以上が検討していないか必要を感じない」 - カレーなる辛口Javaな加齢日記

    注:テストリストは加筆修正した上で,改めて独立した項目に作り直した. → http://d.hatena.ne.jp/JavaBlack/20150926/p1 http://www.publickey1.jp/blog/12/8585.html http://www.keyman.or.jp/at/dev/debug/30004610/ 数値の正確さはともかく,だいたいそんなもんでしょう. 「スキルがないからPHP使ってます」「Javaは使ってるけどオブジェクト指向って何ですか?」みたいな現場だと,テストするスキルも人手も足りない. そもそもテストを知らない.テスト=手動テストだと思っている. デバッグといえばデバッガでするものだと思っている. 導入するメリットが理解できない. テストをする人に,プログラミングのスキルや経験がない.ひどい場合には素質が無い.*1 導入するスキルがない.

    「テスト自動化ツールを導入済みは8.5%、85%以上が検討していないか必要を感じない」 - カレーなる辛口Javaな加齢日記
  • ソフトウェア開発プロジェクトを蝕む10の典型的な過ち

    プロジェクト管理は決して精密な科学ではないが、これにソフトウェア開発が持つ予測が難しいという性質と組み合わせられると、大きな悲劇のレシピが生まれる。わたしは、ソフトウェア開発プロジェクトに取り組んでいるプロジェクトマネージャーがよく犯す過ちを数多く見てきた。それらの過ちの一部はソフトウェア開発に限ったことではないが、この文脈では特に頻繁に起こり、ダメージも大きい。 1.「人数を増やせばよい」という誤解 Fred Brooks氏は同氏の有名な言葉の中で、よくあるプロジェクト管理の間違いについて「ある女性が9カ月に1人子どもを産めるからといって、9人の女性がいれば1カ月に1人の子どもを産めるわけではない」と表現している。そして、この間違いは今でも頻繁に見られる。ある問題に多くの人間を割り当てれば、その問題は早く解決するという考え方だ。残念ながら、これは正しくない。 プロジェクトに人を1人投入す

    ソフトウェア開発プロジェクトを蝕む10の典型的な過ち
  • ソフトウェア開発とTOCとXP - イヌロマニアックス

    ソフトウェア開発とTOCとXPについて、今現在の理解をまとめてみた。同じ課題に対して出所は違うのに同じ結論に至る、というのは質を外していない証左でもある、のだろうか。 TOC(Theory Of Constraints)は1970年末にイスラエル人物理学者エリヤフ・ゴールドラット博士が開発した生産管理用ソフトOPTに端を発するマネジメント理論である。元々は工場の生産管理の改善をテーマとして考え出されたものだが、その方法論は「人間が介在するシステム」の問題解決の質を射抜いたものであったため、現在ではプロジェクト管理やサプライチェーン、また企業戦略やマーケティング、人事といった幅広い分野で利用されるに至っている。 詳しい内容については右に挙げた「ザ・ゴール」に譲るとして、TOCの主張は大雑把に言えば以下の様なものである。 「システムの抱える様々な問題は、ほとんどの場合1つまたはごく少

  • ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな

    ふと「ソフトウェア品質のxxx」みたいな文章を見つつ、基としてはソフトウェアがいかに仕様どおりになっているか確認する話だったので、これってソフトウェア品質じゃなくて、ソフトウェア開発品質だよなーと思った。 実際、ソフトウェア開発の品質と、ソフトウェアの品質には相関はあると思う。とくに1990年代まで、まだITという言葉があまり使われず、OA、つまりオフィスオートメーションがソフトウェアの主な開発対象だったときには、データがちゃんと入ってデータがちゃんと届けられるということが主な処理だったため、ソフトウェア開発の品質と、ソフトウェアの品質はほぼ一致していたと思う。 そういう中で、ソフトウェア品質として、ソフトウェア開発の品質が研究された。 実際、ソフトウェア開発プロセスの基コンセプトのひとつは、「よいプロセスがよいソフトウェアを作る」ということで、ソフトウェアプロセスのを見ると必ずとい

    ソフトウェア開発の品質と、ソフトウェアの品質は、分けて考えたほうがいいんじゃないか - きしだのはてな
  • InfoQ: 「かんばん」をソフトウェア開発に適用する: アジャイルからリーンへ

    図1 かんばんとプル生産方式 図1は、かんばんシステムの抽象的なモデルです。図1で示されているのは、上流と下流の2つのプロセスであり、上流プロセスが下流プロセスに部品を供給しています。最終的な顧客に製品を供給するために、プロセスは部品を生産し、その部品を下流に流し込まなければなりません。しかし、多すぎてはいけません。過剰生産は最悪のムダだと考えられます。そこで、過剰生産を防ぐため、上流が完成した部品を下流に押し出す(プッシュ)のでなく、その代わりに、下流が上流から自発的に部品を取ってきます(プル)。部品が置かれる場所は、「ストア」と呼ばれます。(または、「スーパーマーケット」3 - 大野耐一氏 がアメリカのスーパーマーケットに行った時にかんばんの最初の考えを手に入れました。そこでは、店の人ではなく顧客自身が店の中で必要なものを取りに行きます。) ストアは上流に置かれ、WIPの「バッファ」や

  • システムを育てるカイゼン型開発のススメ〜SonicGardenでカイゼン型開発を行う理由 | Social Change!

    日経SYSTEMS 2012年4月号の特集1が「システムを育てるカイゼン型開発のススメ」ということで、Part4に私も寄稿させて頂きました。ソニックガーデンが今のビジネスモデルを採用した理由について書きました。 「カイゼン型開発」という言葉は、2006年に私がブログで書いたのですが、ようやく時代が追いついてきたのかと感慨深いものがあります。そして、2012年の私たちは既にそこからさらに先に進んでいて、その答えとなる「納品のない受託開発」というビジネスモデルに辿り着いています。 実際に掲載された寄稿記事の方では割とコンパクトにまとめてもらいましたが、こちらではディレクターズカットということで元々に書いた原稿の方を公開します。もし、このブログよりもさっと読みたい場合は日経SYSTEMSを読んで頂くのが良いかと思います。 ソニックガーデンでは「納品のない受託開発」という少し変わったスタイルでの受

    システムを育てるカイゼン型開発のススメ〜SonicGardenでカイゼン型開発を行う理由 | Social Change!
  • ソフトウェア開発における多能工の問題 - 勘と経験と読経

    ソフトウェア開発の現場では、特定作業に特化した専門家による分業開発から、個々人が幅広い作業をこなす多能工による開発といった方向に変わりつつある。アジャイル開発プロセスそもそも多能工を前提としている。また、全般的なソフトウェア開発プロジェクトが大規模より中小規模・短工期にシフトしていることが、専門家(単能工)による開発を難しくしつつある状況も、開発エンジニアの多能工化を後押ししている。しかし、多能工によるソフトウェア開発はベストプラクティスかというと、そうではないと思う。多能工アプローチの問題点について考察して望まないと、思わぬところから足をすくわれる事がある。 なぜ多能工なのか?専門家(単能工)はなぜだめなのか? ファクトリー型アプローチは一時期流行し、いまなお一定の価値をもってはいるが、ほとんどのアプリケーション・ソフトウェアの開発には、現在これよりも有効な手法が存在している。 ソフトウ

    ソフトウェア開発における多能工の問題 - 勘と経験と読経
  • 最近盛り上がってきた「かんばん」、ソフトウェア開発における「かんばん」(Kanban)とは何か

    ここ数カ月、ソフトウェア開発の話題で「かんばん」(英語でも「Kanban」)という言葉を目にする機会が増えてきました。かんばんとは何で、どのようなものなのでしょうか? 勉強がてら、いくつかのサイトを紹介していきましょう。 ビギナー向けの「Kanban101」 今年3月にかんばんビギナー向けのサイト「Kanban101」が立ち上がりました。このトップページがかんばんの特徴をよく表しています。 ソフトウェア開発におけるかんばんとは普通に日語の「かんばん」のことで、誰でも見えるところに置かれて、ホワイトボードや黒板になっていて、記入したり、この画面のようにポストイットを貼って運用するのが一般的です。 かんばんの効果とは、このかんばんを模した画面に書かれているように「仕事のみえる化」「仕掛かりを減らす」「流れを見えるようにする」ということ。このサイトは英語ですが説明がとても簡潔で分かりやすいもの

    最近盛り上がってきた「かんばん」、ソフトウェア開発における「かんばん」(Kanban)とは何か