Selasa, 12 Mei 2015

Artikel mengenai etika Programmer, Web Design dan Sistem Analisis

WEB DESIGN

Desain web adalah istilah yang luas yang mencakup berbagai keterampilan dan disiplin ilmu yang digunakan dalam produksi dan pemeliharaan website berbagai bidang desain web meliputi; Web desain grafis, desain interface, authoring, termasuk kode standar dan perangkat lunak berpemilik, pengalaman pengguna desain dan optimasi mesin pencari. Seringkali banyak orang akan bekerja dalam tim yang mencakup berbagai aspek dari proses desain, meskipun beberapa desainer akan meliputi mereka semua. Desain web Istilah ini biasanya digunakan untuk menggambarkan proses desain yang berkaitan dengan front end-(sisi client) desain website termasuk menulis mark up, tapi ini adalah wilayah abu-abu karena hal ini juga dibahas oleh pengembangan web. Web desainer diharapkan memiliki kesadaran akan kegunaan dan jika peran mereka melibatkan menciptakan mark up maka mereka juga diharapkan untuk memperoleh informasi dengan pedoman aksesibilitas web.


Pekerjaan
Ada dua pekerjaan utama yang terlibat dalam menciptakan sebuah situs web: web designer dan web developer, yang sering bekerja sama pada sebuah situs web web designer bertanggung jawab untuk aspek visual, yang meliputi tata letak, warna dan tipografi dari. halaman web. Seorang perancang web juga akan memiliki pengetahuan dasar tentang menggunakan berbagai bahasa seperti HTML, CSS, JavaScript, PHP dan Flash untuk membuat situs, meskipun tingkat pengetahuan mereka akan berbeda dari satu desainer web yang lain. Terutama di organisasi kecil satu orang akan membutuhkan keterampilan yang diperlukan untuk merancang dan pemrograman halaman web penuh, sementara organisasi yang lebih besar mungkin memiliki web designer bertanggung jawab untuk aspek visual saja.

 Pekerjaan lebih lanjut, yang dalam keadaan tertentu mungkin terlibat dalam proses pembuatan website meliputi:
a.    Desainer grafis, untuk menciptakan visual untuk situs seperti logo, layout dan tombol
b.    Spesialis Internet Marketing, untuk membantu menjaga keberadaan web melalui solusi strategis pada penargetan pemirsa ke situs, dengan menggunakan teknik pemasaran dan promosi di internet.
c.    Penulis SEO, untuk penelitian dan merekomendasikan kata-kata yang tepat untuk dimasukkan ke situs web tertentu dan membuat situs web lebih mudah diakses dan ditemukan di search engine banyak.
d.    Internet Copywriter, untuk menciptakan konten yang ditulis halaman untuk menarik pemirsa yang ditargetkan dari situs.
e.    Pengalaman Pengguna (UX) desainer, menggabungkan aspek pertimbangan desain user terfokus yang meliputi arsitektur informasi, desain user berpusat, pengujian pengguna, desain interaksi, dan desain visual yang kadang-kadang

 

 

Sistem Analisis
1. DEFINISI SISTEM

 Sistem adalah sekumpulan unsur / elemen yang saling berkaitan dan saling mempengaruhi dalammelakukan kegiatan bersama untuk mencapai suatu tujuan.

Contoh :
Sistem Komputer terdiri dari : Software, Hardware, Brainware.

  Sistem Akuntansi

 2. MODEL UMUM SISTEM

Contoh :       

-  Program perhitungan Basic kita masukkan, setelah dijalankan kita dapatkan

   hasilnya.

- Data mahasiswa (nama, nilai) diproses menjadi daftar nilai semester (berupa laporan).

Sistem dengan banyak Input dan Output

Contoh :

Matriks masukannya banyak, keluarannyapun banyak.

 

3. KARAKTERISTIK SISTEM

     a. Organisasi

     b. Interaksi

     c. Interdependensi

     d. Integrasi

     e. Tujuan pokok

 

4. KLASIFIKASI  SISTEM

A. DETERMINISTIK SISTEM.

 Sistem dimana operasi-operasi (input/output) yang terjadi didalamnya  dapat ditentukan/   diketahui dengan pasti.

