Saturday, December 01, 2007

Sejarah

Aku sengaja letak tajuk sejarah sebab tulisan ini ada kaitan dengan sejarah tetapi bukan sejarah Malaysia atau sesiapa ,tetapi serba sedikit cerita bagaimana aku terjebak dalam gejala agile methodology.

Aku memang peminat Domain Driven Design dan Test Driven Development dan aku memang practice kedua-dua cabang ilmu ini dalam software development sekarang ini. Memang niat aku dari dulu nak kongsi bersama, tetapi halangan masa dan lain-lain mengakibat niat untuk menulis dengan lebih mendalam perlaksanaan kedua-dua methodology ini belum tercapai.
Kenapa aku pilih Domain Driven Design? Permulaan perjalanan software development aku dalam Object Oriented bermula dari teknik yang dikenali sebagai Database Driven Design, segala maklumat yang disampaikan oleh pelanggan akan di terjermahkan kedalam bentuk Database Relational Design. Tapi bila semakin lama terlibat dalam analisis design dan apabila mula terlibat dengan beberapa project yang agak besar dan sebagai mana diketahui umum requirement biasanya selalu ada perubahan walaupun disaat akhir development. Kesakitan untuk membuat penukaran design amat terasa dengan penggunaan Database Driven Design. Penggunaan strored procedure seperti menjadi kepastian dalam software development aku ketika itu. Aku pernah terlibat dengan Aplikasi Pengeluaran ubat-ubatan farmasi dimana keseluruhan table berjumlah 130 dan bayangkan apabila jika logic ditulis didalam stored procedure, jika terdapat perubahan pada mana-mana bahagian business process, selalunya aku cadangkan untuk buat change request kerana untuk menyemak semula business logic mengguna Database Driven Design adalah amat mencabar. Aku mula mencari alternative lain yang memudahkan kerja aku, pada masa tersebut aku tak dengar lagi perkataan agile apatah lagi memahami process agile yang sebenar. Tapi pada masa tersebut walaupun aku mengguna Database Driven Design aku seboleh-bolehnya cuba untuk tarik keluar semaksima logic yang boleh digunakan dia dalam code, pada ketika itu aku dah mula memahami serba sedikit design pattern walaupun tidak mahir, pernah aku cuba masukkan beberapa design pattern yang mudah,tapi hampa kerana kekurangan ilmu.
Apabila didatangi masalah dan process development menjadi perlahan, aku cuba mencari maklumat berkaitan analisis pattern . Aku mula diperkenalkan dengan teknik Peter Coad iaitu UML In Color oleh brother Hamdi, aku juga mula mendapat maklumat berkaitan Hibernate/NHibernate. Setelah beberapa bulan mencuba NHibernate aku terasa development aku semakin laju sekarang tapi masih lagi kekurangan dari segi design/architecture. Alhamdulillah sekitar tahun 2004 aku terjumpa satu artikel berkaitan Domain Driven Design menerangkan kepentingan Domain Model design dan aku agak tertarik unutk mengetahui dengan lebih mendalam. Aku mula join group Domain Driven Design dan aku mula membeli buku Domain Driven Design. Pertama kali aku baca buku tersebut aku tidak faham sangat apa yang cuba disampaikan oleh penulis buku tersebut, kerana ianya agak baru benrbanding cara yang aku gunakan. Aku juga bertanya soalan didalam group tersebut dan aku cuba memahami beberapa pattern penting didalam buku tersebut dengan buat beberapa simple test project.

Semasa melayari group DDD, ada juga beberapa artikel menerangkan tentang combination TDD+DDD dan terdetik pada ketika itu aku tertarik untuk mengetahui apa itu TDD, aku start mendapat maklumat dari group XP Programing dan aku bertambah seronok dalam software development. Combination TDD+DDD=Agile.

0 comments: