Rumah  >  Artikel  >  Tutorial sistem  >  Penting untuk pengaturcara: kemahiran menganggar masa projek

Penting untuk pengaturcara: kemahiran menganggar masa projek

王林
王林ke hadapan
2024-01-08 18:18:53976semak imbas
Pengenalan Seorang PM baru-baru ini memberitahu saya tentang dilema yang dihadapinya: “Jurutera perisian tidak boleh menganggarkan berapa lama projek mereka akan mengambil masa yang perlu saya lakukan?” Dua CEO lain memberitahu saya perkara yang sama baru-baru ini. Pada tahap yang tinggi, masalahnya ialah jurutera, PM, pengurus, PR, dan orang lain mempunyai perspektif yang berbeza dalam hal anggaran masa. Perkara yang difikirkan oleh kebanyakan jurutera secara naluri ialah jumlah masa minimum yang diperlukan untuk menulis prototaip yang boleh digunakan jika semuanya berjalan mengikut rancangan. Tetapi apa yang orang hiliran ingin tahu ialah bila projek itu akan sedia untuk dikeluarkan - dan itu cerita lain sepenuhnya.

Seorang PM baru-baru ini memberitahu saya tentang dilema yang dihadapinya: “Jurutera perisian tidak boleh menganggarkan berapa lama masa yang diperlukan untuk projek mereka?” Dua CEO lain memberitahu saya perkara yang sama.

