Professional Software Development

Sebenarnya di  posting sebelumnya saya ingin membahas tentang buku ini, tapi jadi terlanjur cerita panjang mengenai perihal "membaca buku" itu sendiri.

Salah satu buku yang mulai saya baca sejak minggu lalu adalah Professional Software Development oleh Steve McConnell. Sejauh ini lumayan berhasil, sampai dengan selamat di chapter 6 hehe.

Bagi yang berkecimpung di dunia software develoment atau software engineering, nama Steve McConnell tentunya tidak asing lagi. Hampir semua buku-bukunya bisa dibilang langsung jadi karya klasik begitu terbit - ehm, maaf kalau gaya review saya terlalu heboh =P  Klasik maksudnya authoritative, bukannya kuno. Tapi saya sendiri baru membaca buku ini dari keseluruhan karyanya.

Waktu membaca judulnya, saya sempat ragu karena sekilas agak bernada 'jual obat': Professional gitu lho. Tapi ya karena pengarangnya itu Steve McConnell, dan buku ini agak jarang muncul di rak library (selalu di-reserve orang lain), saya bawa pulang juga akhirnya. Hitung-hitung mau melihat seberapa 'authoritative'-nya sih Steve McConnell ini.

Ternyata memang sesuai dengan popularitasnya. Sangat-sangat impresif - minimal buat saya. Gaya paparannya sangat jelas dan kena sasaran. Klasik. Rasanya sih perlu beli sendiri karena di dalamnya banyak referensi ke banyak buku/artikel/jurnal yang lain.

Dari 5 chapter pertama yang saya baca, pengalaman membaca buku Tricks of The Programming Gurus seperti terulang lagi. Semua kata-perkata seperti terasa hidup menusuk pikiran saya sehingga berkali-kali saya menggumam sendiri "Benaar... harusnya begini. Oooh.. rupanya begitu. Aaahh.. pantesan jadi kaya gono.."

-break- Untung saya sudah beristri. Kalau belum, bakal diledek banyak orang dengan "get a life, man!" melihat tingkat nerdity saya yang lumayan tinggi =P

Anyway, saya jadi teringat beberapa minggu yang lalu percakapan dengan seorang adik di gereja yang masih duduk di secondary school. Dia tertarik dengan computing dan berniat untuk meneruskan pendidikannya di Australia dengan major Software Engineering. Waktu itu saya dengan 'bijaknya' menyarankan supaya dia mengambil Computer Science saja, lebih luas pembahasannya, kalau nantinya tetap tertarik dengan software engineering bisa branch out atau belajar sendiri.

Ternyata di chapter 4 dan 5 buku ini argumen saya dibantai habis =P Software Engineering itu bukan subset dari Computer Science. Yang sering terjadi adalah miskonsepsi atau oversimplifikasi tentang hal ini. Berikut ini beberapa kutipan dari chapter 4 dan 5.

Pekerjaan engineering tidak dikerjakan oleh trained software engineer tetapi malah oleh computer scientist:

Universities award computer science degrees, and they normally expect their computer science students to obtain software development jobs in which they will immediately begin solving real-world problems.
... This puts computer science students into a technological no-man's land. They are called scientists, but they are performing job functions that are traditionally performed by engineers, without the benefit of engineering training.

Lembaga formal kurang menyediakan infrastruktur yang memadai dalam menyediakan pendidikan software engineering:

The lack of professional development isn't solely the software developer's failure. The software world has become a victim of its own success. The software job market has been growing faster than the educational infrastructure needed to support it ... The educational infrastructure has fallen behind industry's need.

Beberapa orang mengira software engineering = computer programming:

Some people think that "software engineering" is just a buzzword that means the same thing as "computer programming". Admittedly, "software engineering" has been misused.

Banyak programmer 'profesional' yang menilai software construction (programming dan sekitarnya) adalah hal yang paling penting dalam software engineering:

"Many practicing programmers work as though software construction is the only knowledge area that matters. As important as that area is, it is only one of ten areas that a professional software engineer should now." (semua huruf miring dari saya)

Walau hal-hal di atas sedikit banyak sudah saya ketahui/rasakan sejalan dengan pengalaman 'profesional' yang saya miliki, menurut saya Steve sangat berhasil dalam menyampaikan urgensi/kepentingan di pemikirannya.

Di kesempatan mendatang saya bertemu dengan rekan saya tersebut, rasanya saya akan mendukung dia untuk mengambil Software Engineering sebagai pendidikan under graduate-nya. Sudah terlalu banyak computer scientist jebolan berbagai universitas yang mengalami pahitnya pengalaman ber-engineering tanpa bekal yang cukup. Termasuk saya juga rasanya. Jika ada seorang pemuda/i yang mau dan bisa dilatih sebagai engineer, mengapa dia harus menjadi seorang scientist? Dunia memerlukan keduanya, dan bahkan pada kenyataannya dunia komersil kebanyakan lebih memerlukan engineer daripada, ya itu, scientist.

Hehehe jadi esmosi gini, nggak ada maksud mendiskreditkan scientist kok. Saya sendiri adalah seorang scientist at heart, tapi tetap butuh menjadi seorang engineer at work. Cuma memang lumayan 'keras' juga pengalaman kerja yang dibutuhkan untuk menimbulkan kesadaran akan hal ini. Seandainya waktu kuliah dulu Software Engineering bukan hanya sekedar salah satu mata kuliah (ditambah sangat membosankan dan terasa out-of-date waktu itu), paling nggak kan saya tidak merasa 'ter-bully' selama 5 tahun ini hehehe...

