技術コラム

tech08

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

トレーサビリティという“見えない安心”

トレーサビリティ システム開発の現場にいると、「そこまでログを残す必要があるのか」と問われることがあります。特に大阪でシステム開発に携わっていると、スピードやコストの最適化が優先され、目に見えにくい仕組みは後回しにされがちです。しかし、その“見えない部分”こそが、安心の裏付けになります。 身近な例 トレーサビリティという言葉は少し堅く聞こえますが、実はとても身近な概念です。たとえば、スーパーで見かける「生産者の顔が見える牛肉」。どこで誰が育てたのかを辿れるからこそ、私たちは安心して購入できます。また、宅配便の追跡サービスも同じ考え方です。送り状番号を入力すれば、荷物がいつどこを通過したのかがわかる。この可視化された情報が、利用者に安心感を与えています。さらに、医薬品のロット管理も代表的な例です。製造番号によって流通経路を遡ることができるため、万が一の際にも迅速かつ限定的な対応が可能になります。 いずれも共通しているのは、「何かあったときに追跡できる状態」が整えられていることです。そして、この考え方はシステム開発においても変わりません。操作ログやアクセス履歴を残すのは、単なる記録のためではなく、「いつ、誰が、何をしたのか」を後から確認できるようにするためです。 状況に応じて 日々の運用が問題なく回っていると、その価値はなかなか実感されません。むしろ「ログが多すぎる」「管理が大変だ」といった声の方が目立つこともあります。しかし、ひとたびトラブルが発生したとき、その差ははっきりと表れます。追跡できるシステムは原因の特定が早く、対応も的確になります。一方で、記録が不十分な場合は調査に時間がかかり、結果として信頼を損なうリスクが高まります。 抑止力という側面 また、トレーサビリティは事後対応だけでなく、抑止力としても機能します。「記録が残る」という前提があることで、不正利用やヒューマンエラーの発生を未然に防ぐ効果も期待できます。 先読みが重要 大阪でシステム開発の仕事に向き合う中で強く感じるのは、「平常時ではなく、非常時を見据えて設計すること」の重要性です。何も起きない前提で最適化するのではなく、何かが起きたときにどこまで追えるか、どこまで説明できるか。その備えとして、トレーサビリティは欠かせない要素です。 派手さのある機能ではありませんが、確実に信頼を支える基盤となるもの。だからこそ、日々の設計や実装の中で丁寧に積み上げていく価値があると考えています。 関連記事 ヨドック式開発手法 品質に対する誤解    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

科学と技術のあいだ

科学と技術 「コンピューターシステムは高度な科学技術の結晶」この文章は、特に違和感なく受け入れられると思います。システム開発はそんなコンピューターシステムを開発する取り組みです。ところが古来、特に西洋では「科学」と「技術」はまったく別の系統で発展してきたという話を最近耳にしました。 「科学」とは、仕組みや法則を理解し、再現性をもって説明できることです。同じ条件であれば、誰が試しても同じ結果になる。そして「なぜこうなるのか」を論理的に語れる状態にあること。それが科学的であると言えます。 一方、「技術」は必ずしもすべてが説明されている必要はありません。経験や試行錯誤の中から「うまくいくやり方」を見つけ出し、再現していく営みです。 どちらが先か 大阪で一般的に使われているうすくち醤油も、その一例です。この醤油をつくる行為は、発酵という非常に複雑なプロセスを経ます。そしてそれは、長年の蓄積によって確立された技術です。最適な素材、温度や水分などの条件を組みあわせコントロールする事で目的を達成します。この例えでは発酵に関わる酵素や分子を特定してそのはたらきを示すのが科学です。技術の発見が先にあり、後から科学によってその仕組みが説明される、という順になっています。 同じように、薬草によって病気やケガが治るという営みも、長らく技術として扱われてきました。後から有効成分が解明されることで科学的に説明されることはあっても、現場では「効く」という事実が先に存在していたわけです。 システム開発は科学的か? では、大阪でシステム開発に携わる現場はどうでしょうか。計算機やプログラムは論理と数学に基づいた科学の結晶であり、本来はすべて説明可能であるべき世界です。しかし現実の開発現場、とりわけ不具合対応の場面においては、様子が変わってきます。 不具合対応はまず再現することから始まります。再現できれば、条件を整理し、原因を切り分け、論理的に対処することができます。しかし、直接的な原因がすぐに分からない場合、私たちはログを追い、仮説を立て、検証しながら手探りで修正方法を探っていきます。このプロセスは、科学というよりも技術に近いものです。経験や勘、過去の類似事例が重要な役割を果たします。 さらに厄介なのが、再現しない不具合です。特定のタイミングでシステムの挙動が遅くなる、あるいは断続的にしか発生しない問題は、まさにこの典型です。再現できなければ科学的な検証は難しく、かといって試行錯誤の起点も曖昧になります。ときには科学的アプローチを放棄して、メモリをクリアするために「プロセス再起動」のような応急的な対応をせざるを得ない事もあります。 科学は約に立つのか? システム開発の段階では、科学的な思考の積み上げによってシステムはつくられます。 しかし、ビジネスの現場という複雑な環境では、想定外の挙動を示すことがあります。 そのとき、大雑把な技術でしか対処できない場面があるというのは、どこか皮肉にも感じられます。 それでも、科学的な視点は重要です。「仮説を立てて検証する」「本当は別の原因ではないかと疑う」「この疑念を晴らすためには何を証明すべきかを考える」。こうした思考は、不具合対応を前に進めるための重要な手がかりになります。完全に再現できなくとも、観測できる事実を積み重ねることで、解決に近づくことは可能です。 関連記事 システム開発の現場、それ本当にバグってますか? 品質に対する誤解    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

