Bagaimana cara menghentikan spek pengembangan agar tidak berubah di pertengahan pengembangan?

61

Masalah : Tampaknya dengan hampir setiap upaya pengembangan yang saya lakukan, tidak peduli berapa banyak waktu yang dihabiskan untuk perencanaan sebelum memulai pengembangan, selalu ada sejumlah besar perubahan yang diperlukan baik di tengah atau menjelang akhir proyek. Ini kadang-kadang perubahan besar yang membutuhkan banyak pengembangan kembali.

Saya tidak bekerja untuk klien yang membayar uang, ini adalah tim pengembangan in-house di situs web pengembangan in-house. Jadi, bukan berarti saya bisa meminta bayaran untuk itu atau apa pun. Dan pada akhirnya, kita harus mencoba mencapai tenggat waktu.

Pertanyaan : Apa saja cara terbaik yang kalian temukan untuk meminimalkan dan mencegah perubahan spesifikasi agar tidak muncul di tengah atau setelah pengembangan?

David
sumber
9
membangun tonggak Fitur Freeze dalam pengembangan dan mengatur / bernegosiasi hal-hal sedemikian rupa sehingga semua permintaan fitur yang diajukan setelah tonggak sejarah pergi ke rilis berikutnya bukan untuk yang sekarang. Poin kunci di sini tentu saja untuk merencanakan lebih dari satu rilis ke depan dan berbagi pemahaman ini dengan klien
agas
4
@gnat Anda mengasumsikan bahwa OP bekerja di organisasi tempat penerapan tonggak fitur Freeze akan dapat diterima oleh para pemangku kepentingan. Berdasarkan pengalaman pribadi bekerja di tim pengembangan in-house, jika saya mengusulkan hal seperti itu, para pemangku kepentingan akan menatap saya dan mengatakan sesuatu dengan efek "Siapa yang menurut Anda memberi tahu saya kapan saya bisa dan tidak bisa mengubah permintaan fitur saya atas kemauan? Menurut Anda apa yang saya bayar untuk Anda? Ketahui tempat Anda. "
maple_shaft
29
Sudahkah Anda mencoba menyimpan spec dalam file read-only?
orlp
14
Tentu saja Anda menagihnya: setiap perubahan pada spec menunda rilis, jadi respons Anda terhadap permintaan perubahan harus merupakan perkiraan tanggal rilis baru jika perubahan ditambahkan ke spec. Siapa pun yang meminta perubahan bertanggung jawab atas keterlambatan tersebut, dan perlu menjelaskannya dengan cara yang persis sama seperti seseorang akan menjelaskan pengeluaran.
Simon Richter
7
Bukankah ini sebabnya Agile ada? Anda tidak dapat membekukan spek jadi buat proses Anda menangani spek yang berubah.
Craig

Jawaban:

89

Ada pepatah militer terkenal, dikaitkan dengan Helmut von Moltke: "Tidak ada rencana pertempuran bertahan kontak dengan musuh". Dalam nada yang sama, saya tidak berpikir itu mungkin untuk membuat spek yang tidak harus diubah - tidak kecuali Anda dapat memprediksi masa depan dan membaca pikiran para pemangku kepentingan (bahkan kemudian mereka mungkin belum membuat keputusan, bahkan jika mereka mengklaim mereka melakukannya). Saya akan menyarankan sebagai gantinya mendekatinya dalam beberapa cara:

  1. Buat perbedaan yang jelas apa yang bisa diubah dan apa yang tidak bisa. Komunikasikan dengan jelas kepada para pemangku kepentingan, buat mereka secara eksplisit menandatangani hal-hal yang tidak dapat diubah sesegera mungkin.
  2. Bersiaplah untuk perubahan di muka. Gunakan metodologi kode yang memungkinkan untuk mengubah bagian yang dapat diubah dengan lebih mudah, berinvestasi dalam konfigurasi, enkapsulasi, dan protokol yang jelas yang memungkinkan bagian diubah dan diganti secara independen.
  3. Sering berbicara dengan pemangku kepentingan, meminta umpan balik dan persetujuan. Ini akan membuat Anda tetap sinkron dan menghindari mereka mengklaim "oh, bukan itu yang kami inginkan" ketika sudah terlambat. Seperti disebutkan dalam jawaban lain, metodologi lincah dan mini-rilis yang sering akan membantu Anda dengan itu.
  4. Masukkan jadwal untuk mengakomodasi perubahan yang tak terhindarkan. Jangan takut untuk mengatakan "kita akan membutuhkan lebih banyak waktu" lebih awal jika Anda pikir Anda akan - jika jadwal yang Anda berikan tidak realistis lebih baik untuk mengetahuinya (dan membuat Anda pada catatan mengatakan itu) pada awalnya daripada pada tamat.
  5. Jika perubahan terlalu luas dan mengancam batas waktu - dorong kembali dan ucapkan sesuatu seperti "perubahan ini mungkin, tetapi akan mendorong batas waktu pada waktu X, tentukan pilihan Anda".
  6. Buat proses formal untuk meminta perubahan, memprioritaskan perubahan, dan menetapkan perubahan pada versi atau rilis. Jika Anda dapat memberi tahu orang-orang "Saya tidak bisa melakukannya dalam rilis ini, tetapi dengan senang hati akan mengaturnya untuk yang berikutnya", itu jauh lebih baik daripada mengatakan kepada mereka "Anda terlambat, perubahan Anda tidak bisa masuk , selamat tinggal "dan akan menjadikan mereka teman Anda - mereka akan senang bagi Anda untuk merilis tepat waktu sehingga Anda bisa bebas lebih cepat untuk sampai ke rilis berikutnya yang akan memiliki perubahan mereka - dan bukan musuh Anda.
StasM
sumber
3
Anda juga dapat 'membekukan' mereka secara bertahap dan mendorong perubahan ke 'versi berikutnya' .
Berikan Thomas
3
Memformalkan proses perubahan dan memperjelas ruang lingkup adalah saran yang bagus - jika Anda melakukan pekerjaan kontrak dengan lingkup tetap / harga. Dalam pengaturan lain, pendekatan ini digiling karena memberikan jadwal dan prioritas harga di atas cakupan dan kualitas. Mungkin itulah yang Anda butuhkan dalam situasi tertentu. Tetapi sekali lagi, mungkin itu bukan ...
tardate
3
+1 untuk nomor 6. Saya memiliki pengalaman yang sangat baik dengan PM menerapkan persyaratan itu sendiri.
Joshua Drake
3
Siklus pendek adalah kuncinya. Orang-orang jauh lebih kecewa tentang sesuatu yang didorong ke sprint dua minggu ke depan daripada ketika "rilis berikutnya" adalah enam bulan lagi.
Adam Jaskiewicz
1
"berinvestasi dalam konfigurabilitas, enkapsulasi" sangat, beragam saran berbahaya. Itu dapat dengan mudah menyebabkan efek platform-dalam dan lapisan-lapisan abstraksi yang kosong, yang keduanya sebenarnya membuat jauh lebih sulit untuk mengubah suatu sistem. Sistem yang paling mudah diubah adalah sistem yang paling sederhana.
Michael Borgwardt
40

Kirim sesuatu (saya ragu menggunakan kata apa pun) lebih awal dan mengirimkannya sesering mungkin. Yaitu - gunakan semacam metodologi pengembangan berulang.

Ini adalah dasar pengembangan Agile, tetapi dapat digunakan dengan (hampir) metodologi apa pun.

Dengan memecah proyek menjadi serangkaian proyek mini Anda mendapatkan kontrol lebih besar karena Anda dapat menempatkan sesuatu di depan klien lebih awal, Anda tidak terkunci dalam jadwal pengembangan panjang yang menjadi ketinggalan zaman ketika klien berubah pikiran (seperti mereka akan).

Ketika mereka melihat sistem berevolusi, beberapa persyaratan akan berubah, beberapa akan menjadi berlebihan dan yang lain akan meningkat dalam prioritas. Namun, dengan memiliki siklus hidup proyek pendek Anda akan dapat mengatasi perubahan ini.

