Minggu, 17 Juni 2012

Manager Proyek Yang Baik

Yang dimaksud dengan manager adalah orang atau seseorang yang harus mampu membuat orang-orang dalam organisasi yang berbagai karakteristik, latar belakang budaya, akan tetapi memiliki ciri yang sesuai dengan tujuan (goals) dan teknologi (technology). Dan tugas seorang manager adalah bagaimana mengintegrasikan berbagai macam variabel (karakteristik, budaya, pendidikan dan lain sebagainya) kedalam suatu tujuan organisasi yang sama dengan cara melakukan mekanisme penyesuaian. Adapun mekanisme yang diperlukan untuk menyatukan variabel diatas adalah sebagai berikut: * Pengarahan (direction) yang mencakup pembuatan keputusan, kebijaksanaan, supervisi, dan lain-lain. * Rancangan organisasi dan pekerjaan. * Seleksi, pelatihan, penilaian, dan pengembangan. * Sistem komunikasi dan pengendalian. * Sistem reward. Hal tersebut memang tidak mengherankan karena posisi Manajer Proyek memegang peranan kritis dalam keberhasilan sebuah proyek terutama di bidang teknologi informasi. Berikut ini kualifikasi teknis maupun nonteknis yang harus dipenuhi seorang Manajer Proyek yang saya sarikan dari IT Project Management Handbook. Setidaknya ada 3 (tiga) karakteristik yang dapat digunakan untuk mengukur tingkat kualifikasi seseorang untuk menjadi Manajer Proyek yaitu: * Karakter Pribadinya * Karakteristik Kemampuan Terkait dengan Proyek yang Dikelola * Karakteristik Kemampuan Terkait dengan Tim yang Dipimpin Karakter Pribadinya 1. Memiliki pemahaman yang menyeluruh mengenai teknis pekerjaan dari proyek yang dikelola olehnya. 2. Mampu bertindak sebagai seorang pengambil keputusan yang handal dan bertanggung jawab. 3. Memiliki integritas diri yang baik namun tetap mampu menghadirkan suasana yang mendukung di lingkungan tempat dia bekerja. 4. Asertif 5. Memiliki pengalaman dan keahlian yang memadai dalam mengelola waktu dan manusia. Karakteristik Kemampuan Terkait dengan Proyek yang Dikelola 1. Memiliki komitmen yang kuat dalam meraih tujuan dan keberhasilan proyek dalam jadwal, anggaran dan prosedur yang dibuat. 2. Pelaksanakan seluruh proses pengembangan proyek IT sesuai dengan anggaran dan waktu yang dapat memuaskan para pengguna/klien. 3. Pernah terlibat dalam proyek yang sejenis. 4. Mampu mengendalikan hasil-hasil proyek dengan melakukan pengukuran dan evaluasi kinerja yang disesuaikan dengan standar dan tujuan yang ingin dicapai dari proyek yang dilaksanakan. 5. Membuat dan melakukan rencana darurat untuk mengantisipasi hal-hal maupun masalah tak terduga. 6. Membuat dan menerapkan keputusan terkait dengan perencanaan. 7. Memiliki kemauan untuk mendefinisikan ulang tujuan, tanggung jawab dan jadwal selama hal tersebut ditujukan untuk mengembalikan arah tujuan dari pelaksanaan proyek jika terjadi jadwal maupun anggaran yang meleset. 8. Membangun dan menyesuaikan kegiatan dengan prioritas yang ada serta tenggat waktu yang ditentukan sebelumnya. 9. Memiliki kematangan yang tinggi dalam perencanaan yang baik dalam upaya mengurangi tekanan dan stres sehingga dapat meningkatkan produktifitas kerja tim. 10. Mampu membuat perencanaan dalam jangka panjang dan jangka pendek. Karakteristik Kemampuan Terkait dengan Tim yang Dipimpin 1. Memiliki kemampuan dan keahlian berkomunikasi serta manajerial. 2. Mampu menyusun rencana, mengorganisasi, memimpin, memotivasi serta mendelegasikan tugas secara bertanggung jawab kepada setiap anggota tim. 3. Menghormati para anggota tim kerjanya serta mendapat kepercayaan dan penghormatan dari mereka. 4. Berbagi sukses dengan seluruh anggota tim. 5. Mampu menempatkan orang yang tepat di posisi yang sesuai. 6. Memberikan apresiasi yang baik kepada para anggota tim yang bekerja dengan baik. 7. Mampu mempengaruhi pihak-pihak lain yang terkait dengan proyek yang dipimpinnya untuk menerima pendapat-pendapatnya serta melaksanakan rencana-rencana yang disusunnya. 8. Mendelegasikan tugas-tugas namun tetap melakukan pengendalian melekat. 9. Memiliki kepercayaan yang tinggi kepada para profesional terlatih untuk menerima pekerjaan-pekerjaan yang didelegasikan darinya. 10. Menjadikan dirinya sebagai bagian yang terintegrasi dengan tim yang dipimpinnya. 11. Mampu membangun kedisiplinan secara struktural. 12. Mampu mengidentifikasi kelebihan-kelebihan dari masing-masing anggota tim serta memanfaatkannya sebagai kekuatan individual. 13. Mendayagunakan setiap elemen pekerjaan untuk menstimulasi rasa hormat dari para personil yang terlibat dan mengembangkan sisi profesionalisme mereka. 14. Menyediakan sedikit waktu untuk menerima setiap ide yang dapat meningkatkan kematangan serta pengembangan dirinya. 15. Selalu terbuka atas hal-hal yang mendorong kemajuan. 16. Memahami secara menyeluruh para anggota tim yang dipimpinnya dan mengembangkan komunikasi efektif di dalamnya