B. PROBABILISTIK SISTEM.

 Sistem yang input dan prosesnya dapat didefinisikan, tetapi output   yang

 dihasilkan tidak dapat ditentukan dengan pasti; (selalu ada  sedikit

 kesalahan/penyimpangan terhadap ramalan jalannya sistem).

C. OPEN SISTEM.

Sistem yang mengalami pertukaran energi, materi atau informasi dengan lingkungannya. Sistem ini cenderung memiliki sifat adaptasi, dapat menyesuaikan diri dengan lingkungannya sehingga dapat meneruskan eksistensinya.

D. CLOSED SISTEM.

Sistem fisik di mana proses yang terjadi tidak mengalami pertukaran materi, energi atau informasi dengan lingkungan di luar sistem tersebut.

E. RELATIVELY CLOSED SISTEM.

Sistem yang tertutup tetapi tidak tertutup sama sekali untuk menerima pengaruh-pengaruh lain. Sistem ini dalam operasinya dapat menerima pengaruh dari luar yang sudah didefinisikan dalam batas-batas tertentu .

F. ARTIFICIAL SISTEM.

Sistem yang meniru kejadian dalam alam. Sistem ini dibentuk berdasarkan kejadian di alam di mana manusia tidak mampu melakukannya. Dengan kata lain tiruan yang ada di alam.

G. NATURAL SISTEM.

     Sistem yang dibentuk dari kejadian dalam alam.

H. MANNED SISTEM.

Sistem penjelasan tingkah laku yang meliputi keikut sertaan manusia.

 

5. METODE SISTEM

A. BLACKBOX APPROACH.

Suatu sistem dimana input dan outputnya dapat didefinisikan tetapi prosesnya tidak diketahui atau tidak terdefinisi.

Metode ini hanya dapat  dimengerti oleh pihak dalam ( yang menangani ) sedangkan pihak luar hanya mengetahui masukan dan  hasilnya. Sistem ini terdapat pada subsistem tingkat terendah.

B. ANALITYC SISTEM.

Suatu metode yang mencoba untuk melihat hubungan seluruh masalah  untuk menyelidiki kesistematisan tujuan dari sistem yang tidak efektif dan evaluasi pilihan dalam bentuk ketidak efektifan dan biaya.

6. PENGERTIAN ANALISIS SISTEM

Suatu sistem akan dirancang oleh satu orang atau sekelompok orang yang

     membentuk tim.  Orang  yang  merancang  sistem  ini  disebut Sistem Analis.

     Ada yang mendefinisikan sistem analis sebagai :

- Seorang yang menggunakan pengetahuan aplikasi komputer yang dimilikinya

      untuk memecahkan masalah-masalah bisnis dibawah petunjuk manajer

      sistem.

- Seorang yang bertanggung jawab menterjemahkan kebutuhan-kebutuhan si

      pemakai sistem (user) kedalam spesifikasi teknik  yang diperlukan oleh

      programmer dan diawasi oleh manajemen.

 

7. FUNGSI SISTEM ANALIS

     Fungsi Sistem Analis :

-          Mengidentifikasikan masalah-masalah dari pemakai / user.

-          Menyatakan secara spesifik sasaran yang harus dicapai untuk memenuhi kebutuhan user.

-          Memilih alternatif-alternatif metode pemecahan masalah.

-          Merencanakan dan menerapkan rancangan sistemnya sesuai dengan permintaan user.

 

 

Job Programmer

 

Dalam melakukan sesuatu harus diawali dengan niat dan usaha, apalagi saat ini dalam dunia usaha sangat sulit sekali untuk mendapatkan pekerjaan karena sangat berbanding terbalik antara lowongan pekerjaan dengan para pencari pekerjaan. Seperti yang telah diketahui angka pengangguran sangat besar di Indonesia.

Lowongan pekerjaan yang saat ini dibutuhkan adalah dalam bidang Programmer. Sebelumnya kita harus tahu terlebih dahulu apa itu programmer. Programmer   adalah   individu   yang   bertugas   dalam   hal   rincian implementasi,  pengemasan,  dan modifikasi  algoritma serta struktur data, dituliskan   dalam   sebuah   bahasa   pemrograman   tertentu. Pekerjaan ini selain sulit mendapatkannya karena harus memiliki kemampuan dalam bidang ini juga karena saingannya yang banyak.

 

KETERAMPILAN   YANG   HARUS   DIMILIKI   SEORANG PROGRAMMER