ChrisF
sumber
22

Teori bahwa adalah mungkin untuk sepenuhnya menentukan proyek perangkat lunak dari berbagai ukuran yang signifikan adalah fantasi yang lengkap. Teori ini telah ditemukan tidak berfungsi dalam organisasi dari besar ke kecil untuk hampir sepanjang sejarah pengembangan perangkat lunak.

Anda HARUS menemukan beberapa cara untuk mengakomodasi perubahan saat berjalan! Mereka akan terjadi, karena sebagian besar pemangku kepentingan, bahkan jika mereka mengatakan 'ya, itu yang saya inginkan' sebenarnya tidak tahu apa yang mereka inginkan sampai itu di depan mereka. Itu sebabnya kami memiliki begitu banyak orang yang mengadopsi metode berulang.

Apakah Anda melakukan iterasi produk atau apa pun, Anda HARUS menemukan beberapa cara untuk mengakomodasi perubahan ini, karena mencoba menemukan cara untuk tidak melakukan perubahan hanyalah meminta gravitasi untuk mematikan diri selama beberapa menit sehingga Anda dapat terbang.

Michael Kohne
sumber
2
NASA melakukannya dengan beberapa perangkat lunak mereka, atau setidaknya cukup baik untuk mengirim angkutan ke luar angkasa. Masalahnya adalah mereka benar-benar mengikuti model air terjun. Spek sebenarnya beku. Setidaknya ini pemahaman saya dari luar organisasi.
Joshua Drake
5
Saya telah mengerjakan beberapa proyek di mana kami dapat sepenuhnya menentukan sistem yang cukup signifikan (tambahan switch telepon). Kuncinya dalam semua kasus ini adalah bahwa kami menargetkan perangkat keras yang telah dikembangkan, dan sedang dikembangkan untuk spesifikasi yang dipublikasikan (ITU), sehingga tidak ada yang bisa berubah. Jadi argumen Anda tidak berlaku untuk semua proyek - hanya 99% dari mereka! ;)
TMN
@ TMN: Saya juga tidak akan setuju dengan 99%. Saya pikir pengembangan seperti air terjun jauh, jauh lebih sukses daripada agilist memberikannya. Kalau tidak, itu tidak akan digunakan lagi. Sebagian besar proyek yang saya kerjakan mirip air terjun. Kuncinya adalah menetapkan garis dasar, maka setiap perubahan yang terjadi diperkirakan untuk waktu dan uang tambahan. Pelanggan kemudian memutuskan apakah akan memasukkan uang kembalian atau tidak dan jadwal serta dolar meluncur sesuai.
Dunk
1
@Dunk: Saya tahu sebagian besar kesuksesan kami adalah kepatuhan kami terhadap metodologi yang dikembangkan di Bell Labs. Itu rekayasa nyata, dengan ketertelusuran lengkap dari persyaratan untuk spesifikasi untuk desain untuk menguji rencana untuk kode untuk menguji hasil untuk kiriman. Ketika tes gagal, Anda bisa melihat persis yang persyaratan (s) tidak terpenuhi, dan Anda tahu persis di mana untuk mencari kode gagal (atau desain gagal). Dibutuhkan banyak disiplin dan pengawasan untuk membuat air terjun bekerja, tetapi Anda benar, itu bisa bekerja dengan baik.
TMN
1
@ TMN Lalu saya bertanya-tanya mana yang merupakan kunci kesuksesan. Penggunaan model air terjun, atau pendekatan disiplin Anda? Saya pikir nanti adalah yang lebih penting dari keduanya.
Ross Goddard
19

Jangan mencoba untuk mencegah perubahan, merangkulnya . Semakin Anda merencanakan ke depan, semakin besar kemungkinan rencana Anda akan berubah. Jadi, rencanakan lebih sedikit , bukan lebih. Adopsi metodologi pengembangan yang gesit di mana Anda sering mengirimkan potongan kecil kode kerja, memberi pelanggan kesempatan untuk mengubah spesifikasi setiap beberapa minggu.

