大きな会社には通常、問題があり、スタッフとお金が不足しているため、従業員が望むすべてのプログラムを書くことができない(時間を節約し、プロセスを最適化する)ことができない。
次に、(少なくとも一部の)コーディング経験を持つ一部の人々(または安価な学生/インターンなど)が隠しプログラムを作成します。状況によっては、これらのアプリケーションの重要性が高まり、1人のユーザーから部門全体に広がる可能性があります。
次に重要なポイントがあります。誰がアプリケーションを保守し、新しい機能を追加するのか、などです。そして、このアプリは重要です。 IS必要です。しかし、インターンは会社を去りました。それがどのように機能するかは誰も知りません。あなたは、たくさんのソースとある種のドキュメントしか持っていません。
IT部門外で臨時に行われるアプリケーション開発を試みたり、制御したり、禁止したりすることは理にかなっていますか(Excelマクロなどのマイナーなものを除いて)?
私は、会社に働いていて、提供したすべてのアプリが「このデータをExcelにエクスポートできますか?」
しばらくして、私は彼らがすべてのExcelエクスポートに取り付かれる理由を知る必要があると判断しました。多くの部門には、Excelのエキスパートである1人の人がいて、すぐに役立つデータ分析アプリを作成できることがわかりました。これらのアプリは山火事のように部門全体に広がり、私たち技術者はそれらが存在することすら知らなかった。
なぜ最初に来なかったのですか?技術チームがやるべきことが多すぎるという評判があり、彼らがそれを要求した場合、彼らは(運が良ければ)6か月後にキューに入れる可能性があるためです。
それは不当な非難ではなく、Excelアプリのサポートを依頼されたこともなかったため、問題だと誰も思っていませんでした。これらのExcel開発者が去ったとき、彼らは常に他の誰かを見つけてそれを拾い上げることができました。
それは、私たちが誤って優先順位を付けていたことを意味し、重要な作業が行われていなかったと主張することができます。しかし、これにより、より高額な開発者がより困難な作業をすることから解放されたと主張します。それは何を傷つけますか?
今、私はwould開発チームの外部で書き込まれているデータベースを更新するソフトウェアを禁止します。そして、私は開発チームの外で書かれたアプリのサポートを拒否します。しかし、私はすべてのソフトウェアがビジネス自体によって書き込まれることを禁止するつもりはありません。そうするためにそれらに力を与えるためにデータエクスポートを喜んで記述します(それが彼らが見る必要のないデータを公開しない限り、明らかに)。
私は人々がここで一般的なポイントを見逃していると思います:
進行中のすべてのカスタム開発が気に入らない場合は、間違った問題を解決することを禁止します。代わりに、許可されていないことを伝えるだけでなく、なぜITを回っているのかを尋ねる必要があります。あなた(IT)は彼らの仕事をより良くするために存在していること、そして人々がソフトウェアを使用していないことを覚えておいてください。
これらのアプリが最初に作成されるのはなぜですか?
私が見たすべてのケースで、共通の理由があります:
ビジネスグループは、同じニーズが会社全体のコンテキストで優先されるよりも、自分のニーズを優先します
マーケティングはマーケティングの責任のみを負うため、彼らの目標に利益をもたらすイニシアチブは彼らにとって重要であるように見えますが、他のグループにはふさわしくないと考えられ、ITなどの限られたリソースに関しては優先順位が低くなる傾向があります。優先順位付けは、共有リソースを使用したい場合にのみ機能します。プロジェクトを完全に自分の部門内に保持する場合は、部門の責任者だけが予算とスケジュールを気にする必要があります。
この種の開発を禁止する理由はありません。理由はあります。これにより、共有リソース(主にIT)に対する制約が緩和され、各グループが自分の問題を解決できるようになります(高度なExcelに精通している人々はかなり一般的であるため)これは一般的な問題であるため、ほとんどの部門で少なくとも1つは問題があります)。
ただし、これらのアプリケーションから発生する問題を解決したり、元の開発者が退職した後にサポートしたりすることはできません。別の投稿された言及が示すように、これはビッグボスがあなたにサポートを要求することを止めませんが、そこにある種類のカスタムアプリケーションまたはプロセスについての感触を保つならば、何かが重要になったときの感触を得ることができますそれを「社内」にするために関与する必要があるかもしれません。また、何かがITの制御下にあるシステムに接続して変更している場合、中央システムのセキュリティと整合性を確保するためだけに、ITが関与する必要があります。ただし、ユーザーのデスクトップに限定されている場合は、なぜ必要性を感じるのでしょうか。それを禁じる?
しかし、ここで覚えておくべきことがあります:ITの外部で開発されたすべてのカスタムアプリケーションは、ITが満たしていないニーズに対応しています。彼らが満たされていない正当な理由があるかもしれません-会社の優先順位ではない、非常に特殊な問題、他のオプションほどよくない、IT担当者が知らないカスタム言語など-そしてITの関与の欠如は正当ですが、これらのソリューションは、一部の部門がITで満たすことができない(または満たさない)必要があったために作成されました。
彼らが彼らの問題を解決するのを助けるよう努めてください、そしてあなたが時間またはリソースを持っていないなら、彼らが彼ら自身でそれらを解決するようにしてください。人々があなたのビジネスから遠ざけることを唯一の目的として、急な学習曲線を持ついくつかの言語を義務付けることは、ほとんどのビジネスユーザーがITを持っていると認識しているエリート主義的な態度を強化するのに役立ち、結局、そのようなエリートの態度は、ユーザーがITに取り組むことを恐れており、ITが自分のニーズや欲望を理解していないと確信しているため、同じ問題の詳細。関係を開きます-彼らが必要なものを理解することは、彼らがあなたの周りを回らないようにする唯一の方法です。
IT部門に無能な人々が含まれている企業の場合も考慮する必要がありますが、非表示のアプリは、企業内に非開発者の仕事を持つ熟練した開発者によって作成されます。私の経験では、これらのケースは非常に頻繁です。
ソフトウェア開発者と会計士の二重のプロファイルがあると想像してください。これは給料の良い仕事を得る機会だったので、あなたは会計士として雇われました。同僚(そして今はあなた)が、プログラムによって数秒で実行できる反復的な作業に何時間も費やしていることをすぐにわかります。
あなたはすべての作業を行うアプリを書くために数晩を費やします。あなたはそれを個人のラップトップで同僚に見せれば、彼らはそれを非常に便利だと感じます。会社のPCにインストールしたいが、IT部門の同意が必要です。あなたはそれを要求しますが、彼らはあなたのアプリケーションをサポートしないため、彼らはそれを拒否します。
ばかげていませんか?
この特定のケースを除いて、サポートに関する問題は、多くの企業がallソフトウェアで遭遇する問題とそれほど違いはなく、IT部門内で書かれたものでも: IT部門はベストプラクティスを実施していません。コードは不適切であり、文書化されていません。メンテナンスに関心がなく、何年も前に去った経験のない人々によって書かれます。
結論として、主な質問は収益性です。 IT部門が、ソフトウェア開発の最も基本的なルールを理解していない店員が開発したアプリを維持するように求められた場合このタスクがどれほど楽しいかは関係ありません。それが会社にたくさんのお金をもたらすならば。または、物事を成し遂げるための最も安価な方法である場合は、最初から書き直します。
従業員は常に不正なコードを生成し、別の方法でそれを拡散する手段を持っているため、完全に制御することは決してできないと思います。したがって、いくつかの基本的なルールとプロセスを起草して実施し、いくつかのツールをセットアップしたら、それを過度に気にかけることはあまりありません。
このアイデアは、人々がこれらのルールを尊重し、これらのツールを使用することをできる限り魅力的にすることであり、新しいことを実行することを不可能にして、何も生成しないようにするのではありません。
多くの場合、非常に大規模な企業がこれを行っています。代表的な例としてGoogleが挙げられます。代表者は、会社全体で単一のSCMを使用しており、誰もが他のコードを監視および確認できるようにしています。
以下を実行することをお勧めします。
問題は技術の急増です。明らかに、YよりXを使用する方を好む人もいるでしょう。その場合、それらをアーキテクチャに適合させるのが難しくなります。しかし、それは不可能ではありません、そして彼らが彼らのコードが維持されることを望んでいるなら、まあ、それがちょうど1マイルであるならば、彼らはおそらく追加のマイルを得るでしょう。
また、より恣意的なスタンスをとり、言語LとスタックSのみを許可することを決定することもできますが、その場合、あちこちに不正なものが表示されるので、少し広げることをお勧めします。一部のCIシステムは、従業員が少しのグルーコードまたはいくつかの構成スクリプトを記述してそれらを適合させる場合、いくつかのプラグインで不思議に思います。
チームに気まぐれに行って、実験的なことでいくつかの小さな新しいプロジェクトを始める自由を与えることが重要です。それはそれらをつま先に保ち、あなたと同様にあなたはこれらの技術をあなたに問題を引き起こすまで永遠にスタックに留まるのではなく、それらを検討することをあなたに強制します。
したがって、ペットプロジェクトをテストするための独自のシステムをインストールできることを確認してください。ただし、ITについてそれについて話す習慣を身につけさせるようにしてください。
従業員がITへの電子メールリクエストを撮影する反射神経を発達させ、彼らのために何かをセットアップして対応できるかどうか尋ねるのがはるかに良いです。ほとんどの場合、彼らは辞退しますが、少なくとも、管理と担当者の概念があり、ITにさまざまなチームからの要求についてある程度の可視性を提供します。
プロジェクトがより重要な質量を拾ったら、再度リクエストでき、再検討されます。コミュニケーションが重要であり、開発者、コンサルタント、ITサポートスタッフ、またはコードを扱う誰かがチームを組んで協力する必要があります。彼らの誰もが迷子のプログラムを望んでいないので、それは皆の最善の利益になります。ルールを自分でバックアップしている場合は、ルールを適用する方がはるかに簡単です。
これらの「隠された」アプリケーションは、人々が実際のビジネス問題を解決するために作成するため、停止することはできません。あなたができることは、彼らがそれを「正しい」方法で行うのを助けることです。 「正しい」とは、アプリを起動したユーザーが去った後もアプリを維持できるようにすることです。 上または外 :で提案されている言語を使用することをお勧めします。このプロセスを詳細に文書化して、yahooが1年後に理解できるようにする必要があります。残しました。バージョン管理のセットアップ(およびその使用方法を示す)、wiki(実際に作業がどのように行われるかについて非公式なメモを残すため)、および簡単なバグ追跡システム。物事を本当にスムーズにしたい場合は、予備のサーバー(ある場合)に継続的な統合をセットアップします。
現在、すべてのビジネススクールがExcelを教えており、Excelは多くのビジネスコースで使用されている主要なツールであるため、Excel統合(または少なくともインポート/エクスポート)に対する大きな欲求が見られます。
Sarbanes-Oxleyおよび米国外の同様の法律とプライバシー法および内部で課されたプライバシーとセキュリティのプロセスおよびポリシーを組み合わせると、シャドウIT現象の抑制に使用できる「ハンマー」になります。
顧客または従業員の個人を特定できる情報(または取得したくないデータ)がこれらのスプレッドシートで循環し始めるとすぐに、事故が発生するのを待っています。
同様に、これらのskunkworks ITプロジェクトの1つがそのExcelスプレッドシートを取得して、ハッキングされた外部向けWebアプリの背後にあるデータとして使用するとすぐに、そのアプリを作成した人のオフィスにCIOとCEOが押し寄せます。結果が説明される週末。
そして、Fortune 500企業の数百(または数千)に及ぶこれらの取り組みを見てみると、企業には100を超える顧客の「マスター」データベースがあることがすぐにわかります。顧客は連絡先情報を1か所で更新したが、他の10か所ではまだ古くなっている、または情報が10のシャドウに分散しているため、大規模なパートナーとの取引量さえわからないと不満を感じ始めています。 ITデータベース。
これらすべてが、面倒なコンプライアンスと監査プロセスを引き起こしますが、これは誰にとっても楽しいことではありませんが、企業環境におけるITの生活の難しい事実です。
適切な戦略は、これを実行しているすべての部門を調べ、シャドウITへの投資を適切なITに移行するように主張し、ITが規模の経済を達成し、この作業を現在よりも効率的に行えることを主張することです。アドホック分散スカンクワークモデル。これは、そもそもIT予算の制約とデリバリーの速度によってスカンクワークが生じた環境では、売り難いものですが、監査/受託リスクと組み合わせると、適切な1対2のパンチが生まれます。
新しいアプリケーションを作成するかどうかの決定は、多くの場合、リクエストの費用便益分析に基づいています。だけでなく、ビジネスへの全体的な価値。利用可能なITリソース、要求の範囲、ビジネス目標、方向性など、他の多くの要因を考慮しながら、すべてを取り上げます。多くの場合、部門のマネージャー/ディレクターが妥当なROIを示さなかったか、単に確立されたプロセスに従っていないために、特定の部門の要求が拒否されます。
理由が何であれ、「IT部門」がスケープゴートであることがよくあります。たとえ、決定が彼らの制御の外にあったとしてもです。したがって、要求の拒否がIT部門に反映されていない場合でも、認識はしばしばまったく異なります。
それにもかかわらず、世界中のほぼすべてのビジネス組織で不正なアプリケーションが見つかります。よく書かれたものもあれば、よく書かれたものもあり、日の目を見たことのないコードが含まれています。
社内のお客様のニーズを満たすために、できる限りのことはすべきですが、できない場合もあります。それが起こるとき、彼らは彼らの問題に取り組むために他の場所を見るでしょう。
ITグループがプロジェクトに積極的に関与している場合は、標準への準拠を要求し、コンサルタントが内部コーディングガイドラインに従い、システムとのアプリケーションの相互作用とシステム(データベース、ネットワーク、ファイアウォールなど)に対する要求を理解するのに役立ちます。その関与がなければ、私たちは不足し、私たちの生産システムがSLAを満たしていない理由を解明するために多くの時間を費やします。
IT部門がそれらを認め、サポートするかどうかは、サポート、OLA、およびSLA IT部門が測定するコミットメント)の面で直接影響を与えることができます。
アプリケーションやスプレッドシートなど、これらの特別なツールの有効なニーズはほとんどありません。 IT部門には2つの選択肢があります。それらはイネーブラーまたはディネーブラーにすることができます。私の経験では、障害者は有効なビジネスニーズの邪魔になり、共通の敵になるために敗北します。一方、イネーブラーはビジネスを本当に助けます。
これは、部門が資金を提供する開発に自由な統治を与えるべきであるという意味ではありません。次のようないくつかの要件を適用する必要があります。
有効化には多くの利点があります。
ここに問題がある場合、それはIT部門にあります。
専門的なビジネス/ドメインの知識を持つ人々が自分のデータを操作および処理できるようにしても問題はありません。
IT部門はこれを認め、サポートする必要があります。再利用可能なインターフェースを提供し、ExcelやAccess DBなどの便利な形式でデータを配信し、柔軟なツール(COGNOS、Jasperレポートなど)を提供します。
IT部門はまた、その優先順位を再考する必要があります。これは、最新の方法論を実装したり、最もセクシーなハードウェアをインストールしたりするのではなく、ビジネスに貢献するためのものです。
多くの企業または企業内の部門が抱えている不満は、IT部門が邪魔をして、仕事をやり遂げたり、新しいことをしたりするのを難しくしていることです。これにより、ITポリシーによって制限されているかのように感じている部門が、自分の問題を解決しようとしています。コミュニケーションが鍵です。部門がITに取り組んでいる場合、実際に抱えているのはITの問題です。 ITを敵と見なすわけにはいきません。企業、特にIT部門は、お互いに対抗するのではなく、協力して取り組む必要があることを認識する必要があります。部門がITスタッフ(特に監視が必要なスタッフ)と連絡を取り、ニーズと彼らが自分の問題を解決するためにどのように取り組んでいるかを伝える場合、ITは少なくとも、問題を解決するのではなく、問題を解決するのに役立つオプションを持っています。危機が訪れたときの事実。 ITをループに保ちます。
これらは、次の理由で当社で禁止されています。
ITが忙しいときにユーザーにとってイライラする可能性があることを理解しています。ユーザーは「自分でやる」だけの傾向があるかもしれません。しかし、ITは、存在さえ知らないものに対して責任を負うことはできません。IT全体に責任を持つ人がいない場合、大きな問題が先にあります。
オタクの傲慢さ!
多くの場合、ビジネスユーザーはツールを使用して、IT担当者が理解していないことを実行できます。これは、彼らが本質的に悪いからではなく、彼らがビジネス、それがどのように機能するか、そして彼らがどのようにそれを機能させたいかを知っているからです。
たとえば、ソフトウェア会社は、市場データフィードへのアクセスを(コストのために)最適化するアプリケーションを開発しました。後付けとして、ユーザーがスプレッドシートを介して最新の株価にアクセスできるように、Excelプラグインを提供しました。 1年早送りし、私が働いていた会社のほぼすべてのトレーダーは、取引戦略をサポートするために1つ以上の非常に複雑なスプレッドシートを持っていました。時々彼らはマクロに問題を抱え、IT担当者の1人に助けを求め、ほとんど拒否されました(そして彼らはなぜビジネスが私たちを嫌っているのだろうと思っています!)。しかし、私は試してみて、さまざまな関数パラメーターと循環参照に関する技術的な問題を修正することができましたが、正直に言って、スプレッドシート全体が実際に行ったことの手がかりがほとんどなかったと言えます。それらがうまく組み合わされていなかったり、プログラムが不十分だったからではなく、トレーダーが達成しようとしていることの微妙さを理解するための知識や経験がなかったからです。さらに、これらのスプレッドシートの1つの機能を「適切な」プログラミング言語で標準のITプロジェクトとして複製するために、5人年以上のITプロジェクトを推定します。
私の会社がこのような状況で役立つ1つの方法は、言語にとらわれないことです。アプリ/プログラムを検討する場合でも、選択した言語(Java)である必要があります。一部のJQueryまたはjsについては、ルールを少し拡張する場合がありますが、重要なニーズに応える適切に構成されたアプリケーションである必要があります。あなたはおそらくポリシーシートを手渡されるだけなので、「私はこれを入手しましたPHPアプリをホストしてください)」と言ってはいけません。
それらが大きくなる前に物事をニップすることは重要です、彼らがあなたがそれを学習するために専念できる誰かを持っているか、それを書き直すことができたら、それを引き起こします。 2階の大きなかつらが決定したら、それが好きだと思うので、私の経験では、あなたはおそらくそれを取り除くことはないでしょう。
私はあなたと同一視せざるを得ませんでした。あなたが説明する問題は、文化、言語、大陸にまたがる普遍的な問題のようです。
あなたができること:
データベースアカウントの作成を制限する、上司の承認を求めます。ローカルマシンをデータベースサーバーとして使用するか、アプリをスタンドアロンで作成するように強制すると、その有用性が大幅に低下します。
インターン ITに関連するキャリアのすべてをITを通じて契約のみにする。
制限 OSポリシー経由ソフトウェアのインストール。すべてのソフトウェアのインストールは、ITヘルプデスクを通じて行われる必要があり、上司の承認が必要です。そうすれば、MS Access、PHP、Visual Basicなどのインストールは、気付かれずに通過するのが難しくなります。
ポリシーを発行するサポートを受けるためには、すべての新しい開発は、たとえばJava、C#、C++など、または急な学習曲線。そうすることで、「プログラミングの一定の知識」を持つ人々の世界を混乱させます。
要件企業のITニーズを反映したものであるため、人々は会社周辺の「Excelソリューション」を確認する必要があります。
データウェアハウスと、最終ユーザーフレンドリーなデータマイニングおよびレポートツールの実装。そうすることで、カスタムメイドのインターンで書かれた小さなアプリの必要性を減らすことができます。
しかし:あなたが行うことは1つではありませんビッグチーフからの電話を圧倒し、ITマネージャーに電話して、インターンが作成したアプリをサポートするように依頼します。