Membaca   kode   sumber   sebuah   program,   dari   yang   sederhana   hingga relative   kompleks,   adalah   keterampilan   yang   harus   dimiliki   oleh   seorang programmer.   Istilah   program  di   sini   digunakan   tidak   hanya   dalam  pengertian aplikasi utuh, namun juga mencakup level segmen kode, fungsi/subrutin, pustaka atau modul yang digunakan oleh sebuah aplikasi utuh. Manfaat dari terbiasanya kita membaca program adalah semakin banyaknya sumber informasi yang dapat kita gunakan untuk memecahkan masalah.

KEWAJIBAN PROGRAMMER

Buat para programmer, Coding adalah kewajiban. Sama halnya menghafal obat-obatan   bagi   dokter,  maupun  menghafal   undang-undang   bagi   pengacara. Sebagian programmer menganggap dirinya spesial, karena tidak semua orang IT dapat menguasai salah satu (atau bahkan beberapa) bahasa pemrograman. Seorang programmer memiliki kewajiban sebagai berikut :

1.    Memahami konsep dasar sistem operasi.

Kebanyakan   dari   programmer   Indonesia   biasanya  membuat   aplikasi   di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami   cara   kerja   sistem  operasi.  Untuk   programmer   profesional, pemahaman   ini   akan  membuat   programmer   lebih   siap  untuk  membuat aplikasi server yang biasanya  multithreaded  dan harus efisien digunakan dalam waktu   yang   lama.   Pemahaman  mendalam  di   salah   satu   sistem operasi juga merupakan nilai tambah yang signifikan. Dengan mengetahui struktur   internal   sistem  operasi   (misalnya   Linux),   programmer   dapat mengetahui berbagai pertimbangan dalam merancang aplikasi besar yang terus berkembang.

2.    Memahami konsep dasar jaringan.

Sebuah aplikasi tidak dapat berjalan sendiri. Aplikasi tersebut pasti harus berhubungan   dengan   internet,   melayani   banyak   pengguna,   atau berhubungan dengan perangkat lain seperti handphone atau PDA. Untuk itu, pemahaman atas konsep jaringan sangat penting.

3.    Memahami konsep dasar relational database.

Setiap   aplikasi   pasti   memiliki   sebuah   database   dalam   penyimpanan datanya   untuk   itu   programmer   khususnya   Database   Programmer ditekankan menguasai relational database.

4.    Karena sekarang jaman internet, maka wajib memahami protokol HTTP, FTP,  POP3,  SMTP,  SSH.  Protokol  HTTP sekarang adalah prokol  yang paling banyak digunakan di internet.

5.    Karena   sekarang   jaman   globalisasi,  maka  wajib  memahami  Unicode. Unicode  itu penting supaya aplikasi  kita  tetap bisa diinstal  di  komputer mana saja.

6.    Lebih dari satu bahasa pemrograman.

Pemahaman lebih dari satu bahasa itu penting agar wawasan programmer lebih  terbuka.  Bahwa  tidak ada bahasa yang one-fit-all,  bahwa ada cara berpikir  yang berbeda dalam  tiap bahasa,  bahwa komunitas  tiap bahasa berbeda   budayanya.  Semua   ini   akan   berkontribusi   dalam  pendewasaan seorang   programmer   dalam   berdiskusi   dan   menanggapi   perbedaan (terutama pendapat).

7.    Cara menggunakan Version Control.

Dalam dunia kerja, penggunaan version control adalah wajib. Ini standar (de   facto)   internasional.   Jika  mempunyai   project   opensource,   baik   di Sourceforge,  Apache,  Codehaus,  dan semua hosting project  opensource, pasti programmer akan diberikan version control.

 

SIKAP PROGRAMMER TERHADAP KLIEN

1.    Mempunyai   sikap & kepribadian baik,  komunikatif,  mudah beradaptasi dengan lingkungan kerja, cetakan dan fleksibel.

2.    Mampu bekerja berorientasi jadwal, mengatur pekerjaan multiple project dan nerkerja sama dalam team.

3.    Membuat kontrak kerja dengan klien.

4.    Menyukai dan mengerti dasar-dasar pemrograman.

 

Referensi dari

http://id.wikipedia.org/wiki/Etika


http://en.wikipedia.org/wiki/Web_design

Minggu, 10 Mei 2015

