Senin, 09 Januari 2012

Jadi Pebisnis IT, Siapa Takut?

Pada suatu pagi di musim dingin tahun 1974, dalam perjalanan mengunjungi sahabatnya Bill Gates, Paul Allen membaca artikel majalah Popular Electronics dengan judul World’s First Microcomputer Kit to Rival Commercial Models. Artikel ini memuat tentang komputer mikro pertama Altair 9090. Allen kemudian berdiskusi dengan Bill Gates, dan mereka menyadari bahwa era “komputer rumah” akan segera hadir dan meledak, membuat keberadaan software untuk komputer-komputer tersebut sangat dibutuhkan. Bill Gates kemudian menghubungi perusahaan pembuat Altair, yaitu MITS (Micro Instrumentation and Telemetry Systems). image024.jpgDia mengatakan bahwa dia dan Allen, telah membuat BASIC yang dapat digunakan pada Altair. Tentu saja ini adalah bohong. Bahkan mereka sama sekali belum menulis satu baris kode pun. MITS, yang tidak mengetahui hal ini, sangat tertarik pada BASIC. Dan hebatnya dalam waktu 8 minggu BASIC telah siap diimplementasikan dan bekerja sempurna di Altair. Setahun kemudian Bill Gates meninggalkan Harvard, dan bersama dengan Paul Allen mendirikan Microsoft.
image012.jpgKisah berbeda datang dari Jerry Yang, yang pada tahun 1990 menjalani program doktor di Stanford University. Bersama dengan sahabatnya David Filo, mereka lebih menyukai kegiatan surfing di Internet, daripada aktifitas dan penelitian program doktor yang mereka ikuti. Mereka mulai mengumpulkan link situs-situs yang menarik, sampai akhirnya list yang mereka buat telah menjadi terlalu panjang dan terlalu banyak. Mereka kemudian membaginya menjadi banyak kategori dan subkategori. Inilah peristiwa bersejarah yang mengawali lahirlah perusahaan besar bernama Yahoo!. Yahoo merupakan singkatan dari �Yet another Hierarchical Officious Oracle�. Awalnya, yang mengakses ke direktori Yahoo! hanya Yang, Filo, dan beberapa teman dekat mereka di Stanford University. Namun, dari obrolan mulut ke mulut, orang mengakses ke Yahoo! menjadi semakin banyak. Mengetahui bahwa orang yang mengakses ke Yahoo! menjadi sangat banyak, mereka akhirnya menjadikan Yahoo! sebagai bisnis. 
Dua kisah diatas tercatat dalam sejarah bagaimana sebuah bisnis Information Technology (IT) dapat terlahir. Dan masih banyak kisah-kisah lain tentang kesuksesan bisnis IT, yang kadang dimulai dari sesuatu yang sederhana, dari sebuah hobi atau kemampuan kita membaca kebutuhan masyarakat terhadap suatu solusi. Bidang IT termasuk bidang yang unik, karena banyak sekali pebisnis dan tokoh-tokoh IT lahir justru karena kekuatan karakter dan kreatifitas.
Nah, keunggulan yang diperoleh seseorang karena pengakuan dan penghargaan publik terhadap hasil karya, produk, ide dan perjoeangan yang dilakukan adalah merupakan keunggulan defacto. Sebaliknya keunggulan yang diperoleh seseorang karena gelar (degree), sertifikasi (certification) dan pengakuan formal, sering saya sebut sebagai keunggulan dejure. Bisnis dan peluangnya bisa lahir dari keunggulan defacto maupun dejure, dan keduanya bisa saling melengkapi.
image014.jpgBill Gates, Kevin Mitnik, Steve Jobs, dan William Joy, adalah nama-nama yang besar di dunia IT karena keunggulan defacto mereka. Orang mungkin juga lupa bahwa Jerry Yang adalah seorang akademisi yang menguasai dengan baik teori-teori dasar komputasi. Meskipun dia lebih terkenal karena sebagai founder dari Yahoo.Com. William Joy yang lulusan the University of California Barkeley, justru lebih terkenal karena sebagai pendiri dari Sun Microsystems. Bill Gates dan Kevin Mitnik juga memberikan nyata bagaimana keunggulan defacto menjadi sesuatu hal yang dominan dalam terlahirnya sebuah bisnis.
image027.jpgMenariknya fenomena ini juga dikaji secara mendalam laporan khusus Gartner 2006 (Gartner Predictcs 2006 Special Report), meskipun dengan terminologi yang berbeda. Diramalkan bahwa pada tahun 2010 pasar kerja para spesialis IT akan berkurang hingga 40%. Para spesialis (specialist) ini akan digantikan oleh versatilis (versatilist), yang mampu mengkombinasikan kompetensi dan keahlian teknis, dengan pengalaman bisnis dan kemampuan memberikan solusi komprehensif. Dengan degree dan sertifikasi, kita mungkin akan bisa menjadi seorang spesialis dalam suatu bidang (keunggulan defacto). Tapi ternyata ini saja tidak cukup, diperlukan kemampuan verbal, komunikasi memberi solusi dan berhubungan dengan orang lain (keunggulan defacto). Ini yang disebut dengan seorang versatilis, dan versatilis bukanlah generalis yang tahu banyak hal tapi dangkal atau hanya kulit-kulitnya saja.
Inilah jalan untuk survive dan menjadi seorang entrepreneur di dunia IT. Dan Sumber Daya Manusia (SDM) IT Indonesia, sejak dini sebaiknya diarahkan untuk memiliki kombinasi kedua keunggulan tersebut. Di satu sisi kita selalu encourage mahasiswa-mahasiswa kita untuk melanjutkan sekolah ke jenjang yang lebih tinggi. Di sisi lain kita ajak untuk aktif dan kreatif lewat kerja-kerja unik yang dibutuhkan oleh masyarakat secara luas. Memberi kesempatan mereka untuk mengerjakan berbagai project atau mengembangkan produk yang bisa mereka jual. Dan pengalaman itu mematangkan teori dan konsep yang mereka dapatkan di bangku kuliah. Saya sendiri sejak duduk di tingkat 2 program studi S1 di Saitama University, sudah mulai mencoba kerja part time, bergabung ke berbagai perusahaan IT di Jepang, menjadi programmer, engineer, atau lecturer. Bekerja bersama dan berkomunikasi dengan rekan-rekan di Industri, ternyata mematangkan dan memberikan ruh ke ilmu pengetahuan konseptual yang saya dapatkan di bangku kuliah.
Yang menarik, dari ratusan tawaran mengajar, seminar, maupun kesempatan bisnis yang mampir ke saya, sebagian besar datang karena aktifitas saya di dunia maya, karena IlmuKomputer.Com yang saya buat, karena tulisan-tulisan saya di media cetak, elektronik, dan di situs blog RomiSatriaWahono.Net, ataupun karena pendapat saya di milis-milis. Ini semua  (defacto). Sebagian lagi datang karena saya peneliti di LIPI atau karena degree saya (dejure).
Pesan terakhir untuk rekan-rekan generasi muda yang ingin mendaki jalan hidup sebagai seorang entrepreneur di bidang IT:
  • Sistem operasi, bahasa pemrograman, software dan teknologi hanyalah  sebuah tool (alat) yang harus kita kuasai dan gunakan untuk memecahkan masalah. Tool tersebut bersifat tidak kekal, dan bukanlah agama yang harus dianut atau difanatikkan seumur hidup. Ketergantungan terhadap sebuah tool adalah kebodohan. Debat kusir tentang tool dan saling mengumpat atau membela mati-matian sebuah tool adalah tindakan sia-sia, karena mereka masing-masing memiliki kelebihan dan kekurangan.
  • Setiap peluang memiliki nilai untung dan rugi, setiap keputusan yang diambil dalam hidup harus memperhitungkan opportunity cost yang harus dibayar. Ketika kita harus mengambil cuti kuliah untuk mengerjakan sebuah project IT, harus diperhitungkan benar seberapa jauh cost yang kita keluarkan untuk mendapatkan pengalaman tesebut.
  • Pembelian buku dan komputer harus kita anggap sebagai sebuah investasi. Kita harus produktif menggunakan buku dan komputer untuk menghasilkan keuntungan baik material maupun pengalaman.
  • Cerdas dalam mengambil berbagai peluang yang ada dan usahakan mengemasnya dalam sebuah karya dan produk yang menjadi solusi bagi orang lain.
  • Mengambil kesempatan kerja part time atau full time sebagai proses pembelajaran dan melatih diri secara riil di dunia industri.
  • Latihlah kemampuan verbal. Diantara kesibukan berkomunikasi dengan mesin (komputer), tetap latih teknik dan strategi berkomunikasi dengan manusia. Berlatihlah menyampaikan pengetahuan dan teknologi yang kita kuasai dengan bahasa sederhana dan dapat dipahami dengan mudah oleh orang awam sekalipun.
  • Bangun jaringan (networking) dan kerjasama dengan berbagai pihak. Setiap pertemuan dengan orang lain, siapapun dia, akan membawa manfaat bagi kita, meskipung kadang-kadang tidak langsung datang seketika.