Bryan Oakley
sumber
Saya tidak tahu mengapa ini tidak terjadi pada saya lebih cepat, tetapi gagasan bahwa memiliki kode memungkinkan seseorang untuk merangkul perubahan lebih mudah tidak mungkin benar. Apakah lebih mudah dan sedikit memakan waktu untuk mengubah beberapa diagram atau mengubah kode? Apalagi bila ubahannya besar. Saya setuju Anda tidak mencoba untuk mencegah perubahan, Anda hanya perlu menunjukkan dampaknya dan menerapkannya sesuai dengan jadwal. Pelukan tangkas berubah tidak lebih dari metode seperti air terjun. Saya bahkan berpikir itu menangani perubahan lebih buruk daripada air terjun karena bisa sedikit lebih mahal untuk melakukan perubahan (tergantung kapan perubahan terjadi).
Dunk
6
@Dunk Anda benar karena lebih murah untuk mengubah diagram daripada kode, tetapi bagaimana Anda menemukan bahwa perubahan perlu dilakukan? Sering kali ini hanya akan terjadi setelah Anda memberi pengguna sesuatu untuk digunakan dan ia menyadari bahwa ia mengomunikasikan ide yang salah, ini bukan yang ia inginkan, atau ada hal-hal lain yang ia inginkan juga. Kuncinya adalah mencari tahu bagaimana menemukan perubahan ini sesegera mungkin.
Ross Goddard
@Ross: Itulah salah satu alasan untuk prototipe. Anda membuat semacam sistem kerja dan mendapatkan umpan balik. Ini adalah mitos bahwa di air terjun pelanggan tidak tahu apa yang mereka dapatkan sampai selesai. Saya telah mengerjakan proyek-proyek yang cukup besar di mana orang-orang UI menghabiskan beberapa bulan pertama mengejek prototipe yang representatif untuk memastikan pelanggan mendapatkan apa yang mereka inginkan. Orang bisa berpendapat bahwa menggunakan sistem yang sebenarnya lebih baik, tetapi jika berakhir membutuhkan waktu lebih lama untuk menyelesaikannya karena kode perlu sering dirancang ulang maka itu bukan trade off yang baik.
Dunk
12

Anda mengajukan pertanyaan yang salah. Perubahan spesifikasi akan selalu terjadi dalam proyek pengembangan perangkat lunak dalam berbagai ukuran.

Seringkali karena persyaratan bisnis berubah tetapi saya juga telah melihatnya terjadi karena pelanggan (internal atau eksternal) dapat kesulitan untuk memvisualisasikan apa yang mungkin terjadi tanpa melihat sesuatu untuk diulangi, sehingga mereka memiliki visi yang perlahan berubah saat mereka terlibat dengan mengembangkan solusi.

Pertanyaan yang harus Anda ajukan bukanlah "bagaimana saya bisa mengunci spesifikasi", melainkan "bagaimana saya bisa menyusun kode dan proses saya untuk menanggapi lingkungan yang berubah tanpa membuang semua yang sudah saya tulis?"

Ini kemudian membawa Anda ke arena bingo kata kunci: metodologi lincah, pengembangan berulang dan solusi teknis seperti pengkodean berbasis modul / modular, integrasi terus menerus ... daftarnya terus berlanjut.

Saya tidak mengatakan ini adalah peluru perak untuk semua masalah Anda, tetapi mereka semua terjadi karena keinginan untuk mengelola situasi yang Anda gambarkan sehingga setidaknya mereka layak diselidiki.

Maaf jika itu tidak menawarkan solusi konkret tapi saya cenderung berpikir perubahan pola pikir untuk menerima dan mengelola perubahan akan membayar dividen yang lebih besar daripada mencoba menghindarinya.

MarcE
sumber
Ya. Untuk mengulangi pertanyaan awal: "Bagaimana kami dapat menjamin bahwa kami memberikan apa yang diinginkan klien pada awal proyek, daripada apa yang mereka inginkan pada akhirnya?"
Steve Bennett
5

Perubahan hanyalah kejutan ... jika itu kejutan!