KRITERIA MANAGER PROYEK YANG BAIK


KRITERIA MANAGER PROYEK YANG BAIK
Ketika datang saatnya untuk menjadi seorang pemimpin, dibutuhkan keahlian khusus untuk mengelola dan mengatur suatu organisasi. Pemimpin harus memberikan yang terbaik kepada organisasinya, tidak peduli akan perbedaan antara setiap anggotanya. Konsep tersebut pun berlaku untuk manajemen proyek. Untuk menjadi manajer proyek yang baik harus memiliki beberapa kriteria yang baik pula. Employment Status Indicator (ESI) International telah menyusun daftar tanggapan dari sumber yang berbeda untuk membuat gambaran suatu kriteria manajer proyek yang baik. Berikut ini adalah 10 kriteria teratas yang disusun oleh ESI.

 1.Menginspirasi dengan Visi Bersama
Semua orang perlu memiliki visi yang sama untuk menyelesaikan suatu proyek. Manajer proyek yang baik membantu semua anggota tim agar mereka merasa seperti memiliki kepentingan yang sama dalam sebuah proyek, dan memberdayakan semua orang untuk berbagi dan mengalami visi kelompok. Warren Bennis, pelopor studi Kepemimpinan, mengatakan tentang jenis pemimpin yang visioner: "Mereka menawarkan kesempatan kepada orang-orang untuk menciptakan visi mereka sendiri, untuk mengeksplorasi apa visi tersebut berarti untuk pekerjaan dan kehidupan mereka, dan untuk membayangkan masa depan mereka sebagai bagian dari organisasi."

 2.Kominukator yang Baik
Kemampuan untuk berkomunikasi dengan orang-orang di semua tingkatan hampir selalu disebut sebagai keterampilan yang paling penting kedua oleh manajer proyek dan anggota tim. Kepemimpinan proyek panggilan untuk komunikasi yang jelas tentang tujuan, tanggung jawab, kinerja, harapan dan umpan balik. Ada banyak nilai yang ditempatkan pada keterbukaan dan keterusterangan. Pemimpin proyek juga merupakan penghubung terhadap tim untuk organisasi yang lebih baik. Pemimpin harus memiliki kemampuan untuk secara efektif bernegosiasi dan menggunakan persuasi bila diperlukan untuk memastikan keberhasilan tim dan proyek. Melalui komunikasi yang efektif, pimpinan proyek mendukung prestasi individu dan tim dengan menciptakan pedoman yang jelas untuk mencapai hasil dan untuk kemajuan karir anggota tim.

 3.Integritas
Salah satu hal yang paling penting bagi pemimpin proyek adalah tindakan, dan bukan sekedar kata-kata. Kepemimpinan yang baik menuntut komitmen, dan demonstrasi dari etika. Membuat standar perilaku etis bagi diri sendiri dan hidup dengan standar tersebut, serta memberi penghargaan bagi yang memberikan contoh praktek-praktek tersebut, adalah tanggung jawab pimpinan proyek. Kepemimpinan termotivasi oleh kepentingan diri sendiri, bukan untuk melayani kesejahteraan tim.

 4.Antusiasme
Pemimpin negatif dapat menjadi nyata perangkap untuk keberhasilan proyek dan efektivitas keseluruhan tim. Manajer proyek yang baik memiliki keuletan pada langkah mereka dan sikap percaya diri yang menetapkan kecepatan untuk seluruh tim mereka. Memiliki energi yang baik  sangat penting untuk menetapkan contoh positif dan sikap untuk tim. Manajer proyek yang berkomitmen positif dan memiliki tujuan bahkan ketika melakukan kesalahan akan membantu mengilhami orang lain untuk tidak menjadi negatif ketika proyek mengalami keterlambatan atau halangan.

 5.Empati
Empati dan simpati adalah dua hal yang berbeda. Simpati biasanya diproyeksikan, sedangkan empati berarti benar-benar memahami bagaimana orang lain merasakan sesuatu, terutama ketika datang ke hal-hal yang melibatkan kehidupan di luar pekerjaan. Kadang-kadang empati perlu ditunjukkan kepada anggota tim yang sedang berjuang untuk mengatasi masalah karena bisa saja terdapat masalah pribadi yang mungkin dapat mempengaruhi pekerjaan mereka. Dengan demikian, seorang manajer proyek yang kuat akan berempati dengan masalah anggota tim tanpa menunjukkan penyesalan. Memastikan anggota tim dapat tetap produktif pada proyek, tanpa memperburuk masalah pribadi mereka.

 6.Kompetensi
