Saturday, December 16, 2006

Mimpi Tentang Divisi Solution Provider dan Research And Development

Barusan, gw lagi di kantor, abis chat sama Danu yang lagi lembur di Jakarta, gw corat-coret di papan tulis kantor. Isinya tentang roadmap CASE Tools (tools buat bikin software) di Azpiration. Sampe hari ini, kami pake Azpiration Class Generator, dan Page Generator. Tapi gw terus kepikir untuk pengen bikin development jadi lebih mudah. Akhirnya gw corat-coret di papan tulis, apa aja yang harus dikerjain supaya tools yang udah kita punya ni bisa sampe ngehasilin running application, gak cuma skeleton dengan kode-kode seadanya atau template yang siap diattach ke viewer.

Kami di sini pake pattern MVC dan DAO. Model adalah salah satu jenis objek yang ada di aplikasi-aplikasi yang kita buat. Model ini yang menggambarkan objek-objek yang ada di dunia nyata. Nah, model-model yang ada di MVC ini, dihasilin oleh DAO masing-masing. DAO itu bakal ngambil data dari database, dan membuat objek model dari data tersebut. Berarti, yang pertama harus dilakukan adalah nambahin feature constraint antar model. Supaya setiap model bisa keliatan relasinya satu sama lain (apakah one to many, many to many dsb dsb). Lalu nambahin feature buat generate tabel-tabel di database berdasarkan model-model itu. Dengan begini, database bisa digenerate otomatis dari rangkain model yang kita punya. Tapi dibuat juga tools untuk melakukan perubahan2 yang perlu di database hasil generate otomatis tadi. Sehingga hasilnya bisa lebih flexible dan tetep terdokumentasi dengan baik di sistem.

Terus untuk tampilan. Tools untuk tampilan nantinya dikembangin dari tools yang sekarang udah ada. Jadi kita bisa nambahin komponen-komponen tampilan yang kita perluin. Lalu sistem akan men-generate template sesuai definisi yang kita buat. Nah, pengembanga dari ini, tools ini harus bikin viewer. Lalu kita bisa melakukan integrasi antara model dengan viewer. Contoh gini, orang tambahin tabel di halaman. Lalu orang itu mendifinisikan field-field apa aja yang akan ada di tabel. Lalu kita bisa buat link antara field-field tabel tersebut dengan model yang ingin kita tampilkan.

Lalu kedua paragraf diatas digabung jadi satu. Jadi deh tools versi awal yang memungkinkan orang melakukan pembuatan program full melalui tools tadi. Yang menarik lagi, tools ini pengen dibikin bisa roundtrip engineering. Jadi kalo orang mengubah coding, bisa kita masukkan kembali ke tools ini. Tidak hanya men-generate, tapi juga mengadopsi perubahan yang dilakukan programmer.

Dari ide ini, muncul ide untuk struktur divisi di perusahaan. Suatu hari, kalo insyaallah semua berjalan baik, gw pengen ada dua divisi yang saling bersinergi untuk tujuan menyediakan solusi yang sangat bagus. Divisi pertama adalah divisi Research And Development (Rdev). Divisi ini, kerjanya bikin tools yang gw ceritain tadi. Mereka berdedikasi habis-habisan untuk bikin tools yang bisa digunakan oleh orang-orang untuk membuat software dengan mudah.

Divisi berikutnya adalah solution provider. Divisi ini yang akan menghasilkan software-software untuk customer. Mereka menggunakan tools yang udah dibuat oleh Rdev. Rdev harus selalu menyelesaikan kebutuhan2 mereka berkaitan dengan tools development ini. Solusi dari Rdev bisa update software itu, atau karena belum memungkinkan, Rdev memberikan cara-cara manual untuk menyelesaikanya. Cara-cara manual ini akhrinya jadi SOP. Dengan begini, para solution provider ini gak lagi mikir masalah teknis yang jelimet-jelimet. Mereka lebih fokus ke solusi-solusi hebat untuk bisnis proses customer perusahaan. Di dalam divisi Solution Provider ini ada Sistem Analis, Business Consultant, dan para developer. Developer ini kerjanya pake tools tadi untuk bikin running application.

Pada akhirnya misahin divisi produksi software jadi dua divisi berbeda yang bekerja sama untuk buat produk-produk solusi yang berkualitas.

No comments: