Bidang Profesi IT yang saya inginkan

System Analyst

Seiring dengan berjalannya waktu dan perkembangan zaman, kebutuhan aplikasi komputer semakin kompleks. Ada kalanya proses bisnis dan permasalahan dalam suatu organisasi cukup kompleks untuk dijabarkan secara langsung ke sebuah software aplikasi. Biasanya para manajer/direksi perusahaan memahami secara detail mengenai proses bisnis di perusahaannya, misalnya dari sejak procurement, purchasing, manufacturing, warehousing, marketing, accounting dll, tetapi mereka biasanya kurang memahami mengenai bagaimana implementasinya secara teknis dalam software aplikasi. Kemudian seorang programmer biasanya terlalu berkutat dengan coding, algoritma dan hal-hal yang technical sehingga kadang mengalami kesulitan dalam memahami proses bisnis menyeluruh yang umumnya terjadi di organisasi/perusahaan tertentu.

Untuk menjembatani celah ini, maka diperlukan seorang “System Analyst”. Seorang system analyst di satu sisi diharuskan memiliki keahlian dalam menganalisis proses bisnis (problem domain) untuk dapat menghasilkan sebuah SRS (software Requiremant Spesification) dan di sisi lain menguasai aspek technical dan implementasinya dalam software aplikasi (solution domain) untuk dapat menghasilkan DDD (Detailed Design Document). Seorang system analyst biasanya berangkat dari seorang programmer yang sudah mahir dan berpengalaman dalam software development. Kemampuannya dalam menangkap requirement dan proses bisnis, ketajaman analisis mengenai celah-celah dalam sistem serta kemampuan merekomendasikan solusi terbaik secara technical sangat diperlukan dalam mengembangkan software yang berkualitas dan dapat bermanfaat untuk meningkatkan kinerja proses bisnis suatu organisasi.

System analyst bekerja pada tahap requirement dan design, walaupun kadangkala juga diperlukan untuk menyeberang dari tahap requirement dan design ke tahap construction/implementaion (coding/programming). Tentunya ini wajar karena biasanya seorang system analyst dahulunya juga seorang programmer. Tetapi seorang yang benar-benar diposisikan sebagai system analyst, tugas utamanya adalah membuat requirement dan desain software.

Kita sering mendengar istilah Programmer Analyst atau Analyst Programmer. Kedua profesi ini terdengar mirip, hanya saja dominasi pekerjaannya yang lebih ditekankan untuk diletakkan di depan istilah tersebut. Programmer Analyst adalah seorang programmer yang kadang kala bekerja sebagai system analyst tetapi dengan porsi yang lebih sedikit daripada sebagai programmer. Begitu pula sebaliknya untuk Analyst Programmer. Saya tidak bisa memastikan apakah penggunaan istilah itu benar secara bahasa tetapi profesi/posisi semacam itu memang ada di dunia kerja dan dicantumkan dalam iklan lowongan pekerjaan.

Tugas:

  1. Membangun/mengembangkan software terutama pada tahap requirement, design dan sebagian dalam tahap construction/implementation
  2. Membuat dokumen requiremant dan desain software berdasarkan proses bisnis customer/client
  3. Membuat proposal dan mempresentasikannya di hadapan stake holder / customer / client
  4. Membuat desain database bila aplikasi yang akan di bangun memerlukan database
  5. Membangun/mengembangkan framework/library untuk digunakan dalam pengembangan software oleh programmer
Keahlian yang Diperlukan:

  • Menguasai hal-hal yang dikuasai programmer
  • Menguasai metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP, design pattern, UML (kemampuan membangun/mendesain)
  • Menguasai SQL, ERD dan RDBMS secara lebih mendalam
  • Memahami tentang arsitektur aplikasi dan teknologi terkini
Latar Belakang:

Ilmu Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi Komputasi

Standar Profesi di Bidang IT

===  Jenis-jenis Profesi Dibidang IT  ===

Saat ini ada banyak aneka profesi di bidang IT atau Teknologi Informasi. Perkembangan dunia IT telah melahirkan bidang baru yang tidak terlepas dari tujuan utamanya yaitu untuk semakin memudahkan manusia dalam melakukan segala aktifitas.

Munculnya bidang IT yang baru juga memunculkan profesi di bidang IT yang semakin menjurus sesuai dengan keahlian masing-masing. Berikut ini merupakan aneka profesi di bidang IT yang perlu kamu ketahui jika ingin berkecimpung di bidang pekerjaan IT atau Teknologi informasi.

Programmer adalah orang yang membuat suatu aplikasi untuk client/user baik untuk perusahaan, instansi ataupun perorangan.
Tugas:
  • Membuat program baik aplikasi maupun system operasi dengan menggunakan bahasa pemrograman yang ada.

Kualifikasi:
  • Menguasai logika dan algoritma pemrograman
  • Menguasai bahasa pemrograman seperti HTML, Ajax, CSS, JavaScript, C++, VB, PHP, Java, Ruby dll.
  • Memahami SQL
  • Menguasai bahasa inggris IT

Kriteria Manajer 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:
  1. Pengarahan (direction) yang mencakup pembuatan keputusan, kebijaksanaan, supervisi, dan lain-lain.
  2. Rancangan organisasi dan pekerjaan.
  3. Seleksi, pelatihan, penilaian, dan pengembangan.
  4. Sistem komunikasi dan pengendalian.
  5. 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:
  1. Karakter Pribadinya
  2. Karakteristik Kemampuan Terkait dengan Proyek yang Dikelola
  3. 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.

Sumber: 
https://saiiamilla.wordpress.com/2011/05/13/kriteria-manager-proyek-yang-baik/

COCOMO

COCOMO merupakan singkatan dari Constructive Cost Model yaitu algortima model estimasi biaya perangkat lunak yang dikembangkan dan diterbitkan oleh Barry Boehm. Cocomo merupakan sebuah model – model untuk memperkirakan usaha, biaya dan jadwal untuk proyek-proyek perangkat lunak.

COCOMO pertama kali diterbitkan pada tahun 1981 Barry Boehm W. ‘s Book rekayasa ekonomi Perangkat Lunak sebagai model untuk memperkirakan usaha, biaya, dan jadwal untuk proyek-proyek perangkat lunak. Ini menarik pada studi dari 63 proyek di TRW Aerospace mana Barry Boehm adalah Direktur Riset dan Teknologi Perangkat Lunak pada tahun 1981. Penelitian ini memeriksa proyek-proyek ukuran mulai dari 2.000 sampai 100.000 baris kode , dan bahasa pemrograman mulai dari perakitan untuk PL / I . Proyek-proyek ini didasarkan pada model waterfall pengembangan perangkat lunak yang merupakan pengembangan software proses lazim pada tahun 1981.

Macam-macam COCOMO :
1. Basic COCOMO menghitung usaha pengembangan perangkat lunak (dan biaya) sebagai fungsi dari ukuran program yang. Ukuran Program dinyatakan dalam perkiraan ribuan baris kode sumber ( SLOC )

COCOMO berlaku untuk tiga kelas proyek perangkat lunak:
Proyek Organik – “kecil” tim dengan “baik” pengalaman bekerja dengan “kurang kaku” persyaratan
Proyek semi-terpisah – “menengah” tim dengan pengalaman bekerja dicampur dengan campuran kaku dan kurang dari kebutuhan kaku
Proyek tertanam – dikembangkan dalam satu set “ketat” kendala. Hal ini juga kombinasi proyek organik dan semi-terpisah. ( Hardware, software, operasional ).

2. Medium COCOMO menghitung usaha pengembangan perangkat lunak sebagai fungsi dari ukuran program yang dan satu set “driver biaya” yang mencakup penilaian subjektif dari produk, perangkat keras, personil dan atribut proyek. Ekstensi ini mempertimbangkan satu set empat “driver biaya”, masing-masing dengan sejumlah atribut anak.

3. Detail COCOMO menggabungkan semua karakteristik versi intermediate dengan penilaian dampak cost driver di setiap langkah (analisis, desain, dll) dari proses rekayasa perangkat lunak.

Model rinci menggunakan pengganda usaha yang berbeda untuk setiap cost driver atribut. Ini Tahap pengganda upaya Sensitif masing-masing untuk menentukan jumlah usaha yang diperlukan untuk menyelesaikan setiap tahap.

Dalam rinci COCOMO, upaya dihitung sebagai fungsi dari ukuran program yang dan satu set driver biaya yang diberikan sesuai dengan setiap fase siklus hidup perangkat lunak.
Sebuah jadwal proyek rinci tidak pernah statis.