Siapapun kita, apapun degree kita, apapun bidang kerja kita, asal kita sudah berniat untuk terjun di bisnis dan industri IT, kita bisa mulai dari keunggulan defacto dan dejure yang kita miliki. Jadi pebisnis IT, siapa takut?

Meluruskan Istilah Hacker

Sebagian besar literatur menyebut bahwa istilah dan budaya hacker pertama kali digunakan pada tahun 1961 ketika MIT mendapat kesempatan menikmati mesin PDP-1. Komputer pertama produksi DEC ini menjadi mainan favorit mahasiswa MIT khususnya yang tergabung di Tech Model Railroad Club. Mereka membuat alat-alat pemrograman, membuat banyak program, mengembangkan etika, jargon dan bahkan ngoprek PDP-1 sehingga menjadi mesin video-game generasi awal. Budaya inilah yang kemudian terkenal menjadi budaya hacker yang sebenarnya. Para hacker diTech Model Railroad Club menjadi tim inti laboratorium penelitian Artificial Intelligence(AI) MIT yang menjadi pioneer dalam penelitian AI di dunia sampai saat ini.
Project ARPAnet yang dikembangkan oleh Departemen Pertahanan Amerika tak lepas dari campur tangan para hacker MIT ini. ARPAnet lah yang menyatukan  budaya hacker dari berbagai “suku”, misalnya dari Standford University dan Carnegie Mellon University (CMU). Para hacker MIT bahkan akhirnya berhasil mengembangkan sistem operasi sendiri bernama ITS (Incompatible Time-Sharing System) yang legendaris, menggantikan TOPS-10 sistem operasi standard yang diproduksi oleh DEC untuk PDP-10. ITS awalnya dibangun dengan assembler, tapi kemudian diubah ke dalam bahasa LISP, bahasa pemrograman functional yang dekat dengan dunia Artificial Intelligence.
Kreasi lain dari para hacker MIT yang cukup legendaris adalah Emacs (karya Richard Stallman), editor favorit yang tetap dipakai oleh banyak programmer mesin unix sampai saat ini. Saya mengenal pertama kali Emacs ketika masuk kampus di Saitama University tahun 1995, saya gunakan untuk menulis semua laporan kuliah saya, membaca email, browsing web, membaca newsgroup dan bahkan Emacs jugalah yang saya gunakan untuk membangun IlmuKomputer.Com generasi awal. Selain hacker dari MIT, para hacker Stanford University dan CMU juga tidak mau kalah, mereka bahkan berhasil mengembangkan aplikasi bersekala besar berupa expert system dan robot industri.
Hacker dari Bell Labs bernama Ken Thomson yang dibantu oleh hacker lain bernama Dennis Ritchie dengan bahasa C-nya mengembangkan sistem operasi Unix. Kolaborasi Thomson dan Ritchie adalah kekuatan yang sangat fenomenal, karena mesin Unix dan bahasa C adalah formula manjur pengembangan sistem operasi Unix dari varian manapun sampai saat ini (BSD maupun System V dimana Linux termasuk didalamnya). Perlu dicatat juga bahwa pada tahun 1982, para hacker dari Stanford dan Berkeley yang dipimpin William (Bill) Joy mendirikan satu perusahaan bernama Sun Microsystem.
Era 1984 dimulainya berbagai episode cracking yang cepat terkenal karena diangkat oleh pers dan para jurnalis. Para jurnalis mulai keliru menyebut kejahatan komputer dan penyimpangannya sebagai sebuah “hacking activities” dimana pelakuknya disebut dengan hacker.
Hacker yang sebenarnya adalah seperti Richard Stallman yang berjuang dengan Free Software Foundation dan puluhan tahun bermimpi membangun sistem operasi bebas bernama HURD. Linux Torvald juga adalah seorang hacker sejati karena tetap komitmen dengan pengembangan kernel Linuxnya sampai sekarang. Kontributor dalam pengembangan Linux dan software open source lain juga adalah para hacker-hacker sejati.
Pelaku carding (penyalahgunaan kartu kredit), phreaking, dan defacing bukanlah hacker tapi mereka adalah cracker. Ungkapan legendaris dari Eric S Raymond dalam tulisan berjudul how to become a hacker, “hacker membangun banyak hal dan cracker merusaknya“. Hacker sejati adalah seorang programmer yang baik. Sesuatu yang sangat bodoh apabila ada orang atau kelompok yang mengklaim dirinya hacker tapi sama sekali tidak mengerti bagaimana membuat program. Sifat penting seorang hacker adalah senang berbagi, bukan berbagi tool exploit, tapi berbagi ilmu pengetahuan. Hacker sejati adalah seorang penulis yang mampu memahami dan menulis artikel dalam bahasa Ibu dan bahasa Inggris dengan baik. Hacker adalah seorang nerd yang memiliki sikap (attitude) dasar yang baik, yang mau menghormati orang lain, menghormati orang yang menolongnya, dan menghormati orang yang telah memberinya ilmu, sarana atau peluang.
Bukanlah sifat seorang hacker apabila diberi kepercayaan memegang administrasi di sebuah server malah memanfaatkannya untuk kegiatan cracking. Atau bahkan kemudian menyerang dan menghancurkan server dari dalam ditambahi dengan memberi ejekan kepada pemilik server yang telah memberinya kesempatan. Dengan terpaksa saya sampaikan, sayapun pernah mengalaminya. Selama ini saya selalu mendukung movement anak-anak muda di dunia maya, saya senang dengan semangat mereka. Ratusan komunitas saya beri domain dan hosting gratis sebagai reward perdjoeangan mereka karena mau sharing knowledge ke teman-teman lain di tanah air. Sayangnya ada cracker yang mengaku hacker (meski tidak memiliki attitude sebagai hacker) yang mempermainkan peluang ini. Setelah puas membuat satu dedicated server yang berisi ratusan situs komunitas lain di-shutdownperusahaan penyedia server karena kegiatan phreaking yang dia lakukan, masih sempatnya mengumpat saya dengan sebutan-sebutan yang tidak manusiawi. Apakah saya kapok? Tidak :) Saya akan tetap memberi kepercayaan, dukungan server dan domain gratis bagi aktifis-aktifis dunia maya.
Hacker bukanlah orang dengan nickname, screenname atau handlename yang lucu, konyol dan bodoh. Eric S Raymond menyebut bahwa menyembunyikan nama, sebenarnya hanyalah sebuah kenakalan, perilaku konyol yang menjadi ciri paracracker, warez d00dz dan para pecundang yang tidak berani bertanggungjawab atas perbuatannya. Hacker adalah sebuah reputasi, mereka bangga dengan pekerjaan yang dilakukan  dan ingin pekerjaan itu diasosiasikan dengan nama mereka yang sebenarnya. Hacker tidaklah harus orang komputer, karena konsep hacking adalah para pembelajar sejati, orang yang penuh antusias terhadap pekerjaannya dan tidak pernah menyerah karena gagal. Dan para hacker bisa muncul di bidang elektronika, mesin, arsitektur, ekonomi, politik, dsb.
Meluruskan pemahaman masalah hacker adalah proyek penyelamatan generasi dan perbaikan bangsa. Dan ini bisa dimulai dengan memperbaiki kurikulum pendidikankita sehingga mampu mendidik mahasiswa kita menjadi hacker sejati. Dan marilah kita bersama-sama berdjoeang supaya menjadi hacker yang bisa memberi manfaat dan yang bisa memperbaiki republik ini dari keterpurukan.