Saya sarankan memikirkan:

  • dari mana sih perubahan-perubahan ini berasal?
  • kenapa kamu tidak menyadarinya lebih awal?
  • mengapa Anda tidak berkontribusi pada perubahan ini (dan berpotensi membuat lebih banyak dari mereka)?

Perubahan adalah sifat dari apa yang kita lakukan. Sejak kapan Anda membuat kode algoritma persis seperti yang dibayangkan pada hari 1?

Tetapi jika Anda ingin menghindari terus-menerus menjadi pengembang yang frustrasi "terkejut" oleh perubahan, saya pikir Anda perlu menemukan Anda lebih dekat dengan tindakan di mana keputusan dibuat. Lagi pula, saya yakin Anda memiliki banyak ide tentang bagaimana Anda bisa membuat produk lebih baik. Duduklah di meja, atau terimalah selamanya bahwa Anda hanya harus berurusan dengan "perubahan kejutan" itu.

tardate
sumber
+1 "Perubahan adalah sifat dari apa yang kita lakukan" - Saya suka perubahan. Perubahan bisa menjadi hal yang baik. Ini memberi saya kesempatan untuk melihat apakah keterampilan desain saya siap atau tidak. Jika perubahan menyebabkan banyak pengerjaan ulang maka saya melakukan desain yang buruk. Ini juga memberikan kesempatan untuk membuat desain lebih umum. Itu memberi alasan untuk memperbaiki apa yang Anda lalui untuk memenuhi jadwal. Ini memungkinkan saya kembali dan memperbaiki sampah orang lain. Lacak saja permintaan perubahan dan gabungkan mereka dalam jadwal sehingga ketika Anda mengirim lebih lambat dari jadwal asli Anda memiliki bukti untuk menunjukkan alasannya.
Dunk
4

Yah itu panggilan, klien selalu ingin lebih tetapi di sini ada beberapa hal yang harus Anda pertimbangkan:

HTML Mock-up: Selalu buat mock up HTML untuk menentukan bagian UI suatu aplikasi, perlihatkan kepada mereka bagaimana tampilannya dan tanyakan pendapat mereka. Jika Anda menemukan sesuatu yang masuk akal untuk diubah, wujudkanlah dalam prototipe HTML. Dengan menggunakan ini Anda akan memilah banyak hal seperti masalah UI, aliran dasar dan beberapa add-on (seperti Sortasi, Pagination, no. Catatan yang akan ditampilkan dll.)


Partisipasi aktif dari ujung lain: Ini sangat penting jika Anda mengembangkan untuk organisasi bisnis, masuk ke bisnis mereka minta mereka untuk menjelaskan keraguan Anda dan tanpa gagal bertanya kepada mereka perubahan apa yang mereka inginkan dalam aliran mereka (jika diperlukan).


Rilis modular: Lepaskan kode Anda dengan cara modular, lepaskan, uji, terima umpan balik, dan lepaskan lagi.

CodeCracker
sumber
4

Inilah sebabnya mengapa hampir tidak mungkin untuk merencanakan terlalu jauh sebelumnya, tetapi bukan alasan untuk tidak merencanakan sama sekali. Jangan jatuh cinta terlalu jauh dengan rencana Anda dan Anda tidak perlu khawatir mereka menghancurkan hati Anda.

Di dalam perusahaan Anda ada biaya untuk menggunakan sumber daya TI apakah ada yang mengakuinya, melacaknya, atau harus menganggarkannya atau tidak. Kenyataannya adalah, tim Anda hanya dapat membuat begitu banyak kode dalam waktu tertentu. Semua departemen dan proyek berbagi dalam anggaran ini.

Anda tidak dapat mencegah siapa pun dari keinginan untuk mengubah persyaratan, tetapi mereka tidak dapat lepas dari konsekuensinya. Perubahan secara signifikan dapat meningkatkan waktu pengembangan. Itu adalah fakta yang harus mereka hadapi atau putuskan untuk tidak melakukan perubahan. Apakah permintaan dari satu departemen memengaruhi departemen lain? Anda mungkin harus memindahkan proyek mereka sepenuhnya di belakang departemen lain karena permintaan perubahan akan melanggar jadwal waktu kelompok lain.