常識のない技術者

現場の「常識」にまつわること 苦い記憶 「それ、常識でしょ?」 システム開発の現場で、何気なく発せられるこの一言に、苦い記憶を持つ若手技術者は少なくないはずです。私自身、大阪でシステム開発の仕事に携わる中で、この言葉の重さと曖昧さを何度も感じてきました。 例えば、テストデータに使用するメールアドレスのドメインは「example.com」を使う、というルール。あるいはSSL証明書の更新時には、まずCSR(証明書署名要求)を作成し、その後に認証局へ申請を行う、という一連の流れ。どちらも現場では当たり前のように扱われますが、体系的な研修で丁寧に教わる機会は決して多くありません。知らないまま現場に入り、指摘されて初めて気づく——そんな経験は誰しも一度はあるのではないでしょうか。 さらに領域を業務側に広げると、「常識」は一層複雑になります。発注・支払業務においては締め日が自社都合で月末などに固定される一方、受注・請求業務では得意先ごとに締め日が異なるのが一般的です。また、輸出入の現場で「バンする」と言えば、それはコンテナでの出荷を意味します。こうした知識は、教科書にも仕様書にも明確には書かれていないことが多く、現場での会話や経験を通じて少しずつ身についていくものです。 人によって異なる「常識」 ここで一度立ち止まって考えてみたいのは、「常識」とは一体誰のための言葉なのか、ということです。プログラミング、ミドルウェア、インフラ、業務知識、さらにはマネジメント。システム開発という仕事は、これらすべてが複雑に絡み合う総合格闘技のようなものです。大阪でシステム開発に関わっていると、案件ごとに前提となる知識が大きく異なることを日々実感します。同じ「現場経験がある」という言葉でも、その中身は人によって全く違うのです。 加えて、技術やビジネスの進化は止まりません。昨日までの常識が、今日には通用しなくなることも珍しくない世界です。そう考えると、「常識がない」という評価は、実は非常に不安定で相対的なものだと言えるでしょう。 本当に大切なこと だからこそ大切なのは、「自分にはまだ知らないことがある」という前提に立つことです。これは若手に限った話ではありません。経験を積んだエンジニアであっても、新しい分野に足を踏み入れれば、途端に“常識のない人”になります。その事実を受け入れられるかどうかが、成長の分岐点になるのではないでしょうか。 そしてもう一つ、伝える側の姿勢も問われます。「常識だから」で片付けるのではなく、「これは共有されていない知識かもしれない」と言語化していくこと。その積み重ねが、チーム全体の底上げにつながります。大阪でシステム開発に携わる現場では、人材のバックグラウンドも多様です。だからこそ、暗黙知をそのままにせず、少しずつでも共有していくことが重要になります。 システム開発の現場では、「知らないことがある」という状態は避けられません。技術も業務も変化し続ける以上、どれだけ経験を積んでも、新しく学ぶべきことは必ず出てきます。 常識に対する姿勢 その前提に立つと、求められる姿勢は自然と見えてきます。各自が学び続けることを前提にすることです。一度身につけた知識に頼り続けるのではなく、その都度アップデートしていく。その積み重ねが、結果として個人の価値を支えていきます。 同時に、忘れてはならないのは、知らないことを責めないという視点です。「常識」という言葉で片付けてしまえば、その場は収まるかもしれません。しかしそれでは、知識は共有されず、同じことが繰り返されるだけです。むしろ、知らなかったことをきっかけに対話が生まれ、理解が深まるような関係性のほうが、長い目で見て健全です。 誰もが、ある場面では「知っている側」であり、別の場面では「知らない側」になります。その前提に立ち、学び続けることと、他者の成長を受け止めること。その両方が揃ったとき、チームとしての力は着実に底上げされていくのだと思います。 関連記事 WEBシステムという選択肢を読み解く 移行から考える    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

