Salah Kaprah Istilah Full Stack Developer
Oleh: Yulian Purnama
Istilah full stack developer adalah istilah yang sering didengar dalam dunia software development. Bahkan seringkali istilah ini menjadi predikat kebanggaan para developer. Menjadi seorang full stack developer adalah kemewahan, karena tidak semua developer bisa demikian.
Sejarah
Namun sebenarnya ada distorsi penggunaan istilah full stack developer sejak pertama kali munculnya hingga sekarang. Di tahun 1999, sebenarnya sudah ada istilah “web development” yang dipopulerkan oleh Darcy Dinucci, seorang penulis buku sekaligus pengembang web. Di kala itu istilah web development ia definisikan sebagai proses yang terkait dengan teknologi dan pengembangan situs web untuk internet (jaringan publik) dan intranet (jaringan pribadi). Ini melibatkan desain web, coding, pengujian dan penulisan proses markup, dll. Yang mana sejatinya ini adalah full stack development.
Randy Schmidt, direktur pengelola grup Burns & McDonnell Terminals and Pipelines, adalah orang pertama yang menggunakan istilah full stack development. Di tahun 2008, dia menggambarkan full stack developer sebagai seseorang yang melakukan desain, markup, styling, membuat behaviour, dan sekaligus melakukan pemrograman. Dan perlu diketahui bahwa di era itu, para developer memang umumnya melakukan semua itu.
Sejak itu, para developer menggunakan istilah full stack development dan memberikan definisi mereka sendiri.
Salah Kaprah
Namun acap kali orang-orang mendefinisikan istilah full stack developer sebagai seorang developer atau pengembang perangkat lunak yang bisa melakukan segala hal!?! Bahkan sebagian orang mengatakan bahwa full stack developer harus bisa menguasai serta mendesain UI/UX. Bahkan lebih keterlaluan lagi, ada yang menuntut full stack developer harus memiliki kemampuan komunikasi verbal yang baik dan berpikir kritis. Wow!
Jika demikian, lalu apa tugas desainer grafis, desainer UI/UX, CSS developer, database administrator, system analyst, team manager??
Jika seorang full stack developer harus bisa:
- Merancang arsitektur aplikasi
- Merancang database
- Mengonfigurasi web server
- Mengonfigurasi server database
- Merancang UI/UX
- Mendesain layout dan membuat aset
- Merancang CSS
- Melakukan pemrograman
- Melakukan testing
- Berkomunikasi dengan klien
- Manajemen proyek
Ini sejatinya adalah seluruh departemen IT ada dalam diri satu orang!
Definisi Yang Benar
W3schools mendefinisikan full stack developer adalah orang yang dapat mengembangkan perangkat lunak di sisi client dan di sisi server. Atau dengan kata lain, full stack developer adalah orang yang dapat mengembangkan frontend dan backend. Inilah definisi yang benar.
Selain menguasai HTML dan CSS, seorang full stack developer juga tahu cara:
- Memprogram browser (seperti menggunakan JavaScript, jQuery, Angular, atau Vue)
- Memprogram server (seperti menggunakan PHP, ASP, Python, atau Node)
- Memprogram database (seperti menggunakan SQL, SQLite, atau MongoDB)
Namun ia tidak harus bisa mengkonfigurasi server database dan webserver. Apalagi harus bisa menguasai desain UI/UX, apalagi menguasai ilmu komunikasi untuk berinteraksi dengan klien.
Seorang full stack developer tidak dituntut untuk merancang dan menganalisis sistem, karena itu adalah tugas dari seorang system analyst. Ia juga tidak dituntut untuk memimpin proyek karena itu adalah tugas manager.
Developer tetaplah developer.
Yang Harus Dikuasai
Seorang full stack developer dituntut terampil dalam beberapa bahasa pemrograman. Kemampuan dalam bahasa pemrograman backend menjadi hal yang diperlukan. Seperti Java, Node.js, PHP, ASP, Python, Ruby, Swift, C++, C#, Go, dll.
Masih terkait backend, ia juga harus terampil dalam menggunakan berbagai tool DBMS seperti MySQL, SQLite, MongoDB, SQL Server, PostgreSQL, Express.js, REST, dll. Ia juga harus fasih dalam mengonfigurasi API untuk keperluan akses data dari frontend ke backend.
Selain harus menguasai backend, full stack developer juga harus menguasai frontend. Ia perlu menguasai teknologi esensial berkaitan dengan frontend seperti HTML, CSS, XML, JavaScript, JSON, jQuery, Bootstrap, React, Angular, Redux, dll.
HTML dan CSS adalah ilmu dasar untuk profesi ini. HTML5 dan CSS3 merupakan dua keahlian yang dibutuhkan untuk memodifikasi konten web. Javascript dan yang lainnya perlu pelajari juga setelah kamu menguasai fundamentalnya.
Keuntungan Menjadi Full Stack
Keuntungan menjadi full stack developer adalah:
- Anda dapat menguasai semua teknik yang terlibat dalam proyek pengembangan
- Anda dapat membuat prototipe dengan sangat cepat
- Anda dapat memberikan bantuan kepada semua anggota tim
- Anda dapat mengurangi biaya proyek
- Anda dapat mengurangi waktu yang digunakan untuk komunikasi tim
- Anda dapat beralih antara pengembangan backend dan frontend dalam kondisi tertentu
- Anda dapat lebih memahami semua aspek teknologi baru dan yang akan datang
Jadi, siap menjadi full stack developer?
Software Engineer di Rendact.com, alumni S1 Ilmu Komputer Universitas Gadjah Mada. Alumni dan pengajar Ma’had Al Ilmi Yogyakarta.