Bagaimana cara menulis spesifikasi fungsional dengan cepat dan efisien

17

Jadi saya baru saja membaca beberapa artikel luar biasa dari Joel mengenai spesifikasi di sini . (Ditulis pada tahun 2000 !!) Saya membaca semua 4 bagian, tetapi saya mencari beberapa pendekatan metodis untuk menulis spesifikasi saya.

Saya satu-satunya pengembang yang kesepian, mengerjakan aplikasi yang cukup rumit ini (atau keluarga aplikasi) untuk perusahaan keuangan yang sangat terkenal.

Saya tidak pernah membuat sesuatu seserius ini, saya mulai menulis sesuatu seperti spek buruk, semacam ikhtisar, dan itu telah membuang banyak waktu saya.

Saya juga membuat 3 maket-agak-halies untuk klien saya jadi saya memiliki pemahaman yang baik tentang apa yang mereka inginkan. Juga merilis preview (membuang aplikasi yang bekerja dengan alur kerja paling dasar), dan saya hanya menulis dan menguji beberapa sistem inti / basis.

Saya pikir kesalahan yang saya buat sejauh ini adalah tidak menulis spesifikasi terperinci, jadi saya akan melakukannya sekarang.

Jadi semuanya terdiri dari

  • Situs web MVC (untuk admin & melihat data)
  • 2 modul Silverlight (Untuk 2 tugas khusus)
  • 1 aplikasi desktop

Saya benar-benar kekurangan waktu, sumber daya dan perlu menyelesaikan ini dengan cepat, juga, perlu memastikan orang-orang ini membacanya dengan sama cepat dan tanpa rasa sakit.

  • Jadi bagaimana saya melakukannya, saya mencari tips, hal-hal dunia nyata, bagaimana biasanya kalian melakukannya?
  • Apakah Anda membuat tiruan tiruan dari setiap dialog / form / halaman?

Saya sedang berpikir untuk membuat proyek ASP.NET Web Forms dummy, kemudian mengisi file HTML dalam folder dan membuatnya terlihat seperti struktur URL MVC saya.

Kemudian memiliki bagian dalam spesifikasi untuk situs web dan menulis halaman untuk setiap URL yang saya miliki dengan screenie.

Untuk aplikasi win form saya, saya telah membuat proyek demo Win Form, apakah saya kemudian akan melakukan dialog atau menyusun semuanya seperti yang saya lakukan di aplikasi nyata dan kemudian screen shot?


Untuk beberapa latar belakang pertanyaan ini. Saya selalu menjadi orang yang suka melompat-ke-kode gila, yang bekerja dengan baik, tetapi untuk aplikasi yang sedang saya kerjakan, ini tidak hanya rumit, itu untuk perusahaan yang sangat terkenal dan besar dan saya harus mendapatkannya Baik!

(Dan sejauh ini sudah berjalan dengan baik, hari ini saya memberikan demo versi pratinjau yang disukai banyak orang !! = D)

Jika saya mendapatkan desain awal yang tepat, saya juga akan memiliki bisnis yang hebat dengan perusahaan ini, sudah ada banyak pemikiran tentang fitur "luar biasa" yang siap mereka bayar.

Gideon
sumber
Apakah ini untukmu? Apakah klien memintanya? Apakah Anda mengharapkan lebih banyak pengembang untuk bergabung dengan tim?
JeffO
Ini terutama untuk membantu perkembangan saya. Setiap sekarang dan kemudian saya mendapatkan orang-orang keuangan acak mengatakan kepada saya "oh kita harus melakukan xxx atau yyy" ketika kita sudah membahasnya, maka kadang-kadang dalam beberapa pertemuan orang hanya menyarankan fitur acak, bagian terburuknya adalah, saya tidak pernah memiliki cara yang tepat untuk menambahkan fitur tambahan untuk biaya tambahan karena apa yang saya sebut spesifikasi sebelumnya hanyalah ringkasan! Pada dasarnya saya memiliki banyak masalah, Joel Spolsky menyebutkan dalam artikelnya ketika Anda tidak menulis spec.
gideon

Jawaban:

22

