Software Engineering Academy Camp 1: Berbagai Cara untuk Membangun Software

Agnes Audya
COMPFEST
Published in
7 min readAug 20, 2021

COMPFEST 13, Jakarta — Software Engineering Academy(SEA) resmi dibuka sejak Sabtu, 7 Agustus hingga Minggu, 8 Agustus 2021 melalui Zoom Meeting. 20 Peserta berhasil diseleksi dari sekitar 780 peserta yang nantinya akan dibagi menjadi 5 kelompok. Acara ini dihadiri berbagai pembicara yang memiliki pengalaman keren dalam bidang Software Engineering! Mau tahu bagaimana acaranya berlangsung? mari kita simak melalui tulisan di bawah ini!

DAY 1 — All about Software Engineering

Materi pertama diisi oleh Abdurrachman Mappuji, Tech Lead dari Mekari. Pembicara membawakan topik mengenai Introduction to Software Engineering. Materi dibuka dengan pembicara meminta pendapat para peserta mengenai Software Engineering secara umum melalui Mentimeter. Setelah para peserta mengisi dengan berbagai jawaban, barulah pembicara memperkenalkan diri sekaligus menyebutkan definisi dari Software Engineering sebagai demikian, “Software Engineering is the application of engineering concepts to software development. Its main goal is the creation, improvement, and maintenance of software. Software engineering takes into account engineering aspects like the hardware and software environment when working on a program.”

Topiknya tidak berhenti di pengenalan Software Engineering, pembahasan menjadi lebih dalam saat pembicara menyampaikan materi Step to Build Software. Disebutkan dalam topik tersebut, terdapat berbagai cara dalam pembuatan software yakni Waterfall Method, Agile Development, Scrum, dan Lean Development. Pembicara pun meminta kembali pendapat peserta mengenai aktivitas pada Software Engineering melalui Mentimeter. Sembari melihat jawaban-jawaban peserta, pembicara pun menjelaskan bahwa setidaknya ada 3 aktivitas utama dalam Software Engineering yakni Delivery, Engineering, dan Management. Selang beberapa waktu, barulah sampai ke sesi Q&A yang juga disambut dengan antusias oleh para peserta.

Materi kedua dibawakan oleh Panji Gautama Asmawarman, SVP Engineering dari Mekari. Pembicara membahas salah satu materi yang tadi disebutkan oleh Abdurrachman Mappuji yakni Agile Software Development. Sebagai permulaan, pembicara menjelaskan bahwa perancangan produk seringkali tidak terpaku terhadap kemauan customer dan lanjut mengerjakan tanpa data yang cukup dari customer. Selain itu, tidak semua Software Development Life Cycle(SDLC) dapat beradaptasi terhadap apa yang customer inginkan, tetapi terdapat cara memilih SDLC dengan customer yang diutamakan dan nanti juga akan disampaikan oleh pembicara.

Pembahasan pun berlanjut ke pengenalan SDLC sendiri yang disebutkan oleh pembicara sebagai struktur untuk mengembangkan software itu sendiri dengan kerangka pikiran yang kontinyu. Kemudian pembicara melanjutkan pembahasan mengenai SDLC lebih dalam dengan menjelaskan Traditional SDLC yang terdiri dari Waterfall, Iterative, Spiral, V-Shaped. Selain dari Traditional SDLC, ada juga Agile SDLC yang dibahas oleh Pembicara. Nah, terdapat juga beberapa framework agile yang populer seperti Scrum, Extreme Programming, dan Kanban. Namun, pembicara hanya akan membahas mengenai Scrum dan Kanban saja kali ini.

Materi ketiga dibawakan oleh Risal Hidayat, Senior Software Engineer dari Mekari, yang memaparkan materi Testing. Self assessment dilakukan sebagai pembuka dengan kegiatan sebagai berikut, peserta diminta untuk membuat test cases yang berspesifikasi dari user, peserta juga diminta untuk menganalisis syarat-syaratnya. Setelah self assessment selesai, pembicara pun menjelaskan definisi Software Testing yakni pengujian perangkat lunak yang melibatkan pertimbangan penting dari sisi aspek ekonomi dan psikologi manusia. Selain dari definisi Testing, Pembicara juga memaparkan kerugian besar yang terjadi akibat bugs seperti Y2K bugs dan insiden Boeing untuk menunjukan seberapa penting Software Testing. Manfaat dari Software Testing yang terdiri dari Cost Effective, Security, Product quality, Customer Satisfaction juga dijelaskan oleh pembicara.

Lalu, pembicara melanjutkan pembahasannya ke beberapa tipe Software Testing seperti Functional Testing, Non-Functional Testing, dan Maintenance Testing. Setelah itu, pembicara pun menjelaskan salah satu framework testing yaitu Pyramid Testing yang dari terdiri dari 3 lapis yakni Unit Tests, Service Tests/Integration Testing, dan UI Tests.

Selanjutnya, pembicara membahas strategi Software Testing, dimulai dari cara pembuatan test cases yang dibagi menjadi dua metodologi yakni Black Box dan White Box, dilanjutkan dengan penjelasan strategi Testing berdasarkan Software Development Life Cycle(SDLC) yang dimulai dari Waterfall dan Agile-Scrum. Sebelum masuk ke tahap Q&A, pembicara membahas paradigma Shift Left Testing sebagai materi terakhirnya untuk sesi ini.