Anggota tim perlu merasa seperti manajer proyek mereka memiliki beberapa tingkat keahlian dalam subyek proyek. Dengan demikian, pemimpin proyek harus memiliki kemampuan untuk memimpin tim mereka dengan keahlian teknis jika suatu saat terjadi masalah teknis yang tidak dapat diatasi oleh tim. Hal ini tidak berarti seorang manajer proyek pada proyek pengembangan perangkat lunak membutuhkan kemampuan untuk membuka Visual Studio dan mulai coding di console, namun itu tidak berarti bahwa manajer proyek memahami implikasi dari tantangan teknis yang berbeda. Pemimpin yang dianggap sebagai kompeten oleh rekan-rekan mereka memiliki kemampuan untuk menginspirasi, mengaktifkan, dan mendorong.

 7.Mendelegasikan Tugas
Kepercayaan adalah bagian terbesar dari manajemen proyek yang efektif, dan berapa banyak manajer proyek percaya tim mereka sering ditunjukkan melalui seberapa besar tanggung jawab mereka bersedia untuk mendelegasikan. Manajer proyek yang baik memahami tingkat pengawasan setiap kebutuhan anggota tim untuk tugas dari masing-masing anggota. Menetapkan tugas yang tepat untuk orang yang tepat dan mempercayai mereka untuk memanfaatkan yang terbaik dari kemampuan mereka adalah kunci dari karakteristik manajer proyek yang baik.

 8.Stay Cool walaupun dalam Under Pressure
Dalam dunia yang sempurna, setiap proyek akan selesai tepat waktu, sesuai anggaran, dan pada lingkupnya. Sayangnya, kita tidak hidup di dunia yang sempurna. Ketika keadaan menjadi sulit, manajer proyek yang baik bisa tetap menjaga sikapnya untuk tenang. Bennis Waran menyatakan: " Keluar dari ketidakpastian dan kekacauan perubahan, pemimpin bangkit dan mengartikulasikan gambaran baru masa depan yang menarik proyek bersama" Singkatnya, semakin banyak manajer proyek tampak "stres", semakin banyak tim dan klien akan stres juga. Manajer proyek yang baik akan tetap dingin di bawah tekanan.

 9.Keterampilan Team Building
Sebuah pembangun tim terbaik dapat didefinisikan sebagai orang yang kuat yang memberikan substansi yang memegang tim bersama-sama dalam tujuan yang sama menuju tujuan yang tepat. Agar sebuah tim berkembang dari sekelompok orang asing ke unit kohesif tunggal, pemimpin harus memahami proses dan dinamika yang diperlukan untuk transformasi ini. Dia juga harus tahu gaya kepemimpinan yang sesuai untuk digunakan selama setiap tahap pengembangan tim. Pemimpin juga harus memiliki pemahaman tentang pemain tim yang berbeda gaya dan cara memanfaatkan masing-masing pada waktu yang tepat, untuk masalah yang dihadapi.

 10.Tahu Bagaimana Memecahkan Masalah
Manajer proyek yang baik memecahkan masalah dengan berbagi tanggung jawab dengan para ahli di tim mereka. Mirip dengan item nomor 6 di atas tentang kompetensi, bahkan manajer proyek yang baik tidak akan memiliki solusi untuk setiap masalah yang muncul, hanya saja tidak mungkin. Namun, manajer proyek yang baik akan memahami bagaimana untuk mengatur jalur menuju solusi. Hal ini berarti meningkatkan pengetahuan para anggota tim dan para pemangku kepentingan yang memiliki pengetahuan ahli untuk membantu, dan menetapkan rencana untuk memecahkan masalah yang sulit dengan memanfaatkan pengalaman tim. Sebagian besar karakteristik tersebut di atas mengikat satu sama lain, dan jika seorang manajer proyek yang baik akan menampilkan satu atau dua dari kriteria ini maka kemungkinan mereka dapat bekerja untuk menjadi lebih baik.

 

