3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

銀の弾丸はあるか ── ソフトウェアエンジニアリングの未来と責任

3
Posted at

はじめに

ソフトウェアエンジニアリングの世界では、
毎年のように「これさえあれば全部解決する」と謳う新技術が登場します。
最近では生成AIがその座にいます。
ただ、過去の「決定版」とされた技術の多くは、期待されたほどの変革は起こさず、
それでも何かを残して次の流行にバトンを渡してきました。

この記事では、ソフトウェアエンジニアリングが「これからどこに向かうのか」を、
3つの問いを軸に整理します。

  • 銀の弾丸は本当に存在するのか?
  • では何が本当にエンジニアリングの方向を決めているのか?
  • そして、未来を決めるのは誰なのか?

個人的には、新しい技術ニュースを見るたびに「これは追わなきゃ」と焦るタイプでした。
トレンドを読むレンズと、エンジニアとして何を引き受けるかという軸を持てたことで、
ようやく落ち着いて未来と向き合えるようになりました。

TL;DR

  • 「銀の弾丸」は存在しない。新技術はイノベーションライフサイクルとハイプサイクルを通り、定着か消滅が決まっていく
  • 方向を決めるのは技術ではなく ソフトトレンド(複雑性・オープンワールド・創発的要件・グローバル協働)。モデル駆動・TDD・協調開発・AIなどはその応答として読み解ける
  • 未来を切り拓くのは技術ではなく、それを使う人の判断と責任。
    ACM/IEEE-CSの倫理綱領を軸に、AI時代の論点を自分の言葉で考える必要がある

「銀の弾丸」を探し続けてきた歴史

「これからどう進化するか」を考える前に、
「これまでどう進化してきたか」を振り返ります。
歴史のパターンを知ることで、
目の前のトレンドに振り回されず済むレンズが手に入ります。

「銀の弾丸」幻想 ── 繰り返されてきたパターン

ソフトウェアエンジニアリングはまだ半世紀あまりの若い分野です
(用語の成立を1968年のNATO会議に置く一般的な見方による)。
物理工学のように「同じ手順で同じ結果が予測できる」段階にはまだ達していません。
その短い歴史の中で何度も「これこそが決定版だ」とされる技術が現れては、
次の流行にバトンを渡してきました。

ざっと振り返ると、過去には次のような「決定版」候補がありました。

  • 構造化プログラミング、オブジェクト指向設計、UML、CASEツール
  • アジャイル、SOA/マイクロサービス、クラウドネイティブ
  • 直近では生成AI/LLM

「廃れた技術には価値がなかった」のではなく、技術には成熟までのプロセスがあり、
それを理解することがトレンドを読む第一歩だと思っています。

技術の長期的進化を読むレンズ ── イノベーションライフサイクル

ある技術が「銀の弾丸」候補として登場してから、広く定着するか消えるかが決まるまでには、典型的な5つの段階があると整理されています。

[1] ブレークスルー → [2] 複製    →   [3] 経験則    → [4] 理論      → [5] 自動化
 有望な解            他チームでも     使い方の経験     一般化された      ツール化され
 が初めて姿          再現され利用      則が蓄積        理論にまとまる   「当たり前」に
 を現す             が広がる

「自動化」まで到達して広く使われる技術はごく一部です。
多くは経験則の段階で頭打ちになり、
限られたコミュニティで使われ続けるか、消えていきます。
長期的には技術は典型的に S字カーブ を描き、
形成期はゆっくり、成長期に急加速、成熟期に頭打ちになります。
今のソフトウェア技術は急加速期の真っただ中にあり、
今後20〜40年でさらに激しい変化が起きると予測されています。(もっと短いスパンかも?)

短期的なトレンドを読むレンズ ── ハイプサイクル

イノベーションライフサイクルが「成熟まで」の長期視点なのに対し、
もっと短い時間軸で個別技術の盛衰を見るレンズが ハイプサイクル です。
ガートナー社が広めたモデルで、
新技術への期待値は黎明期 → 過度な期待のピーク → 幻滅期 → 啓発期 → 安定期
の5段階を経るとされています。

image.png