システム開発の現場、それ本当にバグってますか?

なにげなく使われる「バグ」 「システムがおかしい。バグっているのでは?」 システムを利用しているお客様から、こんな言葉を聞くとシステム保守担当に緊張が走ります。「バグ」という単語も、もともと専門用語だったものがゲームの普及などで一般にも浸透しているようです。最近では「民主主義のバグ」などという表現がニュース記事で使われることもあります。 システム開発やシステム保守の現場で使われる、似た用語は多々ありますが、普段からはっきりとした違いを意識できている方は意外と少ないかもしれません。 用語の違い 「バグ」は、プログラムの設計や実装に誤りがあり、想定と異なる動作をする状態を指します。たとえば計算ロジックのミスにより、正しい結果が出ないようなケースです。 「不具合」は、もう少し広い概念です。システムの動作が仕様どおりでない、あるいは期待と異なる状態を広く指します。原因がプログラムミスとは限らず、設定ミスや環境差異、データの問題なども含まれます。 「障害」は、システムが業務として利用できない、または大きな影響が出ている状態を表す言葉です。サーバ停止やログイン不能など、業務が止まるレベルの問題で使われることが多いでしょう。 「エラー」は、システムが何らかの異常を検知した状態を指します。エラーメッセージが表示される場合もあれば、ログにだけ記録される場合もあります。ただしエラーが出たからといって、必ずしもバグとは限りません。 このように整理してみると、お客様の言う「バグ」という一言の中に、実はいくつもの解釈が考えられます。 システム開発担当者としては、聞き取った内容を咀嚼しなおして、正確な用語で認識する必要があります。 視点のギャップ プログラムを習いだして日が浅いエンジニアや、日々システム開発を主に担当するエンジニアは、「エラー」や「例外」に過敏に反応し、それを排除するためにどうしたらよいかに注力しがちです。 しかし、お客様が求めているのは必ずしもそこではありません。 例えば、システム運用中にトラブルが起きたとき、お客様が求めているのは「障害」から復旧して出荷業務を止めない事であったり、サイトでの決済を正常化して機会損失を減らす事かもしれません。 1週間かかって100点の対応をするよりも、1時間以内に60点の対応をする事が評価される場合もあるでしょう。(大阪のお客様はせっかちな方が多いですね・・・) エンジニアが目指す「原因を完全に解明すること」と、ユーザーが求める「業務を止めないこと」は、必ずしも同じではないのです。 大阪でシステム開発に関わっていると、こうした認識のズレに出会う場面は少なくありません。システムを使う人と作る人では、同じ出来事でも見え方が変わります。 時には細かい言葉の違いに注意してみることで気づけることがありそうです。 関連記事 品質に対する誤解 システム保守サービス    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

「キャッシュクリア」って何?

キャッシュについてのやりとり 「キャッシュが残っているので、Ctrl+Shift+F5で再確認してください」 システムやホームページの不具合を問い合わせたとき、こんな返答を受けたことはありませんか。言われた通りに操作すると確かに直る。でも「キャッシュとは何か」と聞かれると、うまく説明できない。なんとなく“溜まっていると不具合の原因になるもの”という印象だけが残る――これは多くのユーザーに共通する感覚ではないでしょうか。 キャッシュ(cache)という言葉は、もともとフランス語で「隠し場所」という意味だそうです。コンピュータの世界でも基本は同じで、「よく使うデータを、すぐ取り出せる場所に隠しておく仕組み」を指します。 たとえばホームページの画像やデザイン情報。毎回サーバーから取得していては表示が遅くなります。そこでブラウザは、一度読み込んだデータを手元に保存します。次回はその“隠し場所”から取り出すため、表示が速くなる。これはシステム開発の現場ではごく一般的な高速化手法です。 問題が起きるのは、その隠しておいた情報が古くなったときです。 サイトを更新したのに、ユーザーの画面では変わっていない。開発側では修正済みでも、利用者側では旧データが表示されている。こうした“反映されない”問題は、システム開発において非常によくあるケースです。 ここに、技術者とユーザーの認識の差があります。 システム開発に携わる側にとって、キャッシュは前提知識です。動作確認もキャッシュの仕組みを理解したうえで行っています。しかしユーザーは、その前提を共有していません。「こちらでは確認済みです」と伝えても、ユーザーの画面ではまだ古い状態、ということが起きます。 技術者から見れば“正常”。 ユーザーから見れば“直っていない”。 このすれ違いは、技術力の問題ではなく、説明の不足から生まれます。 「キャッシュの影響かもしれません。最新情報を読み直してみてください」 この一言があるだけで、ユーザーの納得感は大きく変わります。システム開発は、プログラムを書くことだけではありません。仕組みを、相手の立場で伝えることも含まれます。 キャッシュは単なる“隠し場所”。 ですが、その存在を共有できるかどうかで、コミュニケーションの質は変わります。 システム開発やホームページ制作において重要なのは、技術そのものだけではありません。 技術者とユーザーの間にある前提知識のギャップを、どう埋めるか。 キャッシュの話は、その基本を思い出させてくれる、小さな題材なのです。 関連記事 WEBシステムという選択肢を読み解く 品質に対する誤解    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

