Tulisan ini merupakan lanjutan dari Paradigma Web 2.0 bagian pertama yang telah saya tulis sebelumnya disini. Jika pada tulisannya sebelumnya, saya cenderung menyoroti adanya suatu perubahan paradigma dalam platform Web 2.0, maka pada bagian ini, saya akan menyoroti beberapa faktor pemicu akselerasi Web 2.0 itu.
Keilmuan Informatika merupakan keilmuan yang berkembang pesat, karena dinamis dan mengglobal. Dari sudut pandang saya, maka akselerasi perkembangan Web 2.0 itu dapat dilihat dari beberapa faktor. Faktor-faktor tersebut adalah process, people and technology.
1. Process
Process yang saya maksudkan disini adalah proses pengembangan perangkat lunak aplikasi. Sebenarnya Web 2.0 adalah produk perangkat lunak, dimana perangkat lunak ini, dibangun dengan disiplin software engineering. Nah, dari kacamata software engineering, maka pengembangan aplikasi perangkat lunak harus mengikuti SDLC atau Software Development LifeCycle. Bahasan tentang metodologi SDLC selengkapnya bisa dilihat pada tulisan2 saya disini, disini dan disini. Ketiga metodologi yang telah saya tuliskan itu merupakan metodologi pengembangan perangkat lunak dengan paradigma SDLC dan telah terbukti ampuh menjawab permasalahan pengembangan aplikasi.
Memasuki era 2000- an, maka muncul suatu pendekatan baru dalam pengembangan aplikasi perangkat lunak, khususnya aplikasi perangkat lunak berbasis web. Pendekatan tersebut adalah pendekatan agile.
Pendekatan agile software development pada aplikasi perangkat lunak berbasis web, sangat mempersingkat waktu pengembangan aplikasi. Biasanya dibutuhkan waktu berbulan-bulan bahkan setahun lebih untuk mengembangkan sebuahbaplikasi berbasis web, tapi dengan metodologi dgn pendekatan agile, maka menghasilkan produk software menjadi lebih singkat. Kuncinya sebenarnya ada pada menghasilkan "beta released" dari suatu aplikasi dan komitmen stakeholders dalam membuat perangkat lunak. Dengan menunjukkan terlebih dahulu kepada stakeholders suatu working - software dalam versi beta released, maka time to market sebuah aplikasi dapat dipercepat.
Selain itu pendekatan agile juga bersifat lebih responsive terhadap perubahan requirement. Kita tahu bersama, dalam pengembangan suatu aplikasi perangkat lunak, perubahan requirement sering terjadi. Saat sebuah perangkat lunak direleased untuk digunakan organisasi, biasanya perangkat lunak tersebut "mengikuti" proses bisnis tertentu dalam organisasi. Dalam dunia bisnis, perubahan proses bisnis seringkali menjadi "mati hidupnya" suatu organisasi. Dengan karakteristik agility, maka aplikasi perangkat lunak yang dibangun untuk mendukung proses bisnis, dapat diubah, disesuaikan dalam waktu yang relatif singkat.
Prinsip pendekatan agile selengkapnya dapat ditemukan pada Agile Alliance. Prinsip dasarnya menjelaskan bahwa pendekatan agile dalam disiplin ilmu teknik informatika diperlukan untuk mengurangi kelambanan dalam tahapan pengembangan perangkat lunak, guna mengantisipasi kebutuhan bisnis yang menuntut dihasilkannya perangkat lunak dengan time-to-market yang singkat. Pendekatan Agile juga berarti sebagai suatu tim yang siap merespons perubahan, yakni perubahan kebutuhan pengguna. Dalam pemahaman ini berarti setiap tim pengembang harus erat bekerja sama dengan pengguna dalam mengembangkan aplikasi berbasis web. Kolaborasi pengguna dan pengembang sangat krusial dilakukan untuk mengantisipasi adanya perubahan dalam kebutuhan perangkat lunak. Tanggap mengantisipasi perubahan merupakan ciri utama dari pendekatan agile.
Dalam pengalaman saya mengembangkan aplikasi perangkat lunak, maka menggunakan paradigma Agile adalah "susah susah gampang" (dialek Manado, yang berarti kondisi kerja yang mudah namun di saat yang bersamaan bisa menjadi sulit). Tantangannya disini adalah bagaimana mendapatkan stakeholders yang memiliki komitmen, dan menemukan programmer yang ready. Untuk situasi dan kondisi di Manado (hingga tulisan ini dibuat, 2012), maka kombinasi stakeholders yang berkomitmen dengan programmer yang ready, SUKAR ditemukan.
Implementasi pendekatan agile relatif lebih mungkin dilakukan dalam situasi dan kondisi pengembangan keilmuan, misalnya dalam penyelesaian Kerja Praktek dan Tugas Akhir mahasiswa. Untuk inipun, masih sebatas pada metodologi Agile - Unified Proces; yang pada dasarnya bukanlah metodologi ägile" yang original, karena masih "dikaitkan" dengan Unified Software Development Process.
Saya berpendapat bahwa perkembangan Web 2.0 yang pesat ditunjang oleh manusia itu sendiri. Kita tidak bisa melupakan jasa para software engineers yang melakukan riset-riset terkait yang mendukung kelahiran Web 2.0 dan teknologi jaringan komputer. Sebut saja Tim Bernes Lee dari CERN. Kemudian Bill Gates dari Microsoft dan Steve Jobs dan Steve Wozniak dari Apple. Saya secara pribadi mengagumi Dennis Ritchie yang mengembangkan bahasa C. Bahasa C ini menjadi dasar pengembangan berbagai aplikasi yang mendukung lahirnya aplikasi perangkat lunak berbasis web. Linus Trovalds juga merupakan salah satu tokoh yang perlu disebut. Bagian ini saya akan jelaskan pada tulisan yang tersendiri.
3. Technology.
Secara mendasar, teknologi yang mendukung perkembangan Web 2.0 dapat dibagi menjadi 3 bagian: 1) hardware, 2) jaringan dan 3) software. Bagian ini pun saya akan tuliskan tersendiri.