Dear Faber, Aku mw share mengenai pengalaman ku ketika pertama kali masuk kerja. Kalo kemaren aku pertama kali masuk disuruh baca materi dari buku. Trus setelah makan siang ada sesi diskusi untuk mengecek pemahaman mengenai apa yg dibaca. Kemudian ada dikasih study kasus atau soal.
Buku pertama yg dikasih mengenai Extreeme Programming Adventure kareangan dari Ron Jefrries klo gak salah ingat. Di situ aku tw disiplin2 and good practice apa yg perlu diterapkan dalam development. Seperti Refactoring, Continous Integration, TDD (Test Driven Development). Setelah belajar teorinya. Baru dikasih pengarahan mengenai TDD berdasarkan contoh. Jadi sekalian ngerjain kasus latihan TDD. Ini kadang di pair dan kadang dibiarin mandiri. Tetapi tetap aja ada diskusi. Pada saat belajar TDD ini juga diterapkan refactoring dan juga penerapan design pattern (Buku panduannya Head First Design Pattern) Setelah TDD selesai disuruh blajar mengenai continous integration. Pilihan tools jatuh ke Cruise Control. Di sini jadi blajar build automation tools, code inspection dsb. Nah baru setelah ini disuruh belajar mengenai arsitektur yg digunakan. Baca buku Pattern of Enterprise Application (Martin Fowler) dan juga Domain Driven Design (Eric Evans). Berkenalan dengan pattern2 Dependency Injection, MVC, Layered Architecture, Remote Facade, dsb Pematangan mengenai implementasi dilakukan di project dan tentu saja ini di pairing oleh senior. Jadi kadang siklusnya senior buat test nya (karena model TDD) dan kita buat implementasinya. Juga kadang dibalik. Kita buat testnya dan senior buat implementasinya. Mengenai penerapan arsitektur yg dibaca2 sebelumnya juga di jelasin di situ. Sambilan pairing ya transfer knowledge. Disitu baru blajar Hibernate, Spring dengan melihat cara senior bekerja. Dan setiap pagi kan ada standup meeting tuh. Jadi ya kita bisa nanya kenapa ini begitu. Kesulitan nya kemaren dimana dsb. Itu dari pengalamanku bagaimana aku dituntun masuk ke dalam project pertama kali. Jadi aku setuju klo misalnya newcomer itu dituntun dengan pair programming tetapi sebelumnya diberikan fundamental yg kuat dulu mengenai konsep sebelum masuk ke tools. Regards, Welly Tambunan ________________________________ Dari: Faber Siagian <[email protected]> Kepada: [email protected] Terkirim: Sen, 12 April, 2010 20:29:53 Judul: [JUG-Indonesia] Organizing and Maintaining Code Dear all, Imagine you are a software architect or team leader or whoever which is responsible to organize and maintain your project's code, from the design/architecture or high level to the lowest level such as an individual class and all of its properties (instance variables, methods, inner classes etc). The main purposes of both are: 1. Help the new coming developer to understand the development environment by providing enough and clear information 2. Avoid redundancy 3. Promote flexibility, reusability and scalabilityWhat activities, best practices, documentations, rules, or anything would you do, follow, provide or apply? Thanks for sharing :) -- regards, Faber Siagian __________________________________________________ Apakah Anda Yahoo!? Lelah menerima spam? Surat Yahoo! memiliki perlindungan terbaik terhadap spam http://id.mail.yahoo.com