自社システムをクラウドに載せるべきか?

自社システムをクラウドに載せるべきか? お客様のお悩み 直近、販売管理や在庫管理システムの入れ替えについてのご相談が増えています。 大阪という土地柄か、初期コスト、ランニングコストに注目されるお客様が多い印象です。 「パッケージを更新しようとしたが、全機能の半分も使っていなくて投資回収として疑問」 「カスタマイズ費用を積み上げると、いっそ自社に合わせたシステム開発の方が安いのではないか」 「クラウドにすると高くなるのではないか」 今回は、「オンプレミス vs クラウド」というテーマで、自社システムのあり方を考えてみたいと思います。 オンプレミスとクラウド、どちらが安いのか? 社内にサーバーを置く形態をオンプレミスと呼びます。サーバー本体だけでも40万円~という価格帯になるでしょう。 一方、クラウドサーバーは初期費用が抑えられ、月額課金(サブスクリプション)型が主流です。一見するとクラウドのほうが安く見えます。 利用規模や契約形態によっては、数年単位で見るとクラウドの累積費用がオンプレミスを上回るケースもあります。 ただし、ここで単純比較してはいけません。 オンプレミスサーバーでは、小規模構成であっても月3,000円程度の電気代が発生し、構成や空調状況によってはさらに増加します。 他にも サーバーラックと配置スペース 無停電電源装置(UPS) バックアップディスク 24時間空調 機器点検・保守の人件費 といった“見えにくいコスト”が積み上がります。 机上の価格比較ではなく、運用の現実を含めて判断する必要があります。 会社経営の観点からは資産計上して減価償却する(オンプレミス)のか、毎月の経費として処理する(クラウド)のかは、キャッシュフローや利益計画にも影響するため、経営判断として重要な視点です。 スケール変更の柔軟性 クラウド、とくにPaaS環境では、サーバースペックの変更や増設が比較的容易です。 小さく始めて、利用状況を見ながら最適化する――いわゆるスモールスタートが可能です。 オンプレミスの場合、ディスク増設やメモリ追加には計画停止が伴います。業務停止の影響も無視できません。 将来の成長を見込む企業にとって、拡張性は大きな判断材料になります。 BCP(事業継続計画)の観点 落雷による停電、サーバークラッシュ。 UPSを導入していても「実はバッテリー切れだった」という笑えない話もあります。 クラウド事業者のデータセンターは、自家発電設備や多重化構成により高い可用性を確保しています。災害リスクの分散という点では大きな強みがあります。 ただし、「外部にデータを預ける」という心理的ハードルも無視できません。 ネットワークは必須条件 クラウド利用には安定したインターネット接続が前提です。 現在の回線品質は安定していますが、重要業務では回線の二重化など冗長構成も検討すべきでしょう。 セキュリティはどちらが安全か? クラウドはインターネット経由でアクセス可能な環境にあります。 インターネットというオープンな環境の性質上、ハードウェア、OS、アプリケーションの各層での対策が必須です。 一方オンプレミスでも、物理的な盗難リスクは存在します。鍵付きラック、床固定、入退室管理などを行って初めて「安全」と言えます。 クラウドは物理セキュリティの面では一般企業より高水準であることが多く、最終的には“場所”よりも“設計と運用体制”が安全性を左右します。 Windows+SQL Serverは本当に最適か? WindowsとSQL Serverの構成に安心感を持つ企業様も多いでしょう。しかし近年、OS・ミドルウェアのライセンス費用は上昇傾向にあります。 LinuxやMySQL(MariaDB)といったOSSを活用すれば、コスト効率は大きく改善します。 クラウド版パッケージであっても、中身がWindows+SQL Serverである場合、利用料にはライセンス費用が含まれています。 「クラウドだから安い」とは限らないのです。 結論:答えは一つではない 「クラウド化」という言葉が独り歩きしていますが、SaaSとPaaS, IaaSでは意味がまったく異なります。 自社の業務特性、将来計画、ITリテラシー、予算感――それらを踏まえた上で判断すべきです。 この記事を読んだことで、かえって判断が難しいと感じられた方もいらっしゃるかもしれません。 選択は「単純ではない」という事は理解いただけたかと思います。 豊富なシステム開発、システム運用の現場で培った知見をもとに、御社に最適な選択をご提案します。 大阪の企業様も、その他の地域の企業様もどうぞお気軽にご相談ください。 関連記事 開発実績 クラウド構築 開発実績 オンプレサーバ構築    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