20 Gaya Posting Blog

Ada banyak gaya nulis posting blog yang bisa kita kombinasikan di posting blog kita, tanpa mengorbankan karakter dan brand blog kita. Sekali lagi harap dipahami, yang saya bahas adalah gaya postingan blog, dan bukan jenis, genre atau topik artikel blog. Gaya postingan tidak akan mengubah karakter dan topik bahasan blog kita, hanya membuat variasi untuk mempertahankan “kekuatan” nulis kita :) Tulisan saya olah dan adaptasi dari presentasi menarik Rohit Bhargava berjudul 25 Basic Styles of Blogging yang dibuat di sekitar tahun 2007.
Saya rangkumkan bahwa ada sekitar 20 gaya posting blog yang bisa kita gunakan pada blog kita. Supaya tidak bingung memahami tips yang ada pada tiap gaya, penjelasannya adalah seperti berikut:
  1. Maksimal Posting Per Pekan: Jumlah maksimal posting artikel per pekan yang dianjurkan, supaya orang tidak menjadi bosan (1, 2, 3,4,5+)
  2. Popularitas: Tingkat  popularitas dari gaya posting blog ini (1-5)
  3. Kesulitan: Tingkat kesulitan membuat artikel dengan gaya posting blog ini (mudah, sedang, sulit)