すべての技術がこの曲線をなぞるわけではありません。
幻滅期で消えるものもあれば、過度な期待を経ずに静かに広がるものもあります。
大事なのは「今、自分が興味を持っている技術はどの段階か」を意識することです。
過去に「銀の弾丸」として騒がれた技術を例に並べてみます。

候補技術 当時の期待 実際の落ち着きどころ
CASEツール 「コード生成からテストまで全自動化」 過度な期待後に失速、限定的な領域でのみ使われる
UML 「設計の共通言語として全産業を統一」 黎明期と過度な期待を経て、一部のドメインで定着
SOA 「企業システムをサービスで再構成」 マイクロサービスとして形を変えて再生
ブロックチェーン 「金融も契約もすべて分散化」 幻滅期からまだ抜けきれていない
生成AI/LLM 「コーディングは要らなくなる」 過度な期待のピークから幻滅期への入口あたり、と見る向きが多い

それぞれが異なる軌跡を描いていて、
「新技術 = 必ず普及する」でも「新技術 = どうせ廃れる」でもないことが見えてきます。

技術ではなく「ソフトトレンド」が方向を決める

歴史のレンズを手に入れたところで、次の問いに進みます
── では実際のところ、ソフトウェアエンジニアリングはどんな方向に進化していくのか。

「次に流行る技術は?」と問いがちですが、それは少し焦点がずれているかもしれません。
技術トレンドの上流にはビジネス・組織・市場・文化という別の流れがあり、
その上流を見ることで「なぜこの技術が必要とされているか」が腹落ちしてきます。

[ソフトトレンド] ── 上流(数十年単位の社会変化・組織変化)
        │
        ↓
[ハードトレンド] ── 下流(数年単位の技術ブレイクスルー)
        │
        ↓
[個別の技術選定]   ── 自分たちが日々触れる層

ソフトトレンドとハードトレンドの違い

技術トレンドには2種類あると整理できます。

観点 ソフトトレンド ハードトレンド
領域 ビジネス・組織・市場・文化 研究・技術
駆動因子 社会変化、人口動態、競争環境 研究の進展、技術ブレイクスルー
時間スケール 数十年単位でゆっくり 数年単位で急速
グローバル化、複雑性の増大 新しい言語、フレームワーク
SEへの影響 「何が必要か」の上流 「どう作るか」の下流

たとえばマイクロサービスは、グローバル分散開発と継続的デリバリーへの需要というソフトトレンドへの応答として広がりました。
自分も最初は「次の言語は」「次のフレームワークは」とハードトレンドばかり追っていました。
ソフトトレンドを意識し始めてから「なぜ今この技術が必要とされているか」が腹落ちするようになり、技術選定の判断が落ち着いた感覚があります。

複雑性の爆発 ── 数百万行から数十億行へ

1980年代に「巨大」と呼ばれたメインフレームは100万行規模でした。
今はLinuxカーネル単体で4000万行超(2025年時点)、
デスクトップOS全体では数千万〜1億行規模に達します。
組込みシステムも1000万〜5000万行が一般的です。
近未来のシステム・オブ・システムズは10億行規模に達するとも言われています。

桁違いの複雑性は開発の前提を破壊します。

  • インターフェース数が爆発し、外部・他システム・内部コンポーネント間の整合性確保が難しくなる
  • 変更の影響範囲を予測する従来手法が限界に達する
  • テスト・検証が網羅できなくなる

ここで期待されるのがAI・機械学習・データサイエンスの活用です。
大規模リポジトリのマイニング・テストケース生成・欠陥予測など、
人間が手で扱える規模を超える領域でこれらが力を発揮します。
ただ、AIは複雑性の本質的な解決ではなく、
複雑性に「人間が耐えられる形」で向き合うための道具、というのが個人的な理解です。

オープンワールドソフトウェアと創発的要件

かつてのソフトウェアは、エンドポイント・ネットワーク・ユーザー行動が事前に把握できる範囲で動くという、安定した境界を前提にしていました。

いま広がっているのは オープンワールドソフトウェア ── 環境が継続的に変化することを前提に、自分の構造や振る舞いを動的に調整するソフトウェアです。
身近な例が アンビエントインテリジェンス(AmI)です。
身の回りの物や空間に賢いインターフェースが埋め込まれ、人を認識して反応する環境を指します。
スマートスピーカー、スマートカー、ヘルスケアウェアラブルがその初期段階にあたります。

こうしたシステムでは「最初に要件を全部決める」やり方が成立しません。
そこで 創発的要件(Emergent Requirements)という概念が重要になります。
要件は最初に決まるものではなく、システムを使い始めて初めて見えてくるもの、
という前提に立つ考え方です。
これに対応するため、プロセスはアジャイルへ、要件モデルは「変更を前提とした記述」へ、ツールは全段階で変更を支える方向へとシフトしています。

ここまでで取り上げた3つのソフトトレンドは独立しておらず、相互に絡み合っています。

この3つは独立した話題に見えて、実は互いを増幅させ合うサイクルになっている
── これが現代のソフトウェア開発が向き合っている地形です。

グローバル協働と人の関わり方の変化

開発はもはや一つの場所に集まったチームの作業ではありません。
タイムゾーン・言語・文化を越えてチームが分散し、
非同期コミュニケーションを軸に協働します。
プロジェクトが大きくなるほどコミュニケーションコストは指数的に膨らみ、
伝達効率の悪さがそのまま生産性の足かせになります。

機能させるために必要なものを整理すると、おおよそ次の3層に分かれます。

  • プロセス層: 共通のプロセスフレームワークと方法論(誰が・いつ・どう動くかの揃え方)
  • ツール層: ネットワーク化されたコラボレーションツール(チャット、ビデオ、共同編集、CI/CDなど)
  • 知識層: 経験を次世代に渡す手段(パターン、ベストプラクティス集、内部Wikiなど)

技術はどう応えようとしているか

ハードトレンドはソフトトレンドへの「応答」として生まれます。
「複雑性が爆発しているからこういう技術が出てきている」という因果関係で読み解くと、
技術トレンドの優先順位が見えてきます。

ソフトトレンドへの技術の応答マップ

ソフトトレンド 主な技術応答 代表手法
複雑性の爆発 抽象化の引き上げ/自動化 モデル駆動開発(MDSD)、AI/ML活用、探索ベースSE
オープンワールド 動的適応/文脈認識 自己適応ソフトウェア、コンテキストアウェア設計
創発的要件 反復・即時検証 アジャイル+TDD、価値駆動の要件定義
グローバル協働 情報共有を中核に置く 協調開発環境、CI/CD、DevOps

以下、個別の技術トレンドを「ソフトトレンドへの応答」として読み解いていきます。

モデル駆動ソフトウェア開発 ── 抽象化のレイヤーで複雑性を吸収する

何への応答か: 複雑性の爆発

エンジニアは要件モデル・設計モデル・コード・実行ファイルといった抽象度の異なる表現と日々格闘しています。
モデル駆動ソフトウェア開発(MDSD、別名 Model-Driven Engineering / MDE)は、
モデルを中心に置く考え方です。
コードへの変換は機械化することを目指します。

鍵となるのが ドメイン固有モデリング言語(DSML)
── 特定領域に特化したモデリング言語です。
UMLのような汎用言語よりも、領域の概念や制約を効率的に表現できます。

完全な実現にはまだ距離があります。
ただ「コードよりモデルを中心に置く」発想は、現実にも次のような形で浸透しています。

  • 低コードプラットフォーム
  • Infrastructure as Code
  • API仕様駆動の開発(OpenAPI、GraphQLスキーマファースト)

2020年代の文脈

生成AIによる「自然言語 → コード」の変換も、
MDSDの拡張形と捉えることができます。
「モデル」が「自然言語のプロンプト」になり、
「変換エンジン」が「LLM」になっただけ、という見方です。

テスト駆動開発(TDD) ── 設計と検証を結び直す手法

何への応答か: 創発的要件

テスト駆動開発(TDD)はコードを書く前にテストを書く開発スタイルで、
Red-Green-Refactorのループを回します。

TDD自体はエクストリームプログラミングの中核手法として2000年前後から広まった古い概念です。
ただ、創発的要件の時代に改めて重要性が増している、というのが個人的な感覚です。
要件が変わるたびに「壊れていないか」を即座に確認できるテストスイートが、変更への安心感と「生きた仕様書」を同時に提供してくれます。

2020年代の文脈

