Developer itu team atau single fighter?

Being a techie doesn’t necessary mean you understand development process.

Dear Management,

Mudah-mudahan Ibu/Bapak sudah membaca artikel tersebut. Tapi untuk merangkumkan saya ingin menjelaskan bahwa software development dalam Java tidak sama dengan software development dengan bahasa-bahasa pemrograman lain yang pernah ada. Dengan menguasai bahasa Java (core java) tidak otomatis mampu membuat aplikasi dengan skala yang berbeda (small to enterprise). Tidak seperti bahasa lain katakan C/C++, cukup dengan menguasai bahasa tersebut diyakini mampu menulis program a-z.
Kenapa? Karena Java bukan hanya bahasa, tetapi adalah juga teknologi. Bahasanya adalah Java (core java), teknologinya adalah JEE (Java enterprise edition). Bahasanya bisa disamakan dengan Pascal, Basic, C/C++, dll tetapi teknologi tidak. Bahasa lain tidak menyertakan so called technology. Makanya jika Bapak/Ibu pernah membaca artikel software development mungkin akan menemukan kata ‘Java technology’, tetapi tidak pernah ada yang menuliskan C/C++ technology atau Pascal technology. Teknologi ini dari Sun Microsystem bukanlah suatu produk yang sudah jadi tetapi berupa spesifikasi. Sun membuat spesifikasi tentang apa dan bagaimana enterprise application (JEE), tetapi perusahaan atau pihak lainlah yang membuat real product-nya. Seperti JBoss bikin server, Oracle bikin OAS dan ADF, Jakarta project bikin Struts dan segudang proyek lainnya, IBM bikin server Websphere, dan masih banyak lagi. Sehingga banyak sekali varian bagaimana membuat aplikasi enterprise menggunakan Java technologies ini di lapangan.

Saking besarnya implikasi yang dibawa teknologi Java ini, sekarang programmer Java tidak lagi hanya disebut sebagai programmer seperti di bahasa lain tetapi juga ada developer atau architect. Mengapa? Karena dibutuhkan tidak hanya penguasaan bahasa tetapi juga memahami spesifikasi sehingga mampu memilih dan meletakkan framework2 yang ada untuk menghasilkan aplikasi enterprise yang serius terutama dalam rangka memperhatikan security, reliability dan scalability. Tidak ada bahasa yang membawa paradigma sebesar ini sebelum Java. Microsoft sekalipun meng-copy habis-habisan teknologi ini untuk membuat .NET

Seorang programmer pemula semestinya pertama kali berkarir sebagai Java programmer. Setelah menguasai core Java, barulah bisa masuk ke enterprise edition? Karena basis dari JEE adalah core Java sama seperti basis dari core Java adalah Object Oriented Programming. Tanpa menguasai basis sulit untuk menguasai yang advanced atau pun kalau dikatakan mampu membuat aplikasi enterprise bisa dipastikan akan mengorbankan kualitas. Jadi semestinya untuk membangun team development dengan Java harus mengatur team sesuai dengan jenjang yang lazim seperti Java Programmer/Developer, Senior Programmer/Developer, Lead Developer/System Architect. Karena untuk level berbeda konsennya berbeda. Programmer/Developer lebih konsen menuliskan detail coding sementara architect konsen lebih ke arah struktur dan design. Lewat pengalaman yang berjenjang ini seorang programmer bisa memulai karir dari bawah dan belajar untuk menjadi lebih advanced.

Sehinga sistem penunjukan yang selama ini dilakukan oleh management dalam development tidak berhasil membuat development team yang benar di YYY. Karena itu menafikkan proses SDLC dan menafikkan spesifikasi teknologi (JEE). Tanpa penerapan proses SDLC dan tanpa memperhatikan spefikasi JEE, programmer tidak bisa belajar untuk meningkatkan skill dan kompetensi. Susah untuk belajar proses developmen yang profesional jika cara pengerjaan proyek adalah dengan cara orang marketing/presales langsung berbicara kepada programmer. Programmer yang ditunjuk maximal berusaha untuk membuat pekerjaan selesai tanpa melalui proses yang diperlukan (analisis, design, implementasi, testing, deploy, training), yang penting selesai. Dan presales atau marketing team tidak bisa menilai apakah aplikasi ini bagus yang penting bisa bekerja sesuai yang dimintakan. Apakah nanti kalau usernya bertambah banyak aplikasi masih berjalan normal tidak menjadi perhatian.

Mustinya role Business analyst membuat user requirement diserahkan kepada system architect membuat design, lead developer dan developer mengerjakan codingnya. Disini memilih framework JEE yang mau dipakailah yang membutuhkan pengalaman danĀ  jam terbang. Menafikkan semua proses ini membuat programmer tidak bisa mengembangkan diri. Development manager harusnya hadir untuk memastikan SDLC berjalan dan memastikan penerapan teknologi yang sesuai.

Saya kurang setuju waktu Pak XXX mengatakan asetnya perusahaan adalah team development. YYY sudah melihat developer datang dan pergi, adakah mereka itu aset atau mereka meninggalkan aset buat YYY? Yang ada mereka mengcopy coding yang ada, karena kita tidak mempunyai prosedur untuk memproteksi aset kita. Aset kita adalah teknologi. Teknologi ini bisa berupa standar, prosedur, metodology, skill set, source code, dokumentasi, hardware dan infrastruktur. Ini yang seharusnya yang dimaintain oleh seorang development manager sehingga YYY bisa dikenal sebagai perusahan IT yang mempunyai daya jual dari sisi teknologi dan maupun skill set. Kalaupun ada yang keluar tidak akan membuat YYY mandeg/mundur atau kalau ada yang masuk bisa belajar dengan cepat dan mendapatkan tempat bekerja dan belajar yang profesional. Management seharusnya mendelegasikan pekerjaan yang membutuhkan pengatahuan dan pelamaman teknis ini ke development manager.

Disamping untuk menjamin proses SDLC dan penerapan Java technology tadi, team juga harus melakukan yang namanya research n development. Karena seperti tulisan di artikel itu, teknologi Java ini adalah teknologi yang terus berkembang dan semakin kompleks. Proses rnd memampukan team untuk mengikuti perkembangan dan mengadopsi skillset-skillset terbaru menjadi bagian dari aset perusahaan. Bagaimana team ini didukung dalam rnd mustinya juga menjadi strategi perusahaan, baik berupa training (inhouse atau keluar) ataupun peralatan. Jangan sampai seperti judul tulisan itu, java developer sebagai dinosaurus karena ketinggalan jaman.

Satu hal lagi yang mampu menunjang pekerjaan kita adalah open-source. Development team seharusnya bisa go open source sehingga mengurangi biaya investasi di operationg system, office atau anti virus. Kecuali ada keperluan harus menggunakan produk microsoft. Semua ini tentu butuh menjadi kebijakan dan dukungan manajemen. Tanpa manajemen mendelegasikan bidang strategis ini kepada development manajer mustahil bisa dikembangkan sebuah team dengan benar. Karena alih-alih bekerja sebagai team, programmer malah bekerja sendiri-sendiri dan menafikkan aspek SDLC dan teknologi tadi. Jika usul Ibu XXX tentang setiap leader mengembangkan team sendiri-sendiri dilakukan hasilnya adalah tidak ada team. Jika team leadernya keluar maka putuslah semua dan tidak ada yang tertinggal buat perusahaan kecuali source code. Bagaimana source code ini dibuat dan didesign tidak jelas siapa yang mengawasi.

Mudah-mudahan bisa membantu.

PS: XXX nama orang dan YYY adalah nama perusahaan

Leave a Reply

You must be logged in to post a comment.