COCOMO

Constructive Cost Model (COCOMO) Merupakan algoritma estimasi biaya perangkat lunak model yang dikembangkan oleh Barry Boehm. Model ini menggunakan rumus regresi dasar, dengan parameter yang berasal dari data historis dan karakteristik proyek proyek saat ini. COCOMO terdiri dari tiga bentuk hirarki semakin rinci dan akurat. Tingkat pertama, Basic COCOMO adalah baik untuk cepat, order awal, kasar estimasi besarnya biaya perangkat lunak, namun akurasinya terbatas karena kurangnya faktor untuk memperhitungkan perbedaan atribut proyek (Cost Drivers). Intermediate COCOMO mengambil Driver Biaya ini diperhitungkan dan Rincian tambahan COCOMO account untuk pengaruh fase proyek individu. Ada tiga model cocomo, diantaranya ialah: 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. Intermediate Cocomo Persamaan estimasi sekarang mempertimbangkan (terlepas dari DSI) 15 pengaruh faktor-faktor; ini adalah atribut produk (seperti kehandalan perangkat lunak, ukuran database, kompleksitas), komputer atribut-atribut (seperti pembatasan waktu komputasi, pembatasan memori utama), personil atribut ( seperti aplikasi pemrograman dan pengalaman, pengetahuan tentang bahasa pemrograman), dan proyek atribut (seperti lingkungan pengembangan perangkat lunak, tekanan waktu pengembangan). Tingkat pengaruh yang dapat diklasifikasikan sebagai sangat rendah, rendah, normal, tinggi, sangat tinggi, ekstra tinggi; para pengganda dapat dibaca dari tabel yang tersedia. 3. Detil Cocomo Dalam hal ini adalah rincian untuk fase tidak diwujudkan dalam persentase, tetapi dengan cara faktor-faktor pengaruh dialokasikan untuk fase. Pada saat yang sama, maka dibedakan menurut tiga tingkatan hirarki produk (modul, subsistem, sistem), produk yang berhubungan dengan faktor-faktor pengaruh sekarang dipertimbangkan dalam persamaan estimasi yang sesuai. Selain itu detail cocomo dapat menghubungkan semua karakteristik versi intermediate dengan penilaian terhadap pengaruh pengendali biaya pada setiap langkah (analisis, perancangan, dll) dari proses rekayasa PL.

Alasan Menggunakan Sofware Open Source Dalam Membuat Aplikasi