sumber :
http://www.projectsmart.co.uk/pdf/top-10-qualities-of-a-project-manager.pdf
http://www.recruiter.com/i/10-things-that-make-a-good-project-manager-great/http://ad.retargeter.com/seg?add=309646&t=2

COCOMO (Constructive Cost Model)

Pengertian COCOMO
 COCOMO merupakan singkatan dari Constructive Cost Model yaitu algortima model estimasi biaya perangkat lunak yang dikembangkan dan diterbitkan oleh Barry Boehm. COCOMO adalah model konstruktif biaya dan dikembangkan di TRW / Northrop-Grumman pada tahun 2002. Satu hasil observasi yang paling penting dalam model ini adalah bahwa motivasi dari tiap orang yang terlibat ditempatkan sebagai titik berat. Hal ini menunjukkan bahwa kepemimpinan dan kerja sama tim merupakan sesuatu yang penting, namun demikian poin pada bagian ini sering diabaikan.COCOMO adalah model terbuka, sehingga semua detail dipublikasikan, termasuk :
• Dasar persamaan perkiraan biaya.
• Setiap asumsi yang dibuat dalam model.
• Setiap definisi.
• Biaya yang disertakan dalam perkiraan dinyatakan secara eksplisit
 
Jenis-Jenis COCOMO
1. Dasar Cocomo
Dengan menggunakan estimasi parameter persamaan (dibedakan menurut tipe sistem yang berbeda) upaya pengembangan dan pembangunan durasi dihitung berdasarkan perkiraan DSI.
Dengan rincian untuk fase ini diwujudkan dalam persentase. Dalam hubungan ini dibedakan menurut tipe sistem (organik-batch, sebagian bersambung-on-line, embedded-real-time) dan ukuran proyek (kecil, menengah, sedang, besar, sangat besar).
Model COCOMO dapat diaplikasikan dalam tiga tingkatan kelas:
.         Proyek organik (organic mode)Adalah proyek dengan ukuran relatif kecil, dengan anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang relatif fleksibel.
·         Proyek sedang (semi-detached mode)Merupakan proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda
·         Proyek terintegrasi (embedded mode)Proyek yang dibangun dengan spesifikasi dan operasi yang ketat
Model COCOMO dasar ditunjukkan dalam persamaan 1, 2, dan 3 berikut ini:
keterangan :
E          :  besarnya usaha (orang-bulan)
D         :  lama waktu pengerjaan (bulan)
KLOC  :  estimasi jumlah baris kode (ribuan)
P           :  jumlah orang yang diperlukan. 
 
2. Model COCOMO Lanjut (Intermediate COCOMO)
Pengembangan model COCOMO adalah dengan menambahkan atribut yang dapat menentukan jumlah biaya dan tenaga dalam pengembangan perangkat lunak, yang dijabarkan dalam kategori dan subkatagori sebagai berikut:
A. Atribut produk (product attributes)
1. Reliabilitas perangkat lunak yang diperlukan (RELY)
2. Ukuran basis data aplikasi (DATA)
3. Kompleksitas produk (CPLX)
 
B. Atribut perangkat keras (computer attributes)
1. Waktu eksekusi program ketika dijalankan (TIME)
2. Memori yang dipakai (STOR)
3. Kecepatan mesin virtual (VIRT)
4. Waktu yang diperlukan untuk mengeksekusi perintah (TURN)
 
C. Atribut sumber daya manusia (personnel attributes)
1. Kemampuan analisis (ACAP)
2. Kemampuan ahli perangkat lunak (PCAP)
3. Pengalaman membuat aplikasi (AEXP)
4. Pengalaman penggunaan mesin virtual (VEXP)
5. Pengalaman dalam menggunakan bahasa pemrograman (LEXP)
 
D. Atribut proyek (project attributes)
1. Penggunaan sistem pemrograman modern(MODP)
2. Penggunaan perangkat lunak (TOOL)
3. Jadwal pengembangan yang diperlukan (SCED)
 