Kelima fase rinci COCOMO adalah :

  1. rencana dan kebutuhan.
  2. desain sistem.
  3. desain rinci.
  4. kode modul dan uji.
  5. integrasi dan pengujian.


Sumber:

 https://balakenam.wordpress.com/2013/04/12/cocomo-dan-sebutkan-jenis-jenisnya/

Kenapa open soure??

Open source software adalah istilah yang digunakan untuk software yang membuka/membebaskan source codenya untuk dilihat oleh orang lain dan membiarkan orang lain mengetahui cara kerja software tersebut dan sekaligus memperbaiki kelemahan-kelemahan yang ada pada software tersebut. Dan yang menarik dan salah satu keunggulannya adalah bahwa Open source software dapat diperoleh dan digunakan secara gratis tanpa perlu membayar lisensi. Biasanya orang mendapatkan software ini dari internet. Salah satu open source software yang terkenal yaitu Linux. 

Keberadaan open source software ini sangat ditunjang oleh internet. Mula-mula Open source software diambil dari internet kemudian digunakan oleh orang dan diperbaiki apabila ada kesalahan. Hasil perbaikan dari open source ini kemudian dipublikasikan kembali melalui internet yang memungkinkan orang lain menggunakan dan memperbaikinya. Dan begitulah seterusnya. Saat ini sangat mudah mendapatkan open source software di internet.

Pengembangan open source software melibatkan banyak orang dari berbagai penjuru dunia yang berinteraksi melalui internet. Maka bermunculanlah berbagai macam software yang dibuat berbasis open source ini yang dipublikasikan melalui internet. Pola open source ini telah melahirkan developer-developer handal dari berbagai penjuru dunia.

Dengan pola open source orang dapat membuat dan mengembangkan apa yang disebut dengan free software. Software ini dapat digunakan tanpa perlu membayar lisensi atau hak cipta karena memang dikembangkan dengan pola open source. Jadi, dengan pola open source orang dapat mengembangkan software dan mempublikasikannya dengan bebas melalui internet. Maka tidak heran apabila kita akan banyak menemukan free software ini di internet dan bisa secara bebas mendownloadnya tanpa perlu membayar uang sepeser pun kepada pengembang software tersebut.

Free software disini juga bukan program kacangan. Anggapan bahwa barang yang gratis jelek kualitasnya tidak berlaku buat free software. Karena sudah terbukti kehandalannya. Dan karena free software berbasis open source maka software tersebut sudah melalui proses perbaikan yang terus menerus. Jadi tidak ada alasan tidak mau menggunakan free software ini dengan alasan kualitasnya yang tidak baik.

Dengan karakteristik yang telah disebutkan di atas maka tidak salah apabila kita menaruh harapan pada open source ini sebagai platform alternatif yang bisa kita gunakan dalam komputer kita. Penerapan pola open source di Indonesia juga dapat menghilangkan pemakaian software komersial secara ilegal dan memungkinkan bangsa Indonesia dikenal karya ciptanya dengan ikut mengembangkan open source software.

Lalu apa sebenarnya kelebihan dan kekurangan aplikasi open source?

Kelebihan:

1.Free, Aplikasi open source itu bebas (free). Siapapun dapat menggunakan dan mengembangkannya Lebih banyak didukung oleh komunias. Artinya jika ada celah atau bugs akan segera diperbaiki oleh komunitas.
2. Ringan, Aplikasi open source hampir semuanya ringan, tidak seperti aplikasi berbayar yang membutuhkan spesifikasi yang berat.
3. Sederhana, Aplikasi open source lebih simple dibanding aplikasi berbayar
4. Kebanyakan aplikasi open source dapat digunakan hampir di semua platform

Kekurangan:
-Kadang-kadang membingungkan pengguna, karena sulit dimengerti
-Bagi yang tidak terbiasa menggunakan aplikasi open source akan menganggap sulit
-Fitur-fitur open source tidak semewah aplikasi berbayar
-Beberapa aplikasi tidak compatible dengan aplikasi berbayar yang lebih banyak digunakan.


sumber :
http://www.organisasi.org/1970/01/penjelasan-pengertian-open-source-software-dan-free-software.html
http://guraru.org/guru-berbagi/kelebihan_dan_kekurangan_open_source/