IT業界における多重下請け構造の問題点と解決策


IT業界における多重下請け構造とは、発注者からシステム開発を受注した元請け企業が仕事の一部を2次請け企業へ外注し、2次請け企業が受注した仕事の一部を3次請け企業へ外注し、3次請け企業が受注した仕事の一部を4次請け企業へ外注し・・・・・・と仕事を外注企業へ下ろしていくピラミッド構造の事をいう。
serkai-piramid-giza-3big
通常、元請け企業は要件定義等の上流工程を担当し、2次請け企業は設計・実装などの下流工程を担当する。下請け企業は自社で賄えない業務を孫請け企業に外注するという事を、3次、4次・・・と繰り返し、多いときには7次請け企業まで存在する。

多重下請け構造には、次の3つの問題点があると言われている。

1.価値の高い労働に対して低い賃金を与える逆転現象:1つ下の層に所属する労働者の賃金はマイナス5%~30%になり、価値の高い労働をしても、下の層に所属していると賃金に反映されない。

2.労働者を交換可能な消耗品として扱う:実装工程では、作業レベルを誰でもできる単純作業に落とし込み、実装工程の労働者を交換可能な消耗品として扱っている。また、複雑な機能については、プログラマが詳細設計と実装を同時に行なっているため、有能なプログラマに仕事が集中して使い潰されるパターンが多発する。

3.違法の可能性:多重派遣は、中間業者による労働搾取につながることや、派遣元・派遣先の企業と労働者に対する責任の所在が不明瞭になるため職業安定法第44条、労働基準法第6条(中間搾取の禁止)で禁止されている。業務請負労働者に対して、発注者が指揮命令を行うと多重派遣(違法)になる。常駐開発では、発注側と請負側のエンジニアが同じチームで作業をすることも多く、事実上「多重派遣」状態になってしまう可能性を否定できない。


パソコンに使われているCPUの消費電力を比較する


パソコンに使われているCPUの消費電力を比較すると、次のようになる。

 
CPU クロック ソケット 消費電力 発売日
Pentium3 1.4GHz 370 32W 2001/06/30
Pentium4 3GHz 478 80W 2002/01/08
Pentium4 3GHz 478 89W 2004/01/01
Pentium4 3GHz LGA775 86W 2006/01/05
Core2duo 2.8GHz LGA775 65W 2009/02/08
core i3 3.0GHz LGA1156 73W 2010/01/08
core i3 2.5GHz LGA1155 35W 2011/02/20
core i3 3.5GHz LGA1155 35W 2012/09/02
core i3 3.0GHz LGA1150 35W 2013/09/01
core i3 3.3GHz LGA1150 35W 2014/05/11
core i3 3.3GHz LGA1151 35W 2015/10/30
core i5 3.2GHz LGA1150 65W 2014/05/11
core i5 2.7GHz LGA1151 35W 2015/09/02
core i7 3.2GHz LGA1150 65W 2014/05/11
core i7 2.8GHz LGA1151 35W 2015/09/02

800px-Intel_core_i7_940_bottom_R7309480_wp


確率の問題


あるバラエティ番組の一場面、
3つの箱の中に1つの「アタリ」と2つの「ハズレ」がランダムに隠されている。
3つの箱のうち1つを選んでアタリとなる確率は1/3となる。

ここで、回答者が3つの箱のうち1つを選んだあとに、司会者が回答者の選択しなかった2つの箱のうちハズレが入っている1つの箱を開示する。
すると、回答者にとって、最初に選んだ1つの箱がアタリの確率は1/3、残りの1つの箱がアタリの確率は2/3となる 。

ここで、先ほど開示したハズレが入っている1つの箱を隠しておく。
すると、UFOが飛来してETが降りてきた。
ETが、2つの箱のうち1つを選ぶ。
ETが選んだ箱がアタリの確率は1/2となる。


CentOS7インストールDVDを作成する手順


CentOS7インストールDVDを作成する手順は次のようになる。

1:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/ からCentOS-7-x86_64-DVD-1511.isoをダウンロードしてWindowsパソコン(DVDrw)に保存する。

2:http://forest.watch.impress.co.jp/library/software/infrarecord/ からir053.exeをダウンロードしてWindowsパソコン(DVDrw)に保存する。

3:Windowsパソコン(DVDrw)にダウンロードしたir053.exeを実行してInfraRecorder(DVDライティングソフト)をインストールする。

4:Windowsパソコン(DVDrw)のDVDドライブに空のDVDディスクをセットする。

5:Windowsパソコン(DVDrw)にインストールしたInfraRecorderを実行して、WriteImageボタンを押し、イメージファイルとしてCentOS-7-x86_64-DVD-1511.isoを指定する。
3f59f19fe10167a19a271246a21ae2f6

6:表示された書き込みダイアログのOKボタンを押す。

7:DVDへの書き込みが完了すると、イメージ書き込み中ダイアログのOKボタンが表示されるので、このOKボタンを押す。

8:Windowsパソコン(DVDrw)のDVDドライブからDVDディスクを取り出し、CentOS-7ラベルをはる。

9:CentOSをインストールするパソコンのDVDドライブにDVDディスク(CentOS-7)をセットする。

10:CentOSをインストールするパソコンを再起動させ、F2またはF12キーを押し続けて起動メニューを表示させる。

11:起動メニューでDVDドライブから起動するように設定する。

12:CentOS-7のインストール画面が表示される。


CentOS6.8インストールDVDを作成する手順


CentOS6.8インストールDVDを作成する手順は次のようになる。