3. Model COCOMO II (Complete atau Detailed COCOMO model)
Model COCOMO II, pada awal desainnya terdiri dari 7 bobot pengali yang relevan dan kemudian menjadi 16 yang dapat digunakan pada arsitektur terbarunya. Sama seperti COCOMO Intermediate (COCOMO81), masing-masing sub katagori bisa digunakan untuk aplikasi tertentu pada kondisi very low, low, manual, nominal, high maupun very high. Masing-masing kondisi memiliki nilai bobot tertentu. Nilai yang lebih besar dari 1 menunjukkan usaha pengembangan yang meningkat, sedangkan nilai di bawah 1 menyebabkan usaha yang menurun. Kondisi Laju nominal (1) berarti bobot pengali tidak berpengaruh pada estimasi. Maksud dari bobot yang digunakan dalam COCOMO II, harus dimasukkan dan direfisikan di kemudian hari sebagai detail dari proyek aktual yang ditambahkan dalam database.
 
Sumber :
 

OPENSOURCE

Opensource adalah sebuah sistem baru dalam mendistribusikan software kepada pengguna dengan memberikan program dan source codenya secara gratis. Bahkan pengguna dapat mempelajari dan melakukan modifikasi untuk membuat software tersebut sesuai dengan kebutuhan mereka. Richard M. Stallman, pendiri free software foundation, sebuah organisasi yang mendukung opensource  yang dinamakan GPL (GNU Public License). Lisensi inilah yang saat ini paling banyak digunakan untuk mendistribusikan software opensource. Selain GPL, masih banyak lisensi software lainnya yang dikembangkan oleh komunitas opensource.
 
Dengan menggunakan Software OpenSource ini kebutuhan pengguna komputer dapat terpenuhi. sebagian besar pengguna komputer hanya menggunakan saja tidak perlu tahu cara membuat sebuah Software? dan umumnya tidak terlalu tahu banyak tahu tentang seluk beluk komputer. Bayangkan jika kita membeli produk Software berlisensi (berbayar) dari sebuah perusahaan. Dua tahun setelah membeli produk tersebut, pembuat produk (perusahaan tersebut) tiba-tiba kolaps (bangkrut). Bisnisnya hancur dan produksi pun berhenti. Tidak ada lagi dukungan, tidak ada lagi pembaharuan. Kita jadi kebingungan dan mau tidak mau membeli produk baru dari produsen/perusahaan lain. Mengapa harus membeli produk baru dari perusahaan lain? Karena kita tidak memiliki kode Program dari Software tersebut. Andai kita memiliki atau diberikan akses untuk membuka dan memperbaharui kode Program tersebut maka kita bisa meminta bantuan pihak lain untuk melanjutkan. Dengan demikian, kita tak perlu membeli produk baru. Dan kerugian yang dialami pembeli akan menjadi lebih minim. Sebagian besar produk Open Source memang gratis dan terbuka. Tetapi tidak seluruhnya. Beberapa vendor mewajibkan pengguna membeli produk karena yang ditawarkan sebenarnya bukan hanya produknya, melainkan juga layanan dan dukungan serta pelatihan dan sertifikasi. Hal ini biasa terjadi pada produk Open Source untuk kalangan bisnis seperti produk RedHat, SUSE dan lain sebagainya.

 
Keuntungan menggunakan software open source

·         Legal, menggunakan open source software berarti kita menggunakan software dengan lisensi GPL (General Public License)
·         Murah, software open source dapat dengan mudah didapatkan dengan mendownload dari internet atau mengopi paste dari rekan teman anda
·         Aman, software open source telah terbukti aman digunakan daripada softwareberbayar (proprietary) karena kekomplekan proprietary software menciptakan celah yang mudah dimasuki hacker atau virus.
 Kerugian menggunakan software open source
 ·    Tidak ada garansi dari pengembangan Biasanya terjadi ketika sebuah project dimulai tanpa dukungan yang kuat dari satu atau beberapa perusahaan, memunculkan celah awal ketika sumber code masih mentah dan pengembangan dasar masih dalam pembangunan.

·   Kurangnya SDM yang dapat memanfaatkan open source. Ketersediaan source code yang diberikan dapat menjadi sia-sia, jika SDM yang ada tidak dapat menggunakannya. SDM yang ada ternyata hanya mampu menggunakan produk saja, Jika demikian, maka tidak ada bedanya produk open source dan yang propriertary dan tertutup.

 

sumber :
http://sirendi.blogspot.com/2013/04/kenapa-dianjurkan-menggunakan-software.html
http://fitria-sumawardani.blogspot.com/2015/04/kenapa-anda-dianjurkan-menggunakan.html
http://dunkyud.blogspot.com/2012/06/kenapa-anda-dianjurkan-menggunakan.html