JeffO
sumber
4

Keterlibatan pengguna aktif sepanjang siklus pengembangan, dan penggunaan metodologi Agile sebanyak mungkin sangat membantu kami dengan produk kami.

Perubahan spesifikasi tidak dapat dihindari, tetapi dengan bersikap transparan dengan pengguna dan yang terpenting, sering berkonsultasi dengan mereka berarti sebagian besar perubahan ditangkap sedini mungkin.

SkeetJon
sumber
3

Bagi saya itu cukup mudah.
Katakan pada orang itu, "Pemilik produk" , yang telah memesan fitur bahwa ini OK, tetapi ia harus memilih beberapa fitur yang direncanakan, yang mungkin tanpa batas waktu ini.
Anggap saja sebagai rapat setengah sprint dengan PO tempat Anda memberi tahu dia bahwa sprint tidak akan hangus hingga 0.

Ps. Jika bukan "PO", saya akan mengatakan jangan bicara dengan saya, pergi melalui "PO"

Petani atau
sumber
1

Apa saja cara terbaik yang Anda temukan untuk meminimalkan dan mencegah perubahan spesifikasi agar tidak muncul di tengah atau setelah pengembangan?

Tidak ada cara terbaik. Terserah manajemen untuk membatasi perubahan pada spesifikasi dalam fase pengembangan tertentu.

Namun, Anda harus merancang perangkat lunak Anda sedemikian rupa untuk mengharapkan perubahan. Maka dampak perubahan akan jauh lebih sedikit. Pengembangan berulang dan bertahap adalah awal yang baik.

BЈовић
sumber
1

Saya telah menemukan bahwa, secara langsung atau tidak langsung, pelanggan adalah penyebab sebagian besar perubahan (dan juga bug paling kritis, BTW). Jadi solusi yang jelas adalah menghilangkan pelanggan. (Apa gunanya mereka?)

Daniel R Hicks
sumber
:) Jika pelanggan menginginkan kustomisasi gila, maka mereka harus membayarnya dengan uang dan waktu. Jika orang-orang penjualan benar-benar HARUS membuat janji untuk memberikan fitur yang belum ada sebagian besar waktu mereka melakukan penjualan, maka perusahaan memiliki masalah yang lebih besar secara keseluruhan: ia memiliki banyak pesaing dan tidak berada di puncak permainannya, misalnya Vendor basis data SyBase. Entah itu akan menjadi tidak relevan sebagai perusahaan, atau perlu CEO & wakil revolusioner.
Ayub
1

Karena Anda tidak dapat mencegah perubahan, Anda harus menerimanya. Saya pikir hal terpenting yang dapat Anda lakukan adalah: Anda perlu mencoba mendapatkan permintaan perubahan dari pelanggan sedini mungkin , karena lebih murah untuk mengubah hal-hal ketika hanya ada sedikit kode. Jadi, Anda perlu mempresentasikan desain Anda sedini mungkin kepada pelanggan dengan menggunakan prototipe (mungkin bahkan prototipe kertas), menggunakan metode gesit dan sebagainya.

Hans-Peter Störr
sumber
1

Anda dapat mempertimbangkan untuk memperkenalkan beberapa disiplin dalam proses pengembangan menggunakan metodologi seperti SCRUM. Di SCRUM, sebuah tim membuat rencana awal dengan memecah implementasi fitur menjadi cerita , dan menugaskan masing-masing cerita sebuah perkiraan upaya (jumlah jam kerja atau hari yang dibutuhkan untuk mengimplementasikan cerita itu).

Jika perubahan yang terlambat diminta (untuk cerita yang sudah diterapkan), Anda perlu membuat cerita baru dan memperkirakan upaya penerapannya. Kemudian Anda dapat pergi ke manajer Anda ( pemilik produk ) dan hanya menjelaskan bahwa fitur baru akan dikenakan biaya waktu tambahan itu. Manajer proyek kemudian memiliki tanggung jawab untuk menerima upaya ekstra dan menyesuaikan jadwal (mungkin membatalkan cerita lain yang belum diimplementasikan).

