Kenapa Saya Mulakan Development Sistem Dari Admin?
Published:
Updated:
Apabila membangunkan sistem dari kosong, salah satu perkara yang perlu kita fikirkan ialah susunan kerja semasa development.
Kita boleh mula dengan frontend. Kita juga boleh mula dengan backend. Tetapi untuk kebanyakan sistem pengurusan bisnes yang saya bangunkan, saya lebih suka mulakan development dari bahagian admin.
Bukan sebab frontend tidak penting.
Tetapi kerana bahagian admin biasanya menjadi tempat utama untuk mengurus data, menetapkan konfigurasi dan mengawal proses dalam sistem.
Apabila asas ini sudah tersedia, development bahagian lain akan menjadi lebih tersusun.
1. Mulakan Dengan Database dan Relationship
Sebelum mula coding, saya akan pastikan struktur database dan relationship sudah dirancang.
Contohnya, jika kita mahu membangunkan sistem e-commerce, kita mungkin memerlukan beberapa entiti utama seperti:
- User
- Product
- Category
- Order
- Order Item
- Payment
Kita perlu faham bagaimana setiap data ini berkait antara satu sama lain.
Contohnya, satu order boleh mempunyai banyak order items. Setiap order item pula merujuk kepada produk tertentu.
Struktur database ini penting kerana ia akan menjadi asas kepada fungsi-fungsi yang kita bangunkan kemudian.
Kalau relationship masih belum jelas, saya tidak akan terus membina semua features. Lebih baik selesaikan struktur asas dahulu daripada terpaksa membuat banyak perubahan apabila development sudah jauh berjalan.
2. Mulakan Development Dari Admin
Selepas struktur database sudah tersedia, saya biasanya akan mulakan development dengan bahagian admin.
Apa yang saya maksudkan dengan admin ialah bahagian backend interface yang membolehkan pemilik atau pekerja menguruskan data sistem.
Contohnya:
- Mengurus pengguna.
- Menambah dan mengemaskini produk.
- Mengurus kategori.
- Melihat dan mengemaskini order.
- Mengurus konfigurasi sistem.
Untuk sistem tertentu, admin juga mungkin mempunyai fungsi mengurus pembayaran, laporan, komisen atau tetapan operasi.
Kenapa saya mulakan dari sini?
Sebab kebanyakan data dan business rules dalam sistem perlu diuruskan melalui bahagian ini terlebih dahulu.
Bayangkan kita sedang membangunkan sistem e-commerce.
Sebelum pelanggan boleh membeli produk melalui frontend, kita perlu ada cara untuk memasukkan produk, menetapkan harga, mengurus kategori dan menentukan bagaimana order akan diproses.
Semua ini bermula dari bahagian admin.
Jadi, apabila kita mula membina frontend nanti, kita sudah tahu data apa yang tersedia dan bagaimana sistem sepatutnya berfungsi.
3. Admin Menjadi Rujukan Untuk Development Frontend
Ini antara sebab utama saya suka menggunakan pendekatan admin-first.
Apabila admin sudah mempunyai fungsi asas, kita sudah mempunyai gambaran yang lebih jelas tentang struktur dan tingkah laku sistem.
Contohnya, untuk fungsi produk:
- Admin boleh menambah produk.
- Admin boleh menetapkan harga.
- Admin boleh memilih kategori.
- Admin boleh mengaktifkan atau menyahaktifkan produk.
- Sistem menyimpan semua maklumat tersebut dalam database.
Apabila kita mula membina frontend, kita tidak perlu lagi tertanya-tanya bagaimana produk dimasukkan atau dari mana data produk datang.
Kita hanya perlu membangunkan interface yang menggunakan data dan business logic yang sudah tersedia.
Begitu juga dengan order.
Kita boleh pastikan dahulu bagaimana order dicipta, bagaimana status order berubah dan bagaimana rekod order disimpan.
Kemudian barulah kita sambungkan proses tersebut kepada interface pelanggan.
Ini membantu mengurangkan kerja berulang semasa development.
4. Apa Berlaku Jika Kita Mulakan Dari Frontend?
Cuba bayangkan kita terus membina frontend terlebih dahulu.
Kita sudah siapkan product listing, product detail dan shopping cart. Dari segi paparan, semuanya nampak elok.
Tetapi apabila mula membangunkan admin, kita dapati ada beberapa perkara yang belum dipertimbangkan.
Contohnya:
- Admin perlu mengurus variasi produk.
- Harga produk boleh berubah mengikut konfigurasi.
- Produk boleh dinyahaktifkan.
- Stok perlu dikawal mengikut lokasi.
- Order mempunyai beberapa status yang berbeza.
Akhirnya, kita perlu kembali ke frontend untuk membuat perubahan supaya ia boleh menyokong struktur dan business rules yang baru dibangunkan.
Ada kemungkinan kita perlu mengubah API, data structure, validation dan beberapa bahagian interface yang sudah siap.
Bukan bermaksud kerja frontend yang dibuat sebelum ini sia-sia. Tetapi ada risiko kita melakukan kerja yang sama lebih daripada sekali kerana dependency antara komponen belum difahami sepenuhnya.
Dengan pendekatan admin-first, kita cuba menyelesaikan dependency tersebut lebih awal.
5. Adakah Semua Sistem Perlu Bermula Dari Admin?
Tidak semestinya.
Pendekatan ini lebih sesuai untuk sistem yang mempunyai banyak data management dan proses operasi dalaman.
Contohnya:
- Sistem pengurusan stok.
- Sistem e-commerce.
- Sistem booking.
- Sistem pengurusan pelanggan.
- Sistem pengurusan pekerja.
- Sistem pengurusan ejen.
Tetapi ada juga projek yang lebih sesuai dimulakan dengan frontend.
Contohnya, jika kita membangunkan produk yang sangat bergantung kepada pengalaman pengguna, kita mungkin perlu membina prototype frontend terlebih dahulu untuk menguji user journey.
Begitu juga jika business process masih belum jelas. Kadangkala kita perlu membina prototype ringkas untuk mendapatkan feedback sebelum menetapkan struktur sistem.
Jadi, bukan soal admin mesti sentiasa didahulukan.
Soalnya ialah kita perlu memahami dependency dalam sistem dan menentukan bahagian mana yang patut disiapkan terlebih dahulu.
Penutup
Dalam pembangunan sistem, susunan kerja boleh mempengaruhi berapa banyak masa yang kita gunakan untuk menyiapkan sesuatu projek.
Untuk sistem pengurusan bisnes yang mempunyai banyak data dan business rules, saya lebih suka mulakan dengan database, kemudian admin, diikuti frontend.
Dengan cara ini, kita boleh membina asas sistem terlebih dahulu sebelum membangunkan interface yang bergantung kepadanya.
Bukan sekadar mahu cepat siap coding.
Kita mahu mengurangkan kerja berulang dan memastikan setiap bahagian sistem dibangunkan berdasarkan struktur yang jelas.
Selamat coding!