Apakah Anda membaca bagian 2 artikel atau spesifikasi sampelnya ? Mereka mewujudkan beberapa prinsip penting saat menulis spesifikasi.

  • Jangan desain berlebihan. Tujuan penulisan spesifikasi ini adalah untuk memaksa Anda berpikir tentang hal-hal penting seperti apa yang terjadi ketika ada kesalahan, dan bagaimana Anda mengharapkan pengguna untuk berinteraksi dengan sistem. Anda tidak harus memerinci terlalu banyak untuk mendapatkan sesuatu yang bisa Anda kerjakan. Anda memang membutuhkan detail.
  • Ini tentang komunikasi. Tujuan dari spesifikasi ini adalah untuk mencapai kesepakatan bersama tentang apa yang perlu dilakukan. Ini bukan dokumen ketat yang membutuhkan kekuatan hukum. Ini adalah alat untuk membantu Anda lebih memahami klien Anda, dan klien Anda untuk lebih memahami apa yang ingin Anda lakukan untuk mereka.

Saran terbaik adalah cukup menulis sehingga Anda jelas tentang apa yang perlu Anda lakukan. Jika Anda memiliki pertanyaan terbuka, dokumentasikan dalam spesifikasi dan dapatkan jawaban dari klien Anda. Setelah Anda cukup memahami apa yang perlu dihentikan .

Jika Anda tidak hati-hati, dokumen itu akan hidup sendiri. Seharusnya memiliki satu tujuan, jangan menambahkan apa pun ke dokumen yang tidak sesuai dengan tujuan itu. Seharusnya mudah dirawat. Jika Anda memiliki seluruh diagram kelas terperinci di sana bersama dengan detail lain yang benar-benar termasuk dalam unit test, Anda akan meninggalkan dokumen karena pemeliharaannya terlalu banyak, atau Anda tidak akan pernah menyelesaikan proyek.


Tentang Menulis

Menulis untuk orang itu sulit . Faktanya, dua hal tersulit dalam menulis adalah mengetahui bagaimana memulai , dan mengetahui kapan harus berhenti . Pada awalnya Anda hanya perlu melakukan sesuatu. Saran saya untuk menangani dua aspek tersulit ini adalah:

  • Kenali audiens Anda. Siapa yang seharusnya membaca spec? Jika itu hanya Anda dan klien, maka itulah yang Anda tuju. Jika Anda memiliki seseorang yang bertanggung jawab untuk pengujian, Anda akan memiliki beberapa catatan untuk mereka juga.
  • Mulailah dengan hal prioritas tertinggi. Walaupun otentikasi itu penting, layar masuk mungkin merupakan bagian yang paling dipahami kebanyakan orang harus menulis. Alih-alih fokus pada fitur yang paling dibutuhkan pengguna Anda. Anda tahu, bagian yang menghasilkan uang bagi mereka dan merupakan alasan utama mereka membutuhkan perangkat lunak.
  • Isi rincian saat pertanyaan muncul dan Anda mendapatkan jawaban. Simpan segala sesuatunya benar-benar sederhana dengan gambar serbet jika perlu sampai klien puas dengan pengaturannya. Penting untuk mengetahui informasi apa yang terlibat dan bagaimana mereka akan menggunakannya.
  • Berhenti ketika menambahkan lebih banyak tidak menambah nilai. Ada beberapa detail yang tidak Anda inginkan dalam sebuah spec. Anda perlu tahu kapan Anda memiliki hal yang benar. Anda tidak perlu tahu bahwa ada variabel di dalam metode bernama "albaquerque". Itu kode sumber, bukan spesifikasi barang.
Berin Loritsch
sumber
+1 terima kasih atas balasan Anda. ya. Saya memang membaca semua 4 bagian artikel Joels. Bagaimana dengan keseluruhan proses screenie, apakah saya akan membuat halaman dan formulir dummy (tampak biasa) terlebih dahulu? Jadi saya tahu apa yang perlu saya tulis? Atau apakah saya mulai menulis?
gideon
Mulailah dengan apa yang Anda ketahui. Tetap sederhana agar Anda tidak terjebak membuatnya cantik. Anda memerlukan bantuan orang lain jika Anda menyusuri jalan itu (butuh waktu yang tidak Anda miliki). Sementara spesifikasi cantik lebih mudah dicerna, Anda memiliki banyak pekerjaan di depan Anda.
Berin Loritsch