Seberapa umum prototyping sebagai tahap pertama pengembangan?


10

Saya telah mengambil beberapa kursus desain perangkat lunak dalam beberapa semester terakhir, dan sementara saya melihat manfaatnya dalam banyak formalisme, saya merasa seperti tidak memberi tahu saya apa-apa tentang program itu sendiri:

  • Anda tidak dapat mengetahui bagaimana program akan beroperasi dari spesifikasi Use Case, meskipun membahas apa yang dapat dilakukan oleh program.
  • Anda tidak dapat memberi tahu apa pun tentang pengalaman pengguna dari dokumen persyaratan, meskipun itu dapat mencakup persyaratan kualitas.
  • Sequence diagram adalah deskripsi yang baik tentang bagaimana perangkat lunak bekerja sebagai tumpukan panggilan, tetapi sangat terbatas, dan memberikan tampilan yang sangat parsial dari keseluruhan sistem.
  • Class diagram sangat bagus untuk menggambarkan bagaimana sistem dibangun, tetapi sama sekali tidak berguna dalam membantu Anda mencari tahu apa yang perlu perangkat lunak.

Di mana dalam semua formalisme ini adalah garis bawah: bagaimana program terlihat, beroperasi, dan pengalaman apa yang diberikannya? Bukankah lebih masuk akal untuk merancang itu? Bukankah lebih baik mencari tahu bagaimana program harus bekerja melalui prototipe dan berusaha untuk mengimplementasikannya secara nyata?

Saya tahu bahwa saya mungkin menderita diajari teknik oleh para ahli teori, tetapi saya perlu bertanya, apakah mereka melakukan ini di industri? Bagaimana orang mengetahui apa sebenarnya program itu, bukan sesuai dengan apa program itu? Apakah orang banyak prototipe, atau sebagian besar mereka menggunakan alat formal seperti UML dan saya belum terbiasa menggunakannya?


2
Dari bacaan saya, Anda tampaknya terlalu fokus pada bagian Antarmuka Pengguna pengembangan perangkat lunak. Prototipe sangat bagus untuk mengembangkan dan menyempurnakan UI, tidak terlalu banyak untuk memalu logika inti (atau bahkan mencari tahu apa yang seharusnya diterapkan oleh logika bisnis)
Anon.

1
Jika ada pengguna manusia, biasanya ada GUI. Seperti apa tampilan GUI dan bagaimana kinerjanya akan mempengaruhi desain seluruh sistem.
Pekerjaan

Jawaban:


6

Jika kita sedang membangun aplikasi GUI, kita hampir SELALU membuat prototipe atau POC (proof-of-concept). Kami akan menetapkan apa kosa kata visual dari aplikasi tersebut. Kami biasanya melibatkan klien kami sebagian melalui POC dan memastikan mereka memahami apa tujuannya dan apa yang harus mereka fokuskan. Saya tidak pernah menyesal membuat prototipe. Pastikan Anda tidak mencoba mengubah kode prototipe menjadi kode produksi, mulai kode produksi dari awal berdasarkan apa yang Anda pelajari dari prototipe.

Setelah mengatakan semua itu, kami hampir tidak pernah membuat prototipe aplikasi sisi server (layanan, middleware, dll.). Saya tidak benar-benar melihat laba atas investasi untuk itu (kecuali jika Anda melakukan beberapa teknologi baru dan perlu membuktikan konsep yang berbeda).


+1 Prototipe perusahaan saya cukup sering, tetapi hanya sebagai pembuktian konsep, terutama di GUI, tetapi juga saat meneliti pendekatan baru untuk masalah, di sisi server juga.
Orbling

6

Dalam dunia bisnis, ini sangat penting

Saya juga menggunakan untuk berpikir itu, sampai Anda memasuki dunia bisnis. Maka itu tidak lagi cukup sederhana untuk hanya mengambil persyaratan dan maju dan membangun.

Dalam bisnisnya, diagram "aliran" pengguna, dan prototipe lo-fi benar-benar masuk akal.

Bagaimana "program" beroperasi mungkin adalah bagian yang mudah. Dalam aplikasi LOB (Lini Bisnis), kebanyakan hanya CRUD. The tantangan terletak pada logika bisnis dan aturan . Di sinilah diagram alir pengguna dan aliran proses bisnis menjadi sangat penting untuk memahami dan merencanakan secara efektif.


1

Apa yang Anda maksudkan dengan bagaimana program "beroperasi"? Anda tampaknya mencari detail implementasi yang tepat dalam sesuatu selain implementasi akhir spesifik, yang tidak masuk akal. Elemen tingkat yang lebih tinggi seharusnya memandu implementasi, bukan menentukannya.

Dari pengalaman saya, membuat prototipe agak jarang. Saya tentu saja diajar dalam hubungannya dengan spesifikasi, persyaratan, arsitektur, dll, dan itu bisa sangat berguna.

Adapun "apa yang perlu perangkat lunak", itu ADALAH persyaratan. Tampaknya Anda melewatkan seluruh poin.

Antarmuka sering dibuat sketsa sebelumnya, dan kasus penggunaan dapat digunakan untuk antarmuka "aliran". Pengalaman pengguna tidak hilang sama sekali. Jika Anda merasa ada elemen yang hilang, maka lakukan sesuatu yang tidak disebutkan profesor Anda. Desain tidak terdiri dari seperangkat aturan jelas yang diturunkan dari surga.


0

Pengamatan pribadi saya adalah bahwa prototipe diberikan banyak lip service tetapi terlalu sering prototipe, setelah itu menunjukkan tanda-tanda kehidupan, hanya diganti namanya menjadi 'Beta' atau, lebih buruk lagi, v1.0.


+1 Sangat benar, prototipe dilihat oleh pemasaran yang cenderung mengumumkan penyelesaian proyek.
Orbling

1
Ini adalah argumen untuk membuat prototipe Anda sebaik mungkin mengingat waktu, bukan karena menolak untuk melakukan prototipe.
Inaimathi

0

ada dua jenis prototipe - tiga, sebenarnya:

  1. kami membangun prototipe untuk memperbaiki desain dan mengurangi risiko sebelum memulai pengkodean "nyata" (Rekayasa)

  2. kami membangun proyek sebagai serangkaian prototipe halus (Agile)

  3. kami membangun prototipe dan mengirimkannya segera setelah berfungsi (Koboi)



0

Sebuah prototipe juga dapat dianggap "iterasi 0" dari apa yang perlu Anda lakukan. Itu memenuhi beberapa hal:

  • Itu membuktikan bahwa konsep itu bisa dilakukan. Ini mungkin untuk bos Anda atau klien yang membayar.
  • Ini memungkinkan Anda untuk mengidentifikasi hal-hal yang mungkin sulit untuk mendapatkan kekuatan produksi, dan memberi Anda gambaran umum tentang jumlah pekerjaan yang dibutuhkan.
  • Anda sebenarnya memiliki kode yang melakukan sesuatu . Ini sangat penting!

Secara keseluruhan prototipe harus dengan probabilitas tinggi berguna untuk membangun produk akhir, kecuali Anda telah menemukan bahwa pendekatan yang sama sekali berbeda diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.