Open Source adalah sebuah sistem baru dalam mendistribusikan perangkat lunak kepada pengguna dengan memberikan program dan source code nya secara gratis. Bahkan pengguna dapat mempelajari dan melakukan modifikasi untuk membuat software tersebut sesuai dengan kebutuhan mereka. Isu-isu keamanan yang dihadapi sistem open source, mencakup beberapa filosofi keamanan umum dan bagaimana membuat lebih aman sistem tersebut dari para penyusup. Beberapa pengguna komputer yang merupakan anggota dari komunitas pengguna Open Source Software (OSS) dan free software berpendapat bahwa kode program mereka lebih aman karena kelemahan kode program mereka lebih mudah ditemukan dan diperbaiki oleh pemakai program tersebut. Sementara itu, komunitas hak-hak kepemilikan berpendapat bahwa pembukaan akses ke kode program pada OSS akan memudahkan bagi beberapa kelompok tertentu untuk menyerang program tersebut. Fitur-fitur utama dari karakteristik open source adalah kebebasan user untuk: 1. Menggunakan software sesuai keinginannya. 2. Memiliki software yang tersedia sesuai kebutuhan. 3. Mendistribusikan software kepada user lainnya. Kebebasan yang tak terbatas bagi tiap orang untuk mengakses kode program merupakan pedang bermata dua bagi software itu sendiri. Hal ini disebabkan karena kebebasan ini memberikan informasi tentang kelemahan software. Kemudian, yang terjadi adalah eksploitasi kelemahannya. Para hacker akan menggunakan kelemahan ini untuk melakukan hal-hal yang dapat merugikan pengguna software tersebut. Akibatnya akan lebih buruk jika software tersebut merupakan software yang vital bagi pengguna karena akan memungkinkan terjadinya penipuan, pencurian identitas, pencurian informasi, dan sebagainya. Beberapa keuntungan dari software open source, yaitu: 1. Adanya hak untuk mendistribusikan modifikasi dan perbaikan pada kode. 2. Ketersediaan source code dan hak untuk memodifikasi. 3. Tidak disandera vendor, open source menggunakan format data terbuka, sehingga data menjadi transparan dan bisa dengan bebas diproses di sistem komputer yang berbeda-beda, sambil tetap menjaga keamananya. Dengan demikian, konsumen tidak lagi terikat pada kemauan vendor untuk dapat menggunakan data-datanya. 4. Banyaknya tenaga (SDM) untuk mengerjakan proyek, proyek open source biasanya menarik banyak developer, misalnya pengembangan web server Apache menarik ribuan orang untuk ikut mengembangkan dan memantau. 5. Kesalahan (bugs, error) lebih cepat ditemukan dan diperbaiki, hal ini dikarenakan jumlah developer-nya sangat banyak dan tidak dibatasi. Visual inspection (eye-balling) merupakan salah satu metodologi pencarian bugs yang paling efektif. Selain itu, source code yang tersedia membuat setiap orang dapat mengusulkan perbaikan tanpa harus menunggu dari vendor. 6. Kualitas produk lebih terjamin, hal ini dikarenakan evaluasi dapat dilakukan oleh banyak orang sehingga kualitas produk dapat lebih baik. Namun, hal ini hanya berlaku untuk produk open source yang ramai dikembangkan orang. Tidak selamanya open source dikembangkan oleh banyak orang, karena bisa juga dilakukan oleh individual. 7. Hemat biaya, sebagian besar developer ini tidak dibayar. Dengan demikian, biaya dapat dihemat dan digunakan untuk pengeluaran yang tidak dapat ditunda, misal membeli server untuk hosting web. 8. Tidak mengulangi development, pengulangan (re-inventing the wheel) merupakan pemborosan. Adanya source code yang terbuka membuka jalan bagi seorang programmer untuk melihat solusi-solusi yang pernah dikerjakan oleh orang lain. Namun, pada kenyataannya tetap banyak pengulangan. 9. User dapat memodifikasi dan mengunci agar hanya kalangan terbatas yang dapat membaca kode dan memodifikasinya. 10. Mencegah software privacy yang melanggar hukum. Beberapa kerugiannya adalah : 1. 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. 2. Tidak adanya proteksi terhadap HaKI, kebanyakan orang masih menganggap bahwa open source merupakan aset yang harus dijaga kerahasiannya. Hal ini dikaitkan dengan besarnya usaha yang sudah dikeluarkan untuk membuat produk tersebut. Karena sifatnya dapat di-abuse oleh orang-orang untuk mencuri ide dan karya orang lain. 3. Kesulitan dalam mengetahui status project. 4. Tidak ada garansi dari pengembangan. 5. Limitasi modifikasi oleh orang – orang tertentu yang membuat atau memodifikasi sebelumnya. 6. Untuk beberapa platform, contohnya JAVA yang memiliki prinsip satu tulis dan bisa dijalankan dimana saja, akan tetapi ada beberapa hal dari JAVA yang tidak competible dengan platform lainnya. Contohnya J2SE yang SWT – AWT bridge-nya belum bisa dijalankan di platform Mac OS. 7. Open Source digunakan secara sharing, dapat menimbulkan resiko kurangnya diferensiasi antara satu software dengan yang lain, apabila kebetulan menggunakan beberapa open Source yang sama.