"Mengapa pengaturcara tidak boleh menganggarkan masa projek dengan tepat?" 》(http://blog.jobbole.com/24924/), kita semua memahaminya dengan mendalam. Saya pernah menemui projek yang dijangka mengambil masa dua hari untuk disiapkan, tetapi akhirnya mengambil masa empat bulan. Dalam kes ini, walaupun menggunakan anggaran empirikal "masa berganda", masih terdapat perbezaan susunan magnitud. Ini benar-benar menjejaskan perniagaan. Saya telah melihat seluruh syarikat bergelut untuk menganjurkan acara pelancaran, hanya perlu menangguhkannya selama berbulan-bulan.

Pada tahap yang tinggi, masalahnya ialah jurutera, PM, pengurus, PR, dan semua orang lain mempunyai perspektif yang berbeza dalam hal menganggarkan masa. Perkara yang difikirkan oleh kebanyakan jurutera secara naluri ialah jumlah masa minimum yang diperlukan untuk menulis prototaip yang boleh digunakan jika semuanya berjalan mengikut rancangan. Tetapi apa yang orang hiliran ingin tahu ialah bila projek itu akan sedia untuk dikeluarkan - dan itu cerita lain sepenuhnya.

Penting untuk pengaturcara: kemahiran menganggar masa projek

Bagi jurutera, memahami masa yang diperlukan untuk menganggarkan projek adalah perjalanan sepanjang hayat. Mengabaikan isu ini akan menyebabkan masalah kepada anda dan semua orang yang anda temui secara langsung atau tidak langsung. Mempunyai anggaran yang tepat tentang tempoh masa projek akan membuatkan anda menonjol, dan rakan sekerja akan mengaitkan ini dengan profesionalisme, kestabilan dan kualiti kerja anda.

Kenapa kita perlukan anggaran masa

Pertama, izinkan saya menjawab soalan yang sering ditanya oleh jurutera: "Mengapa kita perlu menganggarkan masa?" “Jika saya menggunakan pendikit penuh, saya akan menyelesaikan projek dengan lebih cepat!”

Terdapat dua sebab utama: kebergantungan luaran dan keutamaan.

Pergantungan luar

Tiada kempen berkesan beroperasi dalam vakum. Projek selalunya mempunyai pergantungan luar, seperti kerjasama dengan pasukan bukan kejuruteraan (komunikasi, kewangan, PR, perkhidmatan pelanggan), pasukan kejuruteraan lain, atau pengguna akhir itu sendiri. Menyelaraskan kebergantungan luar ini biasanya merupakan tanggungjawab pengurus, PM atau CEO. Ini bermakna orang yang paling layak untuk membuat anggaran masa (jurutera) bukanlah orang yang paling memerlukan maklumat masa untuk anggaran tersebut. Asimetri ini membawa kepada percanggahan asas.

Keutamaan

Anggaran masa juga penting untuk mengutamakan kerja. "Sama ada wang itu bernilai wang" adalah penunjuk penting dalam projek Tanpa anggaran sebenar, adalah mustahil untuk menentukan sama ada wang itu bernilai wang. Walaupun ciri yang anda usahakan adalah yang terbaik di dunia, jika anda meluangkan masa untuk membuat anggaran yang teliti, anda mungkin menyedari bahawa ia akan mengambil masa yang lama untuk disiapkan.

Andaikan anda sedang mengerjakan satu projek yang akan menjadikan tapak web 50% lebih pantas, tetapi dalam jumlah masa yang sama, dua projek boleh disiapkan yang setiap satu akan menjadikan laman web 40% lebih pantas. Jika anda tidak meluangkan masa untuk membuat anggaran awal, anda tidak akan tahu anda boleh membuat tapak web yang lebih pantas!

Bermula dengan Anggaran Masa

Sekarang semua orang bersetuju bahawa anggaran masa diperlukan pada kebanyakan masa, mari kita bercakap tentang teknik.

Kami memandang rendah masa kerana kami fikir "berapa lama masa yang saya ambil untuk menulis versi asas ini?"

Tetapi ia memberikan sesuatu yang lebih daripada versi asas. Juga mengambil kira masa yang diperlukan untuk menulis, menguji, nyahpepijat dan menggilap. Jangan lupa bahawa perkara seperti mesyuarat, temu bual, membuat semakan kod dan menghantar e-mel juga mengambil masa.

Satu lagi sebab untuk meremehkan masa ialah kita hampir selalu menghadapi "tidak diketahui" semasa pengekodan yang mustahil untuk diramal dan dipertimbangkan sepenuhnya. Mungkin IDE mengemas kini, memecahkan projek, dan anda menghabiskan hari untuk membetulkannya. Ini tidak boleh diambil kira dalam anggaran masa.

Namun, kita masih boleh melakukan lebih baik daripada gerak hati awal kita. Begini cara saya melakukannya:

Langkah pertama: Bangunkan pelan teknikal Sebelum memulakan kerja, anda sepatutnya sudah mempunyai pelan teknikal atau dokumen reka bentuk yang boleh membantu dengan sebarang projek penting. Anda boleh menggunakan ini untuk memberitahu orang lain apa yang anda lakukan dan mendapatkan maklum balas. Membangunkan pelan teknikal adalah peringkat yang ideal untuk melancarkan anggaran masa. Apabila anda melengkapkan butiran teknikal reka bentuk, masalah yang tidak diketahui akan ditemui dan anda akan menyemak semula anggaran masa secara ajaib. Mungkin anda akan menyedari bahawa anda mungkin perlu menaik taraf perpustakaan yang anda gunakan kepada versi baharu, yang mungkin menambah satu hari untuk kerja anda. Anda mungkin menyedari bahawa perpustakaan yang anda rancang untuk digunakan sebenarnya tidak wujud dan anda perlu menulisnya sendiri.

Kebutiran adalah penting di sini. Jika mana-mana langkah terasa samar atau tidak jelas, mungkin anda melangkaunya (harus mengetahui lebih lanjut) atau perlu memecahkannya kepada langkah yang lebih kecil. Pada masa yang sama, jika langkah terlalu berbutir, ia mungkin terdedah dalam amalan dan menyebabkan keseluruhan rancangan tidak berkesan.

Untuk aspek apakah yang perlu dipertimbangkan dalam perancangan teknologi, sila rujuk artikel oleh Alicia Chen ini "Apa yang anda maksudkan 'kita perlukan lebih banyak masa'?". Salah satu perkara utama ialah menghapuskan sebarang kemungkinan kekaburan dengan PM atau pihak berkepentingan lain supaya anda tidak perlu memulakan semula kerana anda melakukan sesuatu yang salah.

Langkah 2: Tambahkan belanjawan masa untuk setiap langkah

Anggarkan berapa lama setiap langkah dalam penyelesaian teknikal akan diambil untuk dilaksanakan. Ini biasanya melibatkan penggalian butiran ("Adakah sesiapa telah melaksanakan apa yang perpustakaan ini lakukan?"). Bergantung pada sifat projek, meletakkan prototaip mudah boleh membantu mendedahkan banyak kemungkinan titik kesakitan masa depan.

Langkah 3: Tambahkan banyak masa tambahan

Kini anda mempunyai anggaran awal, tetapi semua perkara yang kami nyatakan sebelum ini masih perlu dipertimbangkan.

  • Nyahpepijat semasa dalam perjalanan: Selalu ada pepijat. Penyahpepijatan sebahagian besarnya bergantung pada pengalaman anda dengan pangkalan kod tertentu dan kematangan pangkalan kod.
  • Mesyuarat, temu duga, percutian, dsb.: Mungkin anda tidak akan mengekod di stesen kerja anda sepanjang masa. Berapa jam anda benar-benar perlu kod? Anda hendaklah sekurang-kurangnya melihat kalendar anda semasa membuat anggaran.
  • Ujian akhir dan pembersihan pepijat: Biasanya anda sepatutnya menulis ujian semasa mengekod, tetapi banyak pasukan perlu menjalankan satu pusingan kerja penggilapan atau ujian integrasi sebelum dikeluarkan. Benarkan belanjawan yang mencukupi untuk tugasan ini dalam anggaran. Jika pelancaran dijalankan secara berperingkat, 1% kandungan awal mungkin mendedahkan pepijat yang perlu diperbaiki, jadi perkara ini perlu diambil kira.
  • Semakan kod: Berapa pusingan semakan kod yang diperlukan oleh projek? Berapa lama ia biasanya mengambil masa? Pastikan anda mempunyai penyemak yang mencukupi (dan semak jadual mereka juga). Jika ini adalah projek dengan hanya seorang pengulas, mereka harus diminta untuk bersetuju terlebih dahulu untuk bersiap sedia sekiranya pengulas sedang bercuti atau terlalu sibuk pada saat kritikal.

Sebaik sahaja anda mula menambahkan overhed masa ini ke dalam projek anda, anda akan mula melihat anggaran masa anda sepadan dengan lebih baik daripada masa projek itu sebenarnya bermula. Ya, ia mungkin mengambil masa lebih lama daripada yang dianggarkan, dan anda mungkin berasa tertekan untuk memendekkan tarikh akhir. Tetapi orang akan menghargai anggaran anda apabila mereka tahu mereka boleh bergantung pada anda.

Langkah 4: Selepas projek dikeluarkan, semak dan ringkaskan anggaran masa

Memang perit untuk melihat kembali kerja yang dilakukan selepas projek itu siap. Tetapi semakan jenis ini akan membolehkan anda belajar banyak daripadanya dan melakukan lebih baik pada masa akan datang.

Proses yang manakah ternyata berbeza daripada yang dijangkakan? Jika ujian penyepaduan mengambil masa dua kali lebih lama daripada yang dijangkakan, buat catatan mengenainya dan berikan lebih banyak masa untuk ujian kali seterusnya. Atau cuba perbaiki sistem ujian bersepadu.

Anda pasti akan melihat anggaran anda bertambah baik dari semasa ke semasa. Anda juga mungkin menghasilkan beberapa cerapan hebat sepanjang perjalanan yang boleh membantu seluruh pasukan.

Akhirnya, ini semua tentang komunikasi

Anda harus memaklumkan kepada orang lain tentang jadual anda dan perubahan lain terlebih dahulu. Jika anda memberitahu pengurus anda bahawa kelemahan keselamatan baharu wujud dalam perpustakaan yang anda gunakan sebulan sebelum keluaran dan anda perlu bermula dari awal, mereka akan mempunyai masa untuk memberitahu PR, kewangan atau pengguna sewajarnya bahawa keluaran itu perlu ditangguhkan.

Maklum balas penting yang diperoleh daripada berkomunikasi dengan rakan usaha sama lain akan membantu melaraskan anggaran masa. Pereka bentuk mungkin berkata, "Oh, jika animasi mewah ini akan mengambil masa sepanjang minggu, kami boleh memotongnya sepenuhnya." PM mungkin menambah, "Ini hanyalah percubaan prototaip dalam penyelidikan pengguna pembersihan pepijat untuk lelaran ini.” Pengurus mungkin berkata, “Anda menghabiskan separuh masa anda dalam mesyuarat?

Untuk jurutera, jangan berkompromi dengan garis masa yang tidak realistik hanya untuk menggembirakan pihak atasan anda. Adalah lebih profesional untuk memaklumkan anggaran masa dan perubahan anda.

Bagi orang lain, menghormati masa yang dianggarkan adalah sukar dan ia memerlukan proses. Anda hanya boleh memendekkan masa yang dianggarkan dengan duduk dan memotong ciri atau fasa yang sebenarnya tidak perlu dikeluarkan, bukan dengan mengomel anda memendekkan masa.

Kami tidak boleh menganggarkan dengan sempurna berapa lama sesuatu projek itu akan diambil. Satu-satunya cara untuk melakukannya ialah bersikap terbuka, komunikatif, empati, dan memberi keutamaan secara tegas.

Atas ialah kandungan terperinci Penting untuk pengaturcara: kemahiran menganggar masa projek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam