Secara teori, setidaknya ada lima pendekatan yang mungkin.
Perintahkan ke bawah:
Mulai dengan UI mock-shot atau prototipe kertas. Ubah mereka menjadi dialog nyata, dan mulai dari penangan tombol dan kontrol lainnya turun melalui logika dan ke database.
Bawah ke Atas:
Mulai dengan struktur data (mungkin skema basis data). Kemudian tambahkan logika (memodelkan proses dunia nyata); akhirnya, UI Anda hanyalah sebuah antarmuka untuk memicu logika dan menampilkan hasilnya.
Logika dulu:
Mulailah dengan logika program, implementasi akses data, dan UI yang belum sempurna sesuai kebutuhan. Kemudian memformalkan dan mengeraskan struktur data, dan akhirnya menyempurnakan UI dengan benar.
Bertemu di tengah:
Mulailah dengan skema database dan UI, dan secara bersamaan bekerja menuju titik di mana mereka bertemu. Dengan pendekatan ini, logika menjadi yang terakhir.
Ekspansi horisontal:
Mulailah dengan mengidentifikasi jumlah minimum absolut fungsionalitas yang akan melakukan sesuatu yang menarik, dan terapkan seluruh tumpukan (struktur data, logika, dan UI) untuk bagian ini. Itu bisa saja siklus CRUD dasar dengan dialog edit sederhana untuk hanya satu entitas. Kemudian mulai menambahkan lebih banyak fitur, menerapkan seluruh tumpukan untuk setiap fitur (karenanya 'horisontal').
Masing-masing memiliki pro dan kontra.
Top-down memberi Anda sesuatu yang terlihat di awal proses, dan memungkinkan Anda untuk memeriksa desain fungsional Anda dengan para pemangku kepentingan - bidikan tiruan sering memberi tahu pengguna lebih banyak tentang desain daripada diagram alur atau dinding teks.
Bottom-up memberi Anda kesempatan untuk merancang skema basis data yang kuat sebelum Anda berkomitmen untuk apa pun; karena skema basis data sangat sulit untuk dimodifikasi setelah dirilis, Anda ingin mendapatkan bagian ini dengan benar - dampak memodifikasi UI jauh lebih kecil dan menghasilkan lebih sedikit dan lebih sedikit bug yang lebih parah.
Logika-pertama berarti Anda dapat menguji logika sebelum menghabiskan waktu yang serius pada database dan presentasi, yang sangat menarik jika logika Anda akan menjadi sangat kompleks.
Meet-in-the-middle menggabungkan keunggulan bottom-up dan top-down, tetapi Anda harus melompat-lompat di antara dua tugas, dan Anda berisiko berakhir dengan logika yang lebih kompleks daripada yang diperlukan karena kedua ujung Anda tidak bertemu secara alami.
Ekspansi horisontal berjalan dengan baik dengan alur kerja yang berulang, dan memiliki keuntungan tambahan bahwa, jika Anda memprioritaskan dengan baik, Anda akan memiliki aplikasi yang berfungsi pada waktu tertentu, jadi jika Anda tidak membuat tenggat waktu, Anda akan memiliki versi yang memiliki lebih sedikit fitur, tetapi masih berfungsi penuh, berbeda dengan versi yang memiliki database lengkap, tetapi tidak ada UI sama sekali.
Jadi yang mana yang Anda pilih tergantung pada gaya pribadi Anda, dan pada keadaan.