Saya telah merancang dan mengamati orang lain mendesain banyak sistem di masa lalu dan saya telah melihat prosesnya berkembang dalam banyak cara berbeda, tetapi apa yang saya temukan umum adalah bahwa arsitektur awal setidaknya harus merencanakan keberadaan sebagian besar fitur utama.
Sebagai contoh, saya telah melihat sistem kontrol HVAC yang tidak memiliki konsep bangunan, lantai, kamar dll yang dilengkapi dengan itu dan hasilnya jelek seperti yang mereka datang. Atau perangkat musik seluler yang dibuat dari komponen yang lebih cocok untuk arloji saku Anda (non-pintar). Tidak perlu dikatakan bahwa produk akhir dalam kedua kasus itu bukan favorit pelanggan.
Ketika Anda mengatakan "konsepsi" itu hanya satu langkah dari "ide" dan sebuah konsep bisa sangat kabur. Bisnis biasanya peduli dengan konsep. Pelanggan biasanya peduli tentang UX - sebuah konsep yang diwujudkan dengan cara yang mudah dan menyenangkan untuk digunakan dan membawa nilai melalui penggunaannya.
Anda harus melakukan "konsep" sebelum pemrograman apa pun, saya tidak dapat membayangkan diri saya membuka studio visual (atau IDE pilihan Anda) dan secara acak menulis kode, untuk melihat ke mana ia pergi.
Anda mungkin tidak melakukan desain yang lengkap (dan Anda tidak seharusnya) sebelum pengkodean tetapi Anda harus memiliki sketsa kasar tentang apa yang akan menjadi alur kerja pengguna.
Desain dan pengkodean UX cukup sering saling menguntungkan satu sama lain, Anda mungkin akan dipaksa untuk menggunakan beberapa pendekatan Agile untuk apa pun kecuali proyek terkecil sebagai cara untuk memasukkan fakta ini ke dalam cara Anda mendekati pekerjaan. Jadi jangan berpikir Anda adalah programmer terburuk jika Anda tidak bisa melihat semuanya sekaligus - tidak ada yang bisa dan orang-orang yang berpikir mereka bisa menjadi orang-orang yang cukup mengabaikan masalah sehingga mereka dapat mengklaim bahwa mereka memiliki program yang lengkap gambar.
Salah satu contoh menempatkan ukuran pada sesuatu yang besar. Konsep: "Buat alat berbasis cloud visual yang memungkinkan perusahaan untuk mengintegrasikan platform perangkat lunak mereka". Ini kedengarannya hebat dan seseorang dapat mulai menulis materi pemasaran dan menjualnya bahkan sebelum itu ada. Anda harus memiliki ini sebelum pengkodean.
Pra-desain: "Memiliki bentuk dan panah seperti di Visio untuk menjelaskan logika; memiliki kemampuan plug-in untuk memungkinkan koneksi ke berbagai platform (SAP, SF, database ...); memiliki konsol pemantauan di mana orang dapat mencari data yang melewati sistem; memiliki cara untuk menggambarkan data secara visual dan mengubah satu format ke format lain ". Gumpalan pemasaran hebat lainnya. Ini juga memberi Anda beberapa ide tentang apa yang penting, harus memiliki sketsa kasar sebelum pengkodean juga.
Desain / Kode: "Memiliki browser yang meng-host perancang HTML dengan fitur ini dan itu; kode backend di Jawa sehingga dapat berjalan di server yang ada; tentukan struktur data dan UX untuk meminta atau memodifikasi mereka sesuai kebutuhan; rencana pemulihan bencana, kesalahan pelaporan, audit logging; kontrol versi rencana; kontrol akses rencana; .... "- semakin halus daftar, semakin tidak realistis untuk meramalkan semuanya.
... namun orang harus paling tidak menyadari hal-hal seperti apa yang akan terjadi secara kasar atau produk akhir Anda mungkin berakhir dengan beberapa implementasi yang benar-benar tidak berguna yang akhirnya membunuh konsep yang terdengar sangat bagus - katakanlah perancang visual Anda membutuhkan 40 " layar untuk menunjukkan alur kerja dunia nyata, atau tidak ada cara untuk mencari log selain dari kecocokan string yang tepat terbatas pada salah satu dari 20 bidang dalam log dll. Tidak ada cara yang baik untuk mencegah hal ini terjadi selain menjalankan implementasi Anda - beberapa akan berhasil, yang lain akan gagal.