Okeh, kita mulai yuk :) Oh ya, apabila tertarik dengan presentasi (slide) yang saya bawakan pada acara Amprokan Blogger 2010, bisa didownload di akhir artikel ini. Posting ini adalah rangkuman dari apa yang saya tulis di slide, contoh-contoh nyata gaya posting blog beserta detail tipsnya dapat dipelajari melalui slide dalam format PDF.
  1. Insight Bloggingg: Membagi ide orisinil, pemikiran yang mendalam, trend dan komentar tentang suatu topik. Termasuk gaya ngeblog yang paling sulit dilakukan. Boleh memposting lebih dari lima kali sepekan dan tingkat popularitasnya juga tinggi (4). Meskipun harus dipahami bahwa tingkat kesulitannya adalah sangat tinggi (sulit).
  2. Ambition Blogging: Tujuan posting untuk mencapai suatu ambisi dan cita-cita yang diinginkan. Biasanya posting ditujukan untuk para pembuat keputusan. Karena tingkat kesulitan menulisnya relatif rendah dan demikian juga dengan popularitasnya, maka sebaiknya tidak memposting lebih dari satu artikel per pekan.
  3. PiggyBack Blogging: Posting tentang suatu topik yang sedang populer  dan ramai ditampilkan di  media massa. Bentuknya bisa opini, kajian analisa, dsb. Dengan tingkat kesulitan sedang dan popularitas yang lumayan (3), maka berburu posting seperti ini mungkin pilihan yang menarik bagi blogger yang tulisannya sedikit dikomentari orang :)
  4. Life Blogging: Disebut juga dengan reality blogging. Posting tentang cerita nyata yang terjadi pada kehidupan kita sehari-hari. Relatif mudah dilakukan, meskipun popularitasnya sedang (2). Jumlah postingan dengan gaya ini boleh lebih dari lima kali sepekan.
  5. Brand Blogging: Posting tentang atribut positif dari suatu brand, personal atau produk (inside look). Bisa juga berupa asosiasi individu dengan suatu brand baik sifatnya official atau unofficial. Harus hati-hati disikapi, meskipun tampak menggoda, dan boleh dilakukan lebih dari lima kali sepekan, tapi popularitasnya relatif rendah (2) :(
  6. Detractor Blogging: Posting tentang rasa tidak suka, komplen terhadap suatu layanan, produk atau brand. Biasanya karena blogger mendapatkan pengalaman buruk ketika menggunakan layanan, produk dan brand tersebut. Meskipun tingkat popularitas lumayan tinggi (3), tapi harap diingat untuk tidak melakukan posting dengan gaya ini sepekan lebih dari satu kali. Saya sendiri hanya pernah melakukan empat kali posting dalam kehidupan blogging saya. Terlalu vulgar melakukan detractor blogging akan membuat kita berhadapan dengan pasal 27 UU ITE :)
  7. Annoucement Blogging: Posting berupa suatu berita, pengumuman atau isu besar yang tidak diketahui umum sebelumnya. Efek maksimum akan diperoleh apabila kita menjadi penyebar berita yang pertama tentang isu tersebut. Meskipun termasuk posting yang sangat sulit khususnya mendapatkan timingnya, tapi termasuk yang kadang harus kita kejar karena tingkat popularitasnya yang aduhai banget (5) :)
  8. Link Blogging: Posting berupa koleksi link situs, blog atau konten lain yang dibutuhkan oleh pembaca. Apabila kita berhasil menyajikan link yang sangat dibutuhkan oleh pembaca kita, maka url posting kita ini akan dibookmark dan disimpan oleh pembaca kita. Kesulitannya lumayan, tapi popularitasnya relatif tinggi :)
  9. Video Blogging: Posting berupa video orisinil yang dibuat sendiri. Bisa juga dengan meletakkan video di YouTube, dibuatkan linknya di posting blog kita dan kita beri komentar dan analisa yang menarik. Popularitas tergantung dari kualitas video dan komentar yang kita sampaikan. 
  10. Photo Blogging: Posting yang utamanya berisi hasil jepretan foto. Foto biasanya berbentuk seri yang kita ambil langsung dari kamera kita. Bisa diberi tambahan komentar di posting ataupun hanya foto saja. Tingkat kesulitan lebih rendah daripada Video Blogging, tapi popularitasnya relatif sama. Cocok untuk menambal kebosanan pembaca kita yang sudah terbiasa membaca artikel yang berbentuk text di blog kita.
  11. Review Blogging: Opini dan review yang jujur dari kita mengenai suatu produk atau layanan. Bisa karena adanya permintaan, bayaran, atau inisiatif kita pribadi. Posting yang relatif mudah dilakukan, tapi popularitasnya lumayan. Termasuk posting yang harus sering kita kejar :)
  12. Evangelist Blogging: Tujuan untuk menginspirasi orang lain supaya percaya terhadap sesuatu yang kita percayai. Sesuatu itu bisa berupa masalah sosial, organisasi, produk atau individu yang kita percayai. Akan lebih dahsyat lagi apabila inspirasi dan ajakan dilandasi kajian yang semi ilmiah :)
  13. List Blogging: Posting berupa rangking 10 besar (top ten) atau semacamnya tentang suatu hal. Posting biasanya akan di bookmark dan disebarluaskan oleh pembaca blog kita. Dengan kesulitan sedang dan maksimal posting boleh lebih dari lima kali per pekan, termasuk yang mungkin harus sering kita buat. Apalagi kalau melihat tingkat popularitasnya yang tinggi (5). Bisa dimulai dengan merangking sesuatu yang sederhana dan parameter penilaian yang mudah.
  14. Survey Blogging: Posting berupa survey yang kita harapkan dijawab oleh pembaca blog kita. Survey bisa menggunakan plugin polling atau kita minta pembaca langsung menjawab di kolom komentar blog kita. Popularitasnya tinggi (4) dan mungkin relatif mudah kita lakukan bila kita menggunakan plugin polling. Bisa dimulai dengan membuat survey sederhana tentang aktifitas kita, buku yang kita baca, rumah yang ideal atau sesuatu yang sedang trend di masyarakat.
  15. Repost Blogging: Mengambil tulisan atau posting dari blog atau situs lain dan memposting di blog kita. Biasanya dengan diberi komentar tambahan atau hanya copas habis-habisan. Termasuk yang selalu saya hindari dalam ngeblog dan memang sebaiknya tidak kita lakukan karena akan menurunkan brand blog kita.
  16. Guest Blogging: Menulis artikel yang dipublish pada blog atau situs lain yang bukan milik kita. Biasanya karena kita bergabung ke sebuah komunitas atau kita tidak punya sarana untuk ngeblog.
  17. Interview Blogging: Posting berupa hasil interview terhadap seseorang. Dipublish dalam bentuk text (transkrip), audio,  atau video. Relatif sulit, tapi biasanya popularitasnya cukup tinggi. Boleh dilakukan lebih dari lima kali sepekan.
  18. Event Blogging: Posting berupa kesan, opini dan pemikiran tentang suatu event (seminar, conference, konser, etc) yang kita ikuti ataupun tidak. Popularitasnya tinggi bila banyak pembaca kita yang berhubungan dengan event yang kita postingkan
  19. Live Blogging: Posting apa yang saat ini  sedang terjadi secara realtime. Biasanya blogger menggunakan peralatan mobile dan pembaca mengikuti melalui RSS (sindikasi). Beberapa blogger sekarang menggunakan facebook dan twitter untuk live blogging. Termasuk yang popularitasnya tinggi, tapi harus hati-hati dalam editing artikel karena tingkat kesalahan menulis pada live blogging cukup tinggi (terbatasnya waktu).
  20. Classified Blogging: Adanya kebutuhan terhadap suatu produk atau layanan. Posting berupa pembukaan lowongan atau pernyataan pencarian suatu produk atau layanan yang kita inginkan untuk dibeli atau dijual. Mudah sekali dilakukan dan sebaiknya tidak sering kita lakukan :)