Bahkan jika tim Anda tidak akan sepenuhnya mengimplementasikan SCRUM atau proses pengembangan lainnya, Anda setidaknya bisa memperkenalkan perencanaan berdasarkan cerita , memperkirakan upaya pengembangan untuk setiap cerita, dan menyesuaikan jadwal ketika cerita baru diminta.

Giorgio
sumber
0

http://teddziuba.com/2010/05/why-engineers-hop-jobs.html

Saya menghabiskan terlalu banyak malam setelah bekerja menekankan dan tidak bahagia karena orang lain belum mengerti atau peduli bagaimana bisnis perangkat lunak bekerja. Saya tidak punya masalah menghadapi siapa pun yang lebih tinggi, tetapi saya tidak memiliki dukungan dari sesama kutu buku saya. Memiliki anak itu menyebalkan, eh? Saya kemungkinan akan segera berhenti.

Terus terang, saya berharap programmer pada umumnya punya lebih banyak bola. Mari kita lihat ini:

"" "Saya tidak bekerja untuk klien yang membayar uang, ini adalah tim pengembangan in-house di situs web pengembangan in-house. Jadi, sepertinya saya tidak bisa mengenakan biaya untuk itu atau apa pun. Dan pada akhirnya, kita harus mencoba mencapai tenggat waktu. "" "

Jika Anda berurusan dengan klien yang membayar $ dan jika Anda menutupi pantat Anda dengan memiliki kontrak (http://vimeo.com/22053820?utm_source=swissmiss), maka perubahan dalam spesifikasi akan membebani klien ini lebih banyak waktu DAN lebih banyak uang ( atau berpotensi sama atau kurang waktu tetapi secara eksponensial lebih banyak uang). Perusahaan Anda sedang berusaha melepaskan spec tanpa menimbulkan biaya lebih banyak waktu dan lebih banyak uang.

Sementara itu, mencoba mencapai tenggat waktu menyebabkan Anda dan rekan kerja Anda TIDAK PERLU stres; Anda tidak dapat menghabiskan akhir pekan yang berkualitas dengan teman / keluarga. Ini benar-benar tidak perlu, karena siapa pun yang melempar pekerjaan pada Anda mungkin bahkan tidak mengetahuinya, yang menyedihkan.

Solusi yang saya usulkan: bersama-sama punya nyali untuk menghadapi mereka dan menjelaskan bahwa tidak ada makan siang gratis dan semuanya ada biayanya, bahwa montir otomatis akan membutuhkan waktu lebih lama dan biaya lebih banyak jika spesifikasi diubah di tengah kerja, bahwa agen kontrak akan membutuhkan waktu lebih lama dan menagih lebih banyak jika spesifikasi diubah di tengah kerja, dan ada alasan bagus untuk itu. Jika mereka tidak mau bekerja dengan Anda dengan cara yang masuk akal, maka Anda sebagai kelompok akan bangun dan pergi, dan mereka harus mempekerjakan pengembang yang dapat mengambil proyek di mana proyek itu ditinggalkan dan tepat waktu.

Lalu ada juga janji pengembangan tangkas, yang tidak menyiratkan tenggat waktu yang sulit.

Saya belum melihat pemrogram mogok, tapi ini akan menjadi sesuatu. Manajer yang tidak kompeten terlalu banyak di perusahaan perangkat lunak. Terlalu banyak orang yang ingin mendapatkan sesuatu tanpa bayaran, di Craigslist atau dalam perusahaan yang sebenarnya. http://teddziuba.com/2011/07/the-craigslist-reverse-programmer-troll.html

Programmer perlu memiliki lebih banyak bola.

Job
sumber
0

Sebuah pendekatan yang saya temukan yang bekerja agak OK (tidak dengan semua manajer jelas) adalah "Saya pikir saya bisa melakukan itu, ya. Itu tergantung - berapa banyak waktu tambahan yang Anda tetapkan untuk proyek ini? Ini perubahan yang cukup besar bagi Anda meminta. "

medivh
sumber