AI生成コードのレビュー観点として、
TDDの「テストファースト」発想がより重要になりつつあります。
LLMが書いたコードを「テストを通すかどうか」で機械的に検証できる仕組みは、
AI時代の品質担保の一つの形です。

協調開発 ── 分散時代の開発スタイル

何への応答か: グローバル協働

協調開発は、グローバル分散したチームが情報共有とコミュニケーションを軸に開発を進める方式です。
単なる「リモートワーク」ではなく、
開発プロセス自体が情報共有と意思決定を中心に再設計される点が特徴です。
オープンソース開発はその先進例で、
何百〜何千の開発者がプルリクエストとコードレビューと議論で動いています。

DevOps、SRE、プラットフォームエンジニアリングといった現代の概念は、
この延長線上に広がってきました。
いずれも、開発・運用・ビジネスサイドが一体で動くための仕組みです。

探索ベースSE ── ソフトウェアを「育てる」アプローチ

何への応答か: 複雑性の爆発

探索ベースソフトウェアエンジニアリング(SBSE)は、SEの問題を「より良い解を探すゲーム」として定式化し、近似的な探索アルゴリズムで解く分野です。
代表的な手法のひとつが 遺伝的アルゴリズム ── 生物進化を模倣し、突然変異・交叉・選択を繰り返しながら良い解を探す手法です。

人手では対応困難な規模の問題を機械が「育てる」ように探索します。

  • 実行時間・メモリ消費・エネルギー消費の自動最適化
  • リファクタリングの自動推薦
  • クラッシュ後の自動修正案生成、自己修復ソフトウェア

2020年代の文脈

生成AIによるコード補完・リファクタリング推薦・バグ修正提案も、
SBSEの考え方と地続きです。
「機械が候補を生成し、人間が選ぶ」という協働モデルは、
探索的アプローチの現代版と捉えられます。

要件とツールの方向性

要件エンジニアリングもツール側も、共通して「最初に決めて固める」から「使いながら磨き込む」方向へ重心が移っています。

領域 旧来の重心 現在の重心
要件側 仕様書を書き切ってから開発に入る 自然言語処理による要件抽出、ゴール指向・価値駆動の要件定義
ツール側 スタンドアロンの統合開発環境 コラボレーションを支える協働プラットフォーム、AIアシスタント統合のIDE

AIは「銀の弾丸」になるか

AIは現在最も注目されている「銀の弾丸」候補です。
複雑性管理にも、創発的要件にも、グローバル協働にも、AIが応答策として登場します。

領域 AIの応答
複雑性の爆発 大規模リポジトリのマイニング、欠陥予測、コード生成
創発的要件 自然言語からの要件抽出、自動テスト生成
グローバル協働 コードレビュー支援、ドキュメント生成、翻訳

では本当にAIは銀の弾丸なのか。
その前に、AIが扱う対象 ── データ・情報・知識・知恵 ── のスペクトラムを整理しておきます。
どの階層で使うかで、AIの得意・不得意が大きく変わるからです。

データ・情報・知識・知恵のスペクトラム

ソフトウェアが扱う対象は、抽象度の異なる4階層に整理できます。

[データ]   ──→ [情報]    ──→   [知識]      ──→    [知恵]
 生のファクト   文脈の中で       異なる文脈の        知識から
 の集まり      意味を持った       情報を関連付けた    一般原則を
              データ            意味のある関係      抽象化

アクセス数の例で4階層を並べると、次のようなイメージです。

  • データ: 「1月のアクセス数120万」
  • 情報: 「前月比5%増」
  • 知識: 「広告とSNS連携の組み合わせが新規流入に効いている」
  • 知恵: 「短期的な数字よりリピート率の構造変化に投資すべき」

1950年代のソフトウェアは「データ処理」と呼ばれ、今は「情報技術」と呼ばれます。
次の段階は 知識発見(Knowledge Discovery) ── データから有用な関係性を抽出する学際的な領域です。
知恵に至るまでの自動化はまだ遠く、重要な判断ほど人間の介在が必要、というのが個人的な見立てです。

AIとMLがSEに浸透する

AI/ML技術はSEのほぼ全領域に入り込んでいます。

領域 具体例
コード生成 関数本体・定型コードの自動生成
欠陥検出 静的解析・パターン認識による不具合発見
テストケース生成 クラッシュ条件の探索、入力空間の網羅
コードレビュー補助 スタイル・パターン違反の検出と改善提案
リポジトリマイニング GitHubなどの大量のコードから共通の問題と解を発見する
リファクタリング推薦 設計逸脱の検出と修正案提示

AIシステム自体の開発を支援する Intelligent SE ── AIとSEを組み合わせる学術領域 ── も確立されてきました。

2020年代の文脈

生成AIアシスタント(GitHub Copilot、Cursor、各種コーディングAIなど)は、
コードの「書き手」としてエンジニアの隣に座る存在へとなりました。
公開されているコードリポジトリからの知識抽出を、
リアルタイムにエンジニアの作業に組み込む形と捉えられます。

一方で、AIに任せきれない領域も明確にあります。
次のような領域は、AIが「候補」を出せても「決定」までは引き受けにくいと感じます。

  • ビジネス目標の解釈と要件への翻訳
  • アーキテクチャ判断の妥当性評価
  • 倫理的判断
  • 失敗時の責任所在の判断

楽観と悲観のあいだで

計算技術の指数的な進歩には、強い楽観と強い悲観の両極の予測があります。

立場 主な見立て
楽観 いずれ計算技術は人間の脳機能をシミュレートできるレベルに達し、人と機械の境界が薄くなる
悲観 強力な自律技術(AI、遺伝子工学、ナノテクノロジーなど)が人類を危険にさらす可能性がある

重要なのは、どちらが正しいかを当てることではなく、
技術の力と限界を冷静に評価し続けることだと感じています。
AIは「強力な道具」であって、目的設定や責任の引き受け方までは引き受けてくれません。

誰が未来を決めるのか ── エンジニアの責任と倫理

技術が決めないなら、誰が未来を決めるのか。
ここから先は、エンジニア自身の判断軸の話に切り替わります。
ソフトウェアが社会の広範囲を支える時代だからこそ、
業界には倫理綱領のような共通の判断軸があり、
それを自分の言葉に翻訳しておく価値があります。

このセクションでは次の流れで考えていきます。

  • なぜソフトウェアエンジニアに責任が必要か
  • 業界共通の判断軸(ACM/IEEE-CSの倫理綱領)
  • 個人レベルの行動規範と現代固有の論点
  • 明日から始められる小さな1ステップ

なぜソフトウェアエンジニアに責任が必要か

ソフトウェアは、製品やサービスが競合と区別される決定的な要素
── 差別化要因(differentiator)── になっています。
「あれば便利な機能」ではなく「ないと事業が成立しない要素」です。
さらにソフトウェアは情報という重要な資産を生み出し、ガイドとして、商品として、必需品として人々の生活と判断を支えています。

ソフトウェアの影響力を「両面」で並べると、責任論の出発点が見えてきます。

領域 良い方向の影響 悪い方向の影響
命・健康 医療診断補助、緊急通報 誤診、医療機器の不具合
事業 新しいサービスの創出 障害による事業停止
社会の意思決定 データに基づく政策立案 偏ったアルゴリズムによる判断歪曲

技術が広く深く影響するからこそ、作る側に責任が発生する
── これが綱領の前提にある考え方です。

ACM/IEEE-CS ソフトウェアエンジニアリング倫理綱領 ── 業界共同の判断軸

ACMとIEEE-CSの合同タスクフォースが策定した ソフトウェアエンジニアリング倫理綱領 は、業界共同の判断軸として広く参照されています。
核心は「ソフトウェアエンジニアは公共の利益と整合する形で行動すべき」という一文です。
8つの原則は優先順位ではなく、
互いに補完する横断的なテーマとして読むのがよさそうです。

原則 一言要約 日常の例
公衆 公共の利益と整合する行動を取る セキュリティ脆弱性の隠蔽をしない
クライアントと雇用主 依頼者・雇用主の利益を公共の利益と整合する範囲で守る 機密保護と適切な開示の両立
プロダクト 高い専門基準のプロダクトを作る 既知の不具合を放置しない
判断 専門的判断における誠実さと独立性を保つ 上司の指示でも安全性を犠牲にしない
マネジメント 倫理的なマネジメント方針を採用・推進する 無理なスケジュールで品質を犠牲にしない
専門職 専門職の信頼性を高める 業界全体の評判を意識する
同僚 同僚に対して公正で支援的に振る舞う レビューやペアプロで支え合う
自己 生涯学習で自分の専門性を高める 新技術の学習を続ける