Demikian 20 gaya posting blog yang kita bisa gunakan untuk memperkaya konten blog kita. Blogger juga manusia yang merasakan letih, penat dan bosan. Selalu berorientasi Insight Blogging adalah baik, tapi bukan berarti ketika kondisi kita sedang tidak ada ide, terus blogging jadi terhenti. Kombinasikan dengan Photo Blogging, List Blogging, Live Blogging, etc bila keadaan memungkinkan. Itu akan membuat blog kita tidak membosankan, dan yang pasti kita tetap tidak kehilangan karakter kita dalam ngeblog.

Rekayasa perangkat lunak

     Rekayasa Perangkat Lunak (RPL) atau dalam bahasa inggris Software Engineering atau SE adalah satu bidang profesi yang mendalami cara-cara pengembangan Perangkat Lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
      Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan kata software engineering masukan konferensi tersebut menimbulkan debat tajam tentang aspek engineering dari pengembangan Perangkat Lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak.


Sejarah Software Engineering
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.
Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjaat pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perngkat lunak dalam tempo 10 tahun. Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.


Pengertian Dasar
Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999). Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.


Ruang Lingkup
Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:


 
Gambar 2. Ruang lingkup RPL (Abran et.al., 2004).
  1. software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
  2. software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik   lain dari perangkat lunak
  3. software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
  4. software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
  5. software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
  6. software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
  7. software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
  8. software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
  9. software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
  10. software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak


Metode Rekayasa Perangkat Lunak
      Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini.




Gambar 4. System Development Life Cycle (SDLC).

  • Kebutuhan terhadap definisi masalah yang jelas.  Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas.  Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah.  Oleh karena itu pemahaman masalah seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan perangkat lunak.
  • Tahapan-tahapan pengembangan yang teratur.  Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum  analysis – design – coding – testing - maintenance
  • Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan.  Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
  • Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak.  Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
  • Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis.  Nilai dari sebuah perangkat lunak sebenarnya agak susah di-rupiah-kan.  Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi,  efisiensi penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan “image” organisasi dan lain-lain.
 Tahapan Rekayasa Perangkat Lunak
Meskipun dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design – coding (construction) – testing – maintenance.

1.   Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka.
Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak.  Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.

2.   Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem  yang mentransformasikan data menjadi informasi (Harris, 2003).  Model proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses.  Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow Diagram / DFD).  DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi.

3.   Disain perangkat lunak  adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis computer (Whitten et al, 2004).
Disain perangkat lunak sering juga disebut sebagai physical design.  Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Whitten et al, 2004).
Output utama dari tahapan disain  perangkat lunak adalah spesifikasi disain.  Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi.  Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun.  Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini.   Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya.
Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface  yang mencakup desain  input,  output form dan report, desain hardware, software dan jaringan.  Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis.

4.   Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program komputer.

5.   Pengujian sistem melibatkan semua  kelompok pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima perangkat  lunak tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.

6.   Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu perawatan perangkat lunak.  Ada beberapa tipe perawatan yang biasa dikenal dalam dunia perangkat lunak yaitu :
  
  • Tipe perawatan  routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan. 
  • Tipe perawatan  routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan.
  • Tipe perawatan  sistem upgrade dilakukan jika ada perubahan dari komponen-komponen yang terlibat  dalam perangkat lunak tersebut. Sebagai contoh perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan perangkat lunak harus diupgrade.