Satu sesi lagi sebelum hands-on testing dipegang oleh Muhammad Hezby, Lead Software Engineer dari Mekari. Pembicara membuka topik Clean Code dengan penjelasan arti dari Clean Code sendiri. “Clean code itu bukan sebuah ilmu pasti, clean code itu bukan kayak ilmu kimia atau fisika yang bener-bener objektif, clean ode itu lebih kayak seni sih, seni bagaimana kita menulis code, jadi yang diperhatikan itu ketika kita menulis code, perasaan apa yang kita dapat, ” kata pembicara.

Kemudian pembicara menjelaskan mengenai sebab Clean Code dibutuhkan secara detail. Selain dari Clean Code, pembicara juga membahas mengenai Code Smell seperti Bloaters, Abusers, Change Preventers, Dispensables, dan Couplers. Beruntungnya, pembicara juga menyebutkan terdapat Static Code Analyzer atau linters yang dapat mendeteksi Code Smell. Seperti sesi-sesi sebelumnya, Q&A juga hadir untuk para peserta yang ingin bertanya kepada pembicara.

Camp SEA hari pertama pun ditutup oleh pemateri terakhir, Risal Hidayat, yang sekaligus memandu para peserta untuk melakukan hands-on testing. Para peserta diberikan sebuah link aplikasi untuk melakukan unit test exercise. Pada penghujung acara, terdapat SEA group project yang diberikan kepada setiap tim sebagai tugas akhir camp SEA. Setelah pembagian tugas, peserta mengikuti sesi mentoring yang akan ditemani para mentor.

DAY 2 — Final Day of Camp 1

Camp SEA pun berlanjut hingga hari kedua. Pada sesi pertama, para peserta dipandu oleh Hezby Muhammad, sosok yang juga menjadi pembicara pada hari pertama. Para peserta diminta untuk berkoding dengan menggunakan Golang. Awalnya, pembicara menanyakan familiaritas antara peserta dengan Golang terlebih dahulu, barulah pembicara meminta para peserta untuk menyalin repository pembicara yang berisi Golang exercise ke repository masing-masing. Dalam exercise tersebut, para peserta diminta menganalisis code smell pada model-model yang ada, melakukan perbaikan pada branch code yang ada, dan melakukan test sampai semua hasilnya pass dan aplikasinya berjalan dengan berhasil. Sembari menunggu para peserta, pembicara mengatakan bahwa unit test akan memudahkan refaktorisasi kode dan merupakan kasus white box testing, sedangkan pengecekkan yang dilakukan tanpa menggunakan unit test masuk ke kasus black box testing yang mengandalkan input dan output.

Exercise pertama selesai dan dilanjutkan dengan exercise kedua yang berfokus pada Long Method. Awalnya, pembicara meminta peserta untuk menyalin kode mengenai Long Method sekaligus menyalin kode testing-nya juga. Selain itu, pembicara juga mempraktikkan Test Driven Development. Kemudian, peserta melakukan refaktorisasi kode yang ada dengan membuat method baru yang memisahkan setiap perhitungan yang ada dan objektifnya sama seperti exercise pertama. Sembari menunggu para peserta menyelesaikan objektifnya, sebagai pesan sponsor, pembicara juga menyampaikan bahwa Mekari sedang melakukan perekrutan.

Setelah itu, masuk ke sesi kedua dengan pembicara Imre Nagi, Cloud Platform Engineer dari Gopay. Pembicara membahas lebih banyak mengenai Design Pattern. Namun sebelum ke Design Pattern, pembicara membahas Architectural Styles dan Architectural Pattern dahulu. Awalnya, pembicara menjelaskan definisi dari Architectural Styles sebagai demikian, “bagaimana cara yang common untuk kita bisa mengorganize subsystem dari software yang kita buat”. Lalu dilanjutkan dengan pembahasan Software Architecture. “Gimana caranya kita ngeliat dari atas atau ketika kita pengen melakukan sesuatu, apa aja yang butuh perhatian khusus atau apa aja yang gak terlalu butuh perhatian khusus.” Kata pembicara mengenai apa yang dibahas dalam Software Architecture.

Kemudian, pembicara menjelaskan terdapat 3 konsep dalam Software Organization dan membahas hubungan antara aplikasi dengan Coupling dan Cohesion. Pembicara juga menjelaskan mengenai Architectural Pattern, barulah lanjut ke pembahasan Design Pattern dan yang dibahas mencakup Builder Pattern, Adapter Pattern, Decorator Pattern, Chain Of Responsibility, dan State Pattern. Lalu, masuk ke sesi hands-on testing dengan menggunakan Java sampai selesai.

Setelah kegiatan Camp 1 SEA berakhir, kami mendapatkan kesempatan untuk mewawancarai salah satu peserta Camp SEA dari tim Ninja. Sepanjang acara Camp SEA, dia merasa senang karena berkesempatan untuk mengikuti acara Software Engineering Academy COMPFEST. Dia juga senang mendapatkan ilmu-ilmu baru yang sangat berguna dari acara ini. Dia jadi tahu bagaimana menjadi seseorang yang profesional dalam bidang Software Engineering dari materi-materi yang dibawakan para pembicara dan juga penerapannya setelah mengikuti sesi hands-on testing. Menurutnya, acara ini membuatnya semakin tertarik pada bidang Software Engineering.

Masih ada keseruan acara selanjutnya di COMPFEST! Jadi, pantau terus informasi mengenai COMPFEST melalui akun media sosial Twitter kami @COMPFEST, Instagram kami @COMPFEST, dan situs kami compfest.id (Editorial Marketing/Agnes).

--

--