最初は「倫理綱領」と聞いて「形式的な誓約書」のようなものを想像していましたが、実際に読むと「日々の判断のたびに参照できる軸」だと感じるようになりました。

個人レベルの行動規範 ── 抽象を実務に落とす

8原則は抽象度が高いので、個人レベルでは具体的な行動規範に落とし込まれています。

カテゴリ 行動規範
古典的(やってはいけないこと) データの盗用、プライバシー侵害、悪意あるハッキング、ウイルス・ワームの作成拡散、計算技術を差別・ハラスメントに使うこと
現代固有の論点 AI生成コードの責任所在(ライセンス・脆弱性・誤りの帰属)
学習データの権利と帰属(自他のコードがLLM学習に使われることへの同意)
プロンプトインジェクション対策(AIへの新しい攻撃面)
自律システムの判断バイアス(検索・レコメンドの偏見の検出と是正)
サプライチェーンセキュリティ(SBOM、脆弱性開示)

ACMが2018年に大幅改訂した ACM Code of Ethics は、
AIや自律システムの倫理にも踏み込んでいます。
現代の論点を考えるときの参照点として活用できます。

業界の議論 ── 法と倫理のせめぎあい

ソフトウェア業界では「開発者をどこまで法的責任から保護するか」が継続的なテーマになっています。論点を整理すると、おおよそ以下の対立軸に集約されます。

立場 主張
保護を強める側 欠陥の非開示や損害免責などの法整備で、過度な責任追及から開発を守るべき
責任を求める側 過剰な保護は「高品質なソフトを作る責任」から間接的に逃がすことになり、結果として品質低下を招く

AIや自律システムが日常的な意思決定に関わる現代では、その内部に埋め込まれた価値判断(何を最適化するか、何を許容するか)への注目が高まっています。
検索やSNSのアルゴリズムが持つバイアスをどう測定するかも、エンジニアの責任の延長線上にあるテーマです。

明日から始められる小さな1ステップ

倫理綱領は抽象的に見えますが、実務に落とすとシンプルな問いに変換できます。

  • 今追いかけているトレンドは、ハイプサイクルのどの段階にいるか自分なりに位置づけてみる
  • 担当しているシステムが応答している「ソフトトレンド」は何か、を一度言語化してみる
  • 自分のチームの判断や設計を、8原則のうち1つ(特に「公衆」「プロダクト」「判断」)に照らして確認してみる
  • 「AI生成コードの責任所在」について、「使った人」「提供したサービス」「学習元のコード作者」の線引きの自分なりの答えを持っておく

まだ業界として答えが定まっていない論点

  • 生成AIアシスタントが書いたコードの責任所在は、まだ法的にも倫理的にも未確定
  • 自律システム(自動運転、医療診断補助、信用スコアリング、HR採用フィルタなど)の判断バイアスを測定・是正する手法は、業界共通のものになっていない

これらは「正解を待つ」のではなく「自分なりの仮説を持って関わる」領域だと思っています。

おわりに

最後に残るのはシンプルな結論です。
「銀の弾丸」は技術ではなく、人間の判断と責任にあります。

整理してみて、自分の中で輪郭が変わったのは次の3点でした。

  • 表層の技術は10年で大きく変わっても、その下の原則・考え方・倫理は数十年単位でゆっくりとしか変わらない
  • 技術トレンドの上流には「ソフトトレンド」があり、そこを見ると個別の技術選定が落ち着いて判断できる
  • AIや自律システムの時代だからこそ、判断と責任の引き受け方は「技術側」ではなく「人間側」に残り続ける

技術トレンドを「銀の弾丸」として崇めることでも、「どうせまた廃れる」と冷笑することでもありません。
ハイプサイクルとソフトトレンドのレンズで冷静に位置づけ、エンジニアとしての判断と責任で選び取る ── そういう向き合い方をしていきたいと感じています。

未来を切り拓くのは技術ではなく、それを使う人 ── 自分自身も含めて。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?