Sebagai penutup, blog entry kali ini saya dedikasikan buat teman-teman di company saya yang lama (when the going gets tough, the tough getting tougher ajee.. =P) dan 'adik-adik' saya yang manis ^___^  You MUST read all Steve McConnell's books, start with this one!

PS: Beginilah kalau pakai free service, tidak bisa banyak mengatur. Posting saya sebelumnya yang berjudul "Mulai baca buku" ternyata diberi permalink "setelah_67_tahu.html" gara-gara ketika meng-save draft-nya pertama kali lupa diberi judul. Nggak begitu mengganggu sih, tapi sebagian jiwa perfeksionis saya lumayan "teriak-teriak" =P  Jadi bagi sodara-sodara yang 'rada-rada' - seperti saya, ingat ya untuk beri judul, tentukan kategori dsb. sebelum meng-save sebagai draft.

Mulai baca buku

Setelah 6-7 tahun tidak pernah membaca buku secara serius, minggu lalu saya mulai 'memaksa' diri saya membaca buku lagi - secara serius. Sejak bekerja dengan akses Internet 'tak terbatas' tahun 1998, saya terkagum-kagum dengan luapan informasi yang deras menerpa sampai sering tidak sadar jadi 'megap-megap sulit bernafas' karena kepenuhan 'air' informasi yang saya coba telan semuanya. Saking ekstrimnya, saya sempat punya prinsip: "Ngapain baca buku, semuanya kan ada di Internet. Gratis lagi."

Sekedar retrospek, buku terakhir yang saya beli dan baca habis adalah Tricks of The Game Programming-Gurus oleh André LaMothe dkk., waktu awal-awal kuliah dulu (sekitar 1996-97). Buku ini adalah salah satu buku orisinal yang saya beli di tengah maraknya buku bajakan (fotokopian) yang dulu banyak dijual oleh Hardy di pusat pertokoan komputer Harco, Glodok. Sampai sekarang LaMothe masih meninggalkan impresi yang sangat baik dalam memaparkan pemikirannya, terbukti buku setebal 700+ halaman itu saya lalap kurang dari 3 minggu. Jadi, bolehlah kalau diajak ngomong soal raycasting atau primitive 3D programming di DOS - duh oldskool bener yak =P

Jadi panjang ngelanturnya, beginilah kalau lama nggak ngeblog ^_^

Kembali ke topik, akhirnya minggu lalu saya mulai membaca buku lagi. Sebenarnya saya bukannya tidak pernah membaca buku sama sekali sih, lumayan ada beberapa buku yang saya -ehm- coba baca, tapi ujung-ujungnya lebih banyak yang masih utang dibandingkan yang berhasil diselesaikan. Padahal saya termasuk hobi pinjam buku di National Library, tapi kurang hobi baca serius, apalagi ngebalikin hehehe.. Tapi sebenarnya agak kebetulan juga, karena awalnya saya masih memegang prinsip "baca dari Internet - nggak mau dari buku" yang sama. Cuma karena setengah tahun ini informasi yang saya lahap itu luar biasa derasnya dari berbagai blog dan website berita, seperti yang saya sampaikan di atas, saya jadi kewalahan. Overloaded, gitu.

Lalu sampai suatu saat, blog-blog yang saya subscribe entah bagaimana banyak membahas sebuah buku tentang produktifitas yang sangat-sangat populer: Getting Things Done oleh David Allen. Singkat cerita, ini adalah (sejauh ingatan saya) buku kedua yang saya beli di Singapore. Tapi saya masih punya masalah dengan 'prinsip' saya, rasanya kok informasi dari Internet jauh lebih menarik daripada membaca buku, terbukti sampai sekarang GTD ini belum selesai-selesai juga saya baca padahal sudah dibeli sejak 5-6 bulan yang lalu walaupun tidak sampai 300 halaman. Sampai akhirnya ada 3 hal dari blog-blog yang saya ikuti yang menyadarkan saya tentang pentingnya baca buku.

Saya lupa blog yang pertama, tapi intinya kurang lebih adalah: Informasi dari Internet itu sifatnya ringan, ngetrend, cenderung 'dangkal', distraktif, topik yang dibahas luas. Sedangkan informasi dari buku itu ruang lingkupnya fokus/terbatas dan pembahasannya dalam. Sering membaca informasi dari Internet maka kita jadi tahu sedikit tentang banyak hal. Kebalikannya, dengan membaca buku, kita bisa tahu banyak tentang sedikit (tertentu) hal. Dari pengalaman membaca buku GTD, sampai sekarang saya tidak menemukan ada website yang bisa memaparkan gagasan GTD sejelas  dan selengkap pengarang aslinya.

Blog yang kedua adalah dari Josh Kaufman: The Josh Kaufman "Personal MBA" yang mengutip Seth Godin: kita bisa meperoleh intisari sebuah pendidikan MBA tanpa mengeluarkan banyak biaya 'hanya' dengan membaca 30-40 buku secara dedikatif (plus pengalaman). Hmm, menarik. Catatan: Josh membuka website khusus The Personal MBA dan mengupdate blog entry-nya tentang hal ini.

Hal yang ketiga adalah: banyak dari blog-blog pribadi yang saya ikuti memuat daftar buku yang mereka baca dan rekomendasikan. Semua blogger yang pandai-pandai dan berwawasan itu saja banyak membaca buku. Walaupun terang-terangan 'prinsip' saya tidak mungkin benar, tetap perlu dong bukti-bukti yang bisa meyakinkan kalau saya salah hehehe..

Begitu deh ceritanya. Jadi, lebih baik mana: tahu sedikit tentang banyak hal, atau: tahu banyak tentang sedikit hal? Saat ini saya pilih dua-duanya.. ^_^