WEBシステムという選択肢を読み解く

WEBシステムという選択肢を読み解く WEBシステムへの理解 システム開発を検討する場面で、現在もっとも一般的な形となっているのが、ブラウザから利用するWEBシステムです。業務システムや顧客向けサービスを問わず、「まずはWEBで構築する」という判断が選ばれることも多くなりました。しかし、その選択が何を意味するのかを整理しないまま進めてしまうと、後になって制約や課題が表面化することがあります。様々な立場・目線で「WEBシステム」を見ることで、理解を深める助けになればと思います。 利用者目線 利用者の視点から見ると、WEBシステムの利点は非常に明確です。ブラウザさえあれば、PC・スマートフォン・タブレットといった端末を問わず利用でき、場所にも縛られません。大阪に本社を置く会社のシステムを、東京の拠点や出張先から同じように使える。この「距離を意識しなくてよい」点は、働き方や組織構造の変化と相性が良いと言えます。 大阪のシステム開発会社であるヨドックでも、大阪と東京の各拠点メンバーでスケジュール調整を行うなどの使い方をしています。 管理者目線 運用・管理の立場から見ると、WEBシステムは別の価値を持っています。従来のクライアントサーバー型と比較して、利用端末ごとの設定やサポート、バージョンアップ対応が軽減されます。データはサーバー側で一元管理され、リアルタイムで共有されるため、拠点間で情報が食い違うリスクも下がります。 開発者目線 開発者の視点を加えると、WEBシステムは公開仕様やオープンソース技術の組み合わせで構成されることが多く、比較的短期間・低コストで高度な仕組みを実現できる可能性があります。その一方で、構成が複雑になりやすく、どこまでを自分たちが理解・管理できているのかが見えにくくなる場面もあります。利便性と理解度のバランスは、設計段階で意識しておく必要があります。 ビジネス目線 事業の観点では、WEBシステムは拡張性の高さが特徴です。ECサイトであれば利用者の増加が直接売上につながり、プラットフォーム型のサービスでは継続的な収益モデルを描きやすくなります。将来的な成長を見据えたシステム開発を行う際、この点は経営判断とも深く関わります。 前提条件 ただし、共通する前提条件も忘れてはいけません。 WEBシステムでは、通信の暗号化やデータ改ざん対策など、セキュリティの確保が必須となります。特に顧客情報や業務上の機密情報を扱う場合、一度問題が発生すると、影響は局所的にとどまりません。 不正アクセスや情報漏洩が起きた場合、データは短時間で大量に流出し、どこまで拡散したのかを正確に追跡することが難しいという特性があります。これは、紙の書類や特定端末内のデータとは異なる、WEBシステムならではのリスクです。 まとめ WEBシステムは、場所や端末に縛られず利用でき、拡張もしやすいという点で、現代の業務やサービスと相性の良い仕組みです。一方で、セキュリティや通信環境といった前提条件を含め、成り立ちそのものに特徴があります。これは優劣の問題というより、「どういう性質を持った仕組みなのか」という整理に近いものです。 システム開発を考える際には、WEBであること自体を目的にするのではなく、その特性が自社の業務や組織、事業の方向性とどう重なるのかを見ていくことが重要になります。選択肢を一度フラットに並べ、それぞれの立場から眺め直すことで、判断の精度は自然と高まっていくはずです。 関連記事 システム開発 実績 ネットショップ 実績    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

品質に対する誤解