1:http://ftp.riken.jp/Linux/centos/6.8/isos/i386/ からCentOS-6.8-i386-bin-DVD1.isoをダウンロードしてWindowsパソコン(DVDrw)に保存する。

2:http://forest.watch.impress.co.jp/library/software/infrarecord/ からir053.exeをダウンロードしてWindowsパソコン(DVDrw)に保存する。

3:Windowsパソコン(DVDrw)にダウンロードしたir053.exeを実行してInfraRecorder(DVDライティングソフト)をインストールする。

4:Windowsパソコン(DVDrw)のDVDドライブに空のDVDディスクをセットする。

5:Windowsパソコン(DVDrw)にインストールしたInfraRecorderを実行して、WriteImageボタンを押し、イメージファイルとしてCentOS-6.8-i386-bin-DVD1.isoを指定する。
3f59f19fe10167a19a271246a21ae2f6

6:表示された書き込みダイアログのOKボタンを押す。

7:DVDへの書き込みが完了すると、イメージ書き込み中ダイアログのOKボタンが表示されるので、このOKボタンを押す。

8:Windowsパソコン(DVDrw)のDVDドライブからDVDディスクを取り出し、CentOS-6.8ラベルをはる。

9:CentOSをインストールするパソコンのDVDドライブにDVDディスク(CentOS-6.8)をセットする。

10:CentOSをインストールするパソコンを再起動させ、F2またはF12キーを押し続けて起動メニューを表示させる。

11:起動メニューでDVDドライブから起動するように設定する。

12:CentOS-6.8のインストール画面が表示される。


CakePHP2.8.xをリモートサーバーにインストールする手順


CakePHP2.8.xをリモートサーバーにインストールする手順は次のようになる。(リモートサーバーには予め、PHP5.6.22とMysql5.5がインストールされている)

1:https://github.com/cakephp/cakephp/tags からLinuxパソコンへCakePHP2.8.xをダウンロードする(ダウンロード完了後、ダウンロードフォルダーからアカウントルートへファイルを移動しておく)

2:https://github.com/cakephp/debug_kit/tree/2.2 からLinuxパソコンへ debug_kit-2.2.zipをダウンロードする(ダウンロード完了後、ダウンロードフォルダーからアカウントルートへファイルを移動しておく)

3:コンソールでscpコマンドを実行してサーバーにファイルをコピーする(scp cakephp-2.8.x.tar.gz アカウント名@サーバー名:)

4:コンソールでscpコマンドを実行してサーバーにファイルをコピーする(scp debug_kit-2.2.zip アカウント名@サーバー名:)

5:コンソールでsshコマンドを実行してサーバーにログインする(ssh アカウント名@サーバー名)

6:コンソール上のサーバーに対してmvコマンドを実行してファイルをWeb用ディレクトリへ移動する(mv cakephp-2.8.x.tar.gz ./www/)

7:コンソール上のサーバーに対してtarコマンドを実行してファイルを展開する(tar xvfz ./www/cakephp-2.8.x.tar.gz)

8:コンソール上のサーバーに対してmvコマンドを実行してファイルをPluginディレクトリへ移動する(mv debug_kit-2.2.zip ./www/cakephp-2.8.x/app/Plugin)

9:コンソール上のサーバーに対してunzipコマンドを実行してファイルを展開する(unzip ./www/cakephp-2.8.x/app/Plugin/debug_kit-2.2.zip)

10:コンソール上のサーバーに対してmvコマンドを実行してディレクトリ名を変更する(mv ./www/cakephp-2.8.x/app/Plugin/debug_kit-2.2 ./www/cakephp-2.8.x/app/Plugin/DebugKit)

11:コンソール上のサーバーに対してviコマンドを実行して下記のようにファイルを編集する(vi ./www/cakephp-2.8.x/app/Config/core.php)
編集A:Configure::write(‘Security.salt’, ‘DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi’); と記述された行を探し、ランダムな文字列の部分を任意のランダムな文字列に置き換える。
編集B:Configure::write(‘Security.cipherSeed’, ‘76859309657453542496749683645’); と記述された行を探し、ランダムな数字列の部分を任意のランダムな数字列に置き換える。

12:コンソール上のサーバーに対してcpコマンドを実行してファイルを別名でコピーする(cp ./www/cakephp-2.8.x/app/Config/database.php.default ./www/cakephp-2.8.x/app/Config/database.php)

13:コンソール上のサーバーに対してviコマンドを実行して下記のようにファイルを編集する(vi ./www/cakephp-2.8.x/app/Config/database.php)
public $default = array(~)とpublic $test = array(~)の要素に実環境の情報を設定する。
‘host’ => ‘データベース サーバ名’,
‘login’ => ‘データベース ユーザ名’,
‘password’ => ‘接続パスワード’,
‘database’ => ‘データベース名’,
‘prefix’ => ”,
‘encoding’ => ‘utf8’,

14:コンソール上のサーバーに対してviコマンドを実行して下記のようにファイルを編集する(vi ./www/cakephp-2.8.x/app/Config/bootstrap.php)
いちばん下に次の1行を追加する。
CakePlugin::load(‘DebugKit’);

15:コンソール上のサーバーに対してviコマンドを実行して下記のようにファイルを編集する(vi ./www/cakephp-2.8.x/app/Controller/AppController.php)
いちばん上に次の1行を追加する。
Configure::write(‘debug’, 1);
class AppController extends Controller {~}の中に次の1行を追加する。
var $components = array(‘DebugKit.Toolbar’);

16:cakePHPをインストールしたURL(http://サーバー名/cakephp-2.8.x/index.php)にアクセスする。

cakePHPinstall