Skanda FrameworkはC#で作成されたDIコンテナとAOPをサポートする設計書一体型のオープンソースフレームワークです。

はじめに

Skanda Project について

Skanda は韋駄天という意味です。
私達は、 .NET Framework と SQL SERVER によるシステム開発でリーンソフトウェア開発で言われている「ムリ・ムラ・ムダ」をなくすことに取り組んでいます。

「ムリ」をなくす。
あなたのプロジェクトのプロジェクトマネージャーは、プロジェクトが遅れだすと何か対策をしていますか?
おそらく人員を追加してさらにプロジェクトを遅らせるか、今いる人間で犠牲者が出るまで突撃を繰り返せと叫んでいるのではないでしょうか。
あなたは「必要なときに必要なスキルを持った人間が必要な数だけいればプロジェクトは遅れない」と言いたかったはずです。
それではプロジェクトが遅れないような対策は無いのでしょうか?
誰にでも書くことが出来る設計書があり、誰にでも実装できるインターフェースを持った基盤(フレームワーク)があり、
その設計書と基盤(フレームワーク)が一体になり実装をサポートしていたら、1度でも実装経験のあるエンジニアは有効な対策なのではないでしょうか。

「ムラ」をなくす。
あなたのプロジェクトのスキルセットは、技術に精通している人からプログラミングを始めて1年未満の初心者まで様々であり、
出来上がったコードはスキルセットに大きく依存して、製品精度に大きくバラツキが出ているのではないでしょうか。
Skanda Framework はDIコンテナが基礎になっていて、オブジェクト間は互いに疎結合で、インターフェース契約に基くコーディングが行われるため、
初心者からベテランまで出来上がったコードがスキルセットに大きく依存することが無いようになっています。

「ムダ」をなくす。
あなたのプロジェクトの設計書は、他の会社のエンジニアが見ればそのまま実装できるようになっていますか?
もし、そうなっているとすれば実際は設計書を書くために1度実装されているはずです。
もし、そうなっていなければレビューのためだけの設計書を書いていて、実際は実装に使えないものになっているはずです。
あるいはアジャイル開発の名を借りて、設計書を書かずに実装を進めてしまい、結果としてソースコードが仕様書になっているのではないでしょうか。
このように考えたことはありませんか?設計書と実装が繋がっていて、設計書から設定ファイルが出力されて、それがそのまま実装に使えたなら。
もし、それが実現できたなら高いモチベーションで、進んで設計書を書くのではないでしょうか。

Skanda Project の目的

私達は、.NET Framework と SQL SERVER によるシステム開発で、開発プロセス・見積・設計書・実装の標準化を目的にしています。

企業の究極の目的
企業の究極の目的は利益を上げることである。(ザ・ゴール)
あなたが経営者であるか管理者であるなら、行われているプロジェクトが利益を出しているかは最も重要な関心事だと思います。
最先端のアーキテクチャを使用し非常によい設計をして、エンジニアが満足できる結果を出したとしても、それは企業にとってよい結果にならない場合があります。
Java であっても PHP であっても Perl であっても、そして .NET Framework であってもプロジェクトの成功にアーキテクチャは関係ありません。
迷走するプロジェクト、暴走するエンジニアを的確に制御し、利益を上げるプロジェクトにすることが重要なはずです。

開発プロセスの標準化
あなたのプロジェクトはウォーターフォール型でしょうか?あるいはアジャイル型でしょうか?
いずれにせよ、作るべきものは要件合意された仕様書を基に、設計されたものから実装されるべきであるはずです。
そして、作るべきものが明確になったうえで見積を行っているでしょうか?作るべきものが明確にならなければ、正しい見積は行えないのです。
Skanda Project ではフレームワークを使用した、開発プロセスを提唱し、その標準化を目的としています。

ドキュメントの標準化
あなたのプロジェクトの設計書は、他のプロジェクトあるいは他の会社のエンジニアが理解できるでしょうか?
もっと言うと、半年後にクライアント(エンドユーザー)から、仕様の追加あるいは仕様の修正があった場合に対応できますか?
そのような依頼があった場合、仕様の追加あるいは修正のために設計書を見直すことはほとんど無いはずです。
Skanda Project ではフレームワークとドキュメント(設計書)を一体化させることによって、その標準化を目的としています。

共通基盤の開発
あなたのコードをメンテナンスすることになる人が、あなたの住所を知る強烈なサイコパスになりうるのを常に想定してコーディングしなさい。(Rick Osborne)
そもそも、デバッギングはコーディングよりも2倍難しい。従って、あなたが可能な限り賢くコードを書くとしたら、
定義からして、あなたはそれをデバッグできるほど賢くない。(Brian Kernighan)
あなたが優秀なエンジニアだとしても、多かれ少なかれそのコードは思い込みの上で書かれていると認識すべきです。
Skanda Project では多くのエンジニアの知識体系を使用したオープンソースの共通基盤の開発を目的としています。