システム開発の品質に対する誤解 担当者のお悩み 「もうでき上がっているのですが、お客様が完成度に納得されず、なかなか公開できないのです。現行の古いデザインよりは確実に改善しているので、早めにリリースして、運用の中で少しずつ改善していけばよいと思うのですが……」 ホームページ制作部門の担当者と雑談をした際に、このような話を聞いたことがあります。このやり取りは、ソフトウェアの品質に対する考え方の違いを端的に表しているように感じました。 ソフトウェアの品質は「100%を目指すもの」であり、工業製品の品質は「100%を保証するもの」であると考えられます。この違いは表現としてはわずかですが、実際の現場では判断基準や期待値に大きな影響を与えます。 モノづくり屋さんの感覚 工業製品の世界では、大量生産を前提として品質が設計されています。製造工程では歩留まりが管理され、不良率は数値として把握されます。市場に出る段階では「規格を満たしていること」が保証されており、問題が発覚した場合でも、リコールという形で責任の所在と対応方法が明確に定義されています。設計段階では試作品を用いた検証が重ねられ、量産前に品質を作り込むことが前提となっています。 ソフト屋さんの感覚 一方、ソフトウェア開発、とくにスクラッチ開発では事情が大きく異なります。ソフトウェアは物理的に摩耗しない代わりに、要件変更や利用環境の違い、利用者の操作によって無数の状態を取り得ます。そのため、完成時点で品質を100%保証するという考え方は現実的ではありません。品質はテストや運用を通じて徐々に高まっていくものであり、その過程は信頼度成長曲線として説明されることが多いです。 このような品質観を象徴する考え方として、ソフトウェア業界では「No Silver Bullet(銀の弾丸は存在しない)」という言葉が知られています。これは、ソフトウェア開発における本質的な複雑さや不確実性を、一挙に解消できる万能な方法は存在しない、という認識を表したものです。ソフトウェアの品質は、単一の手法や工夫で保証できるものではなく、積み重ねによってしか高められない、という前提がここにあります。 オープンソースの上に成り立つ世界 オープンソースソフトウェアも、この考え方の延長線上にあります。OSSは多くの実績と改善の積み重ねによって高い信頼性を獲得していますが、それは「完成した品質」を意味するものではありません。OSS自体が運用と改良を前提に育てられている以上、それを基盤として構築されたシステムの品質もまた、運用の中で成熟していくものだと言えます。 ギャップの存在を認識する こうした前提を踏まえると、ソフトウェアの品質を巡る判断には、常に揺らぎが生じます。品質を「完成した状態」と捉える人もいれば、「運用の中で育てていくもの」と捉える人もいます。どちらが正しいという話ではなく、立場や経験によって、品質に対する認識や常識が異なるのは自然なことです。 そのため、ソフトウェアの現場では、品質に対する前提が毎回同じであるとは期待できません。相手が変われば、求められる完成度の感覚も変わります。その違いを前提としたうえで、「今回はどこまでを完成とし、どこからを運用で改善していくのか」を一つずつすり合わせていく作業が必要になります。 ソフトウェアの品質を巡る判断は、技術だけで完結するものではありません。相手ごとに異なる認識を受け止め、その都度調整し続けること自体が、ソフトウェア開発の一部なのだと思います。 関連記事 システム開発の困った システム開発 実績    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

移行から考える

移行から考える システム開発プロジェクトにおいて、忘れがちだけれど非常に重要なことがあります。 それが「移行」です。 既に運用中のシステムから、新しく開発したシステムへ置き換える。 こうしたプロジェクトは決して珍しくありません。 私が一メンバーとして関わったあるプロジェクトでも、設計・開発フェーズがとにかく難航しました。 そして開発フェーズの終盤になって、ようやく「そろそろ移行のことを考えないといけないですね」という話が持ち上がりました。 移行は“別の開発”である 移行元と移行先のシステムでは、キー項目やデータ同士の関係(リレーション)が異なることが多くあります。 それが数十万件単位で積み上がっている場合、 単純なコピーでは済まず、「移行専用のプログラム」を作って加工する必要があります。 ここで注意したいのが、移行プログラムの特殊性です。 通常の業務プログラムは、 開発後にテストを重ね、実運用の中で想定外を経験しながら品質が磨かれていきます。 一方で移行プログラムは、次のような性質を持っています。 原則として一度しか使われないため、品質保証が難しい 切替作業中の限られた時間内で、確実に完走することが求められる そのため、繰り返しリハーサルを行い検証を重ねる必要があります。しかし、一度しか使われないという前提は変わらないため、移行はどうしても「想定外のコスト」になりやすい領域です。 「どう飛ぶか」ではなく「どう着地するか」 たとえ話をすると、少し分かりやすくなります。 飛行機が発明された当初は、「どれだけ高く、どれだけ長く飛べるか」を競う時代でした。 しかし現代の飛行機は違います。最も重要なのは、滑走路に無事着陸できることです。その前提のもとで、機体が設計され、運航計画が立てられています。 システム開発も同じです。 「どう作るか」だけでなく、「どう切り替え、どう着地するか」について、開発ベンダーとシステムオーナーがあらかじめ目線を合わせておかないと、想定していたコストや納期に間に合わない、という事態が起こり得ます。 移行対象はすべて同じではない 参考までに、データは種類ごとに整理して考える必要があります。 マスタデータ 顧客情報、商品情報など トランザクションデータ 見積伝票や請求データなど、履歴性の強い情報 マスタデータは新システムへ移行するが、トランザクションデータはCSVファイル保存で十分、といった判断が現実的なケースも少なくありません。 用語の整理 最後に、よく混同されがちな用語を整理しておきます。 移行 多くの場合、データ移行を指します。 切替 ユーザー目線 旧システムの利用を停止し、新システムで業務を開始すること ベンダー目線 システム切替そのものに加え、DNSやロードバランサの切替作業なども含みます 関連記事 システム開発実績 ヨドック式開発    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