Skanda Project の活動

私達は .NET Framework と SQL SERVER によるシステム開発で Skanda Framework が広く利用されるための活動を行っています。
Skanda Framework が広く利用され、多くのフィードバックを受けることによって、より精錬されたフレームワークとして存在したいと願っています。

ソフト製品の製作者が自分たちの手をかけた製品を見るときには、悪いところは目に入らない。機能や特徴がいかに豊富かは見える。
それがとんでもなく使いにくいとか、使い方を覚えるのにうんざりするほど時間がかかるとか、あるいはそれを毎日の暮らしの中で使わなくてはならない人々を、
軽んじてバカにするものだということについては、無視してしまうのだ。(Alan Cooper)

Skanda Framework の開発
.NET Framework と SQL SERVER によるWebアプリケーション、及びWindowsアプリケーションのための共通基盤(Skanda Framework)の開発を行っています。

標準化ドキュメントの作成
Skanda Framework を使用したシステム開発で、生産性を上げるための標準化ドキュメントの作成を行っています。

サポート&サービス
Skanda Framework が広く利用されるための導入、及び技術サポートを行っています。詳しくはサポート&サービスのページをご覧ください。

Skanda Project への参加

Skanda Project では Skanda Framework 開発に参加するエンジニアを募集しています。

参加資格
.NET Framework を使用した開発をしたことのある、悪意のある組織に所属していない、悪意の無い会員登録済のエンジニアであれば誰でも参加可能です。

参加料金
Skanda Project に参加するために料金が掛かることは一切ありません。

参加報酬
Skanda Project に参加して、不具合を修正したり、新たな機能を追加したり、新たに開発した機能を寄贈したとしても、報酬を得ることは出来ません。
プロジェクトに積極的に参加していただいたエンジニアで、貢献度が高いエンジニアに対しては、導入サポートやシステム開発の案件を優先的に紹介させていただきます。
紹介された案件を受託するかはご本人の自由で強制されることはありません。またプロジェクトに参加したとしても案件の紹介を約束するものではありません。
※個人・法人を問わずに貢献度の高い順に紹介させていただきます。

参加方法
Skanda Project への参加は自由参加方式で会員ページの課題一覧の任意の課題を選んで対応することになります。
ソースコード及びドキュメントをダウンロードして課題を修正しテストを行ったものを添付し、コミッター宛に対応内容を記載したメールを送信するだけです。
(コミッターによってプロジェクトに対する貢献度が管理されます。)
修正依頼がメールで送信される場合がありますが、対応することを希望しなければ、対応を強制されることはありません。

結果責任
Skanda Project に参加して課題を修正した結果に誤りがあったとしても、その結果に責任を負う必要はありません。

その他(お問合せ等)

Skanda Project に関する疑問やお問合せについて。

Skanda Framework の利用
Skanda Framework を利用するには、会員登録ページで Skanda Framework のライセンスに同意して会員登録を行うと利用可能になります。
コミュニティへの参加を希望せずに Skanda Framework を使用したい場合はライセンスだけに同意することでフレームワークを使用することが出来ます。
コミュニティへの参加を希望しない場合は標準化ドキュメントのダウンロード、掲示板、及び課題一覧などの機能は使用できません。

コミュニティへの参加
Skanda Project のコミュニティへ参加するには、会員登録ページで Skanda Framework のライセンス、及び会員規約に同意して会員登録を行うと参加可能になります。
コミュニティへ参加した場合は Skanda Project から提供される全てのソースコード、及び標準化ドキュメントがダウンロード可能です。
また、コミュニティの参加者同士の情報交換のための掲示板や、不具合や要望の報告や一覧を見ることが可能です。
コミュニティへ参加した場合でも、不具合報告や掲示板への書き込みは自由で、特に強制されることはありません。

よくあるお問合せ
Skanda Project に関するよくあるお問合せについてはQ&Aのページをご覧ください。

技術的なお問合せ
Skanda Framework の技術的なお問合せについては、会員ページの掲示板をご利用ください。
掲示板では解決しない問題はサポート&サービスをご利用ください。

その他のお問合せ
その他のご不明な点に関するお問合せは、その内容を明記してSkanda Project 事務局宛にメールを送信してください。
Skanda Project 事務局は回答を保障いたしませんが、可能な限り対応させていただきます。