スクラッチ開発とパッケージシステム

スクラッチ開発とパッケージシステム よくあるお悩み お客様からシステムに関するご相談をいただく際、いくつか“よくあるパターン”があります。 一つは、 ExcelやAccessで業務を回してきたものの、さすがに限界を感じ始めたケースです。そこでパッケージシステムを検討してみたものの、「全体としては良いが、どうしても一部の業務に合わない」という壁にぶつかります。 もう一つは、 すでにパッケージシステムを導入しているものの、 「そろそろ置き換えたい」「バージョンアップの時期が来た」というケースです。 ところが、バージョンアップに伴ってさらなるカスタマイズが必要になったり、 そもそも対応できないと言われてしまうこともあります。 なぜパッケージは変化し続けるのか パッケージシステムが変化していく理由は、決して気まぐれではありません。 脆弱性への対応 法改正や業界動向に合わせた機能追加 ベンダー自身のビジネス環境の変化や競合への対応 こうした事情から、パッケージは「止まることなく進化する」宿命を持っています。 なぜパッケージのカスタマイズは高いのか パッケージシステムは、 「そのまま使うこと」を前提に、全体の整合性が丁寧に設計されています。 そこに想定外の処理や独自要件を割り込ませる場合、 全体への影響を考慮しながら調整する必要があります。 結果として、そのコストはどうしても高くなりがちです。 建築にたとえると パッケージシステムは、いわばプレハブ住宅です。 そのまま使うことを前提に作られているため、 大きな改造や間取り変更は得意ではありません。 一方で、条件に合えば安価で、品質も安定しています。 対してスクラッチ開発は、大工による注文住宅のようなものです。 いびつな土地にも建てられますし、内装や動線に強いこだわりを持たせることもできます。 ただし、費用は高くなりがちで、品質も作り手次第です。 そのあいだをどう埋めるか 理想を言えば、 「パッケージの安定性」と「スクラッチの柔軟性」 その“いいとこ取り”ができるのが一番です。 ヨドック式開発は、まさにその間を埋めるためのアプローチです。 関連記事 ヨドック式開発 製品・サービス    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

システム保守費用は必要か?

システム保守費用 「システム保守費用」についてはこのように思われたことはありませんか? システム開発に高額の費用を払ったのに、さらに月々費用を払う必要があるのか 特に作業をしてもらっているわけでもないのに払い続けるのは納得いかない 例えば家電(ドライヤーなど)を購入・使用する際は、使っていくのに月々の支払いは続きません。 自動車の場合はガソリン代や車検、税金はかかりますが、整備費用は点検作業を依頼した時に支払います。 マンションを購入すると修繕積立金がありますが、これも改修工事など具体的な作業費に充てられます。 このように比べると、システムを利用するうえで毎月保守費用が必要というのは、理解しにくい面もあるでしょう。 ユーザー目線での保守には、日常的な運用活動が含まれます。 具体的には、システムの稼働状況の監視、データバックアップの実施、障害発生時の初期対応などです。 これらは普段目に見えませんが、適切に行うことで業務の安定性を高め、トラブルによる損失を防ぐことができます。 ベンダー・保守提供者側の視点では、担当者が変わっても知識やノウハウを組織として保持し、継承していくことが重要です。 これにより、ユーザーは安心してシステムを利用でき、障害や業務変更による影響を最小限に抑えることができます。 システムを深く理解した専門技術者が体制として維持されていることで、万一のトラブルでも迅速に対応可能です。 このように、保守とは「問題が起きたときの保険」ではなく、事業を止めずに価値を最大化するための継続投資です。 開発規模や業務独自性に応じた適切な保守体制を維持することで、スクラッチ開発システムの柔軟性や独自性を損なうことなく、長期にわたって活用できます。 つまり、保守費用は単なるコストではなく、システムを経営資産として守り、変化に強い組織をつくるための戦略的投資なのです。 結果として、継続的な保守によって、ユーザー企業は日々の業務に集中でき、ビジネスの成長に注力できます。 システムの安定稼働とリスク回避は、企業の信頼性や業務効率、ひいては収益に直結する重要な活動であり、月々の保守費用はそのための投資と考えることができます。 関連記事 システム保守サービス システム導入の流れ    ※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

在庫管理システム開発のステップと注意点

効果的な在庫管理システムの開発は、企業の競争力向上に不可欠です。ニーズ分析から導入まで各ステップを計画的に進めることで、業務効率化やコスト削減を実現します。適切なシステム導入は、経営層や管理職にとって重要な課題となります。 在庫管理システムの概要と種類 在庫管理システムは、企業の在庫を効率的に管理する情報システムです。入出庫、在庫数の把握、発注、消費期限などを一元管理し、業務効率化を図ります。 在庫の過剰や不足は運転資金の圧迫や販売機会の損失に繋がるため、適切な在庫管理は企業競争力を維持する上で重要です。リアルタイムなデータ更新により、迅速な意思決定を可能にします。 システムにはいくつかの種類があります。基本的な機能を持つものから、財務・人事・営業機能と統合されたERPシステム、インターネット経由でどこからでもアクセス可能なクラウド型などです。企業の規模やニーズに合わせ、最適なシステムを選ぶことが求められます。 在庫管理システム開発の流れ 在庫管理システムの開発は、以下のステップで進められます。 開発準備・要件定義: 現状の業務フローと在庫管理の課題を分析し、必要な機能を明確にします。経営層と現場双方のニーズを把握し、システムに期待する成果を具体化します。 設計: 要件定義に基づき、システム全体のアーキテクチャ、データベース構造、ユーザーインターフェースを設計します。ユーザビリティや将来の拡張性を考慮した設計が重要です。 開発・テスト: 設計書に従ってシステムを実装します。開発後は、単体テスト、結合テスト、システムテストを実施し、機能や性能、操作性を徹底的に確認します。バグや不具合の早期発見と修正が品質保証に直結します。 導入: 従業員へのトレーニング、既存データの正確な移行作業が欠かせません。導入後は定期的なモニタリングで運用状況を確認し、必要に応じた改善を行います。 これらのステップを計画的に進めることで、効果的な在庫管理システムが構築できます。 在庫管理システム導入のメリット 在庫管理システムの導入は、企業に多くのメリットをもたらします。 業務効率化: 手作業やExcel管理と比較し、リアルタイムな在庫確認で作業時間を短縮し、人的ミスを削減します。データの一元管理により、複数拠点や部門間での情報共有もスムーズになり、業務全体の生産性が向上します。 コスト削減: 在庫の適正化により、過剰在庫による維持コストや資金繰りの悪化を防ぎます。自動発注機能で最適なタイミングでの発注が可能になり、急な発注によるコスト高騰を回避します。人的エラーの削減も無駄なコスト減少に繋がります。 データの一元管理: 各部門や店舗の在庫状況を単一プラットフォームで把握でき、情報の正確性が向上します。これにより、需給変動への迅速な対応、在庫の過剰・不足リスク軽減、効率的な在庫運用が実現します。部門間の連携強化にも貢献します。 これらにより、効率的かつ効果的な経営を強力に支援します。 在庫管理システム選びのポイントとコスト システム選定では、以下のポイントを重視しましょう。 現場のニーズ把握: 実際にシステムを使うスタッフの意見を取り入れ、業務フローや必要な機能を明確にします。 ユーザビリティ: 直感的に操作できるインターフェースは、導入後の定着率を高めます。 カスタマイズ性: 標準機能で不足する場合、特定の業務フローに合わせた機能追加やレポート作成が可能かを確認します。将来的な変更への柔軟性も重要です。 サポート体制: トラブル発生時に迅速に対応してくれるベンダーのサポートがあるか確認し、安心して運用できるかを見極めます。 導入コストは、初期費用と運用・保守費用に分かれます。初期費用にはシステム設計・開発、ハードウェア購入、インストール・設定が含まれます。運用費用は、システム保守、クラウド利用料、アップデート対応費などです。これらの費用を総合的に見積もり、長期的な投資価値を評価することが成功の鍵です。 在庫管理システム導入事例 手作業からシステムへ移行した中小企業では、リアルタイムな在庫状況確認が可能になり、発注ミスや機会損失が減少しました。複数店舗を展開する企業では、システム統合で全体の在庫回転率が向上した事例もあります。 一方で、失敗事例もあります。従業員への教育不足による操作ミスやニーズを考慮しないシステム選定は、業務の混乱や負担増加を招きます。導入前の綿密な準備と従業員への丁寧なサポートが成功への鍵となります。 在庫管理システムの開発は、在庫の最適化と業務効率向上に大きく貢献します。適切な計画と継続的な運用で、貴社の持続的な業務効率向上を実現しましょう。

お問い合わせ

CONTACT

業務システムに関するお困りごと、WEBサイトの制作など、
まずはお気軽にお問い合わせください。

会員サイト
CONTACT
06-6305-2278
採用サイトはこちらRECRUIT