Bagaimana Anda memutuskan apakah Anda harus mengambil proyek?

11

Saya adalah pengembang yang cukup baru. Secara profesional saya telah memprogram dalam C # selama dua tahun sebagai magang dan 6 bulan sebagai pengembang junior. Seorang teman keluarga saya membutuhkan bantuan dengan proyek yang ditulis dalam VB.net. Saya belum pernah menggunakan VB.net, jadi saya sedikit khawatir di sana.

Tapi, pertanyaan sebenarnya datang pada kenyataan bahwa begitu saya melihat dokumen untuk proyek saya merasa bahwa tidak ada yang benar-benar baik akan datang dari itu. Saya punya perasaan bahwa itu akan menyebabkan lebih banyak stres daripada yang ingin saya miliki dalam hidup saya saat ini.

Bagaimana pengembang yang berpengalaman membuat keputusan apakah akan mengambil proyek atau membiarkannya? Apa beberapa metrik yang baik untuk membuat keputusan lebih mudah?

Edit

Ini sebenarnya tampak seperti ERP yang sangat besar yang dia ingin saya kerjakan dan saya tidak percaya bahwa dia tahu apa-apa tentang pemrograman jadi saya tidak berpikir fakta bahwa saya sangat junior bahkan telah melintas di benaknya.

J Lundberg
sumber
10
Apakah ini keputusan yang sulit? Anda tidak menyukai spesifikasi dan tidak percaya padanya. Mengapa Anda ingin mengambil proyek ini?
Vitor Py
2
Ini adalah contoh nyata yang saya miliki saat ini, tetapi saya merasa bahwa akan sangat membantu untuk membuka diskusi tentang bagaimana Anda memilih proyek, karena tidak ada pertanyaan serupa.
J Lundberg
@ J Lundberg: Saya telah memperbarui jawaban saya sebagai tanggapan atas pembaruan Anda.
FrustratedWithFormsDesigner
3
Jika dia tidak tahu pemrograman apa pun, mengapa dia bersikeras pada VB.NET? Dia jelas tidak akan mengerjakan proyek dengan Anda. Tidak ada alasan untuk menggunakannya di atas C # di .NET. Anda dapat mengkompilasi VB.NET yang ada dan menggunakannya sebagai pustaka dalam kode C # Anda atau sebaliknya.
Jonathan Henson
"butuh bantuan" - apakah ini dibayar atau tidak dibayar?

Jawaban:

11

Dari pengalaman saya: Jangan pernah melakukan pekerjaan yang melibatkan uang untuk anggota keluarga yang harus Anda habiskan liburan atau teman yang ingin Anda pertahankan. Salah satu pihak yang terlibat akan selalu merasa seperti pihak lain terlalu banyak menagih atau tidak membayar cukup dan bahwa mereka melakukan bantuan pihak lain. Ketika tenggat waktu muncul, mereka biasanya yang paling tidak mengerti, dan mereka biasanya adalah lubang pantat selama tes beta karena jika Anda memiliki bug - yang Anda akan - mereka tidak akan mengerti. Itu selalu berantakan.

Saya dulu idealis dan berpikir bahwa semua orang hanya membutuhkan keterampilan orang yang lebih baik, tetapi tidak, hanya itu yang terjadi. Orang-orang yang tidak memahami proses pengembangan perangkat lunak akan SELALU panik ketika sesuatu tidak memenuhi harapan mereka saat pertama kali mereka melihatnya. Ini berlaku dalam bisnis dengan manajer proyek seperti halnya dengan anggota keluarga. Masalahnya adalah, Anda harus menjaga hubungan dengan keluarga dan teman, dan segala sesuatunya tidak pernah benar-benar bisnis.

Yang mengatakan, jika proyek ini akan meningkatkan tingkat stres Anda dan Anda tidak perlu uang maka mengapa mengambilnya? Terutama jika Anda sudah memiliki pekerjaan pengembangan perangkat lunak yang Anda ingin unggul, saya akan mengatakan bahwa Anda harus mendedikasikan sebanyak mungkin upaya kerja Anda untuk menjadi luar biasa dalam pekerjaan harian Anda karena di situlah Anda pada akhirnya akan dihargai untuk pekerjaan yang berkualitas.

Jika Anda benar-benar membutuhkan uang, dan Anda setuju dengan kemungkinan kehilangan teman keluarga, maka ambil pekerjaan itu. Hal terburuk yang bisa terjadi - selain dari hal-hal yang saya sebutkan sebelumnya - adalah Anda belajar apa yang Anda lakukan dan tidak pandai, atau Anda belajar bahwa Anda menggigit lebih banyak daripada yang dapat Anda mengunyah menyebabkan proyek menjadi buruk sakit kepala karena kurangnya pengalaman Anda. Saya telah melakukannya dua kali dengan pekerjaan saya saat ini - untungnya saya memiliki majikan yang sangat mengerti. Meskipun itu adalah kesengsaraan ketika saya merasa mati di air, saya muncul programmer yang jauh lebih baik dengan keahlian yang jauh lebih luas daripada sebelumnya.

Tidak ada kalkulus untuk menentukan pekerjaan mana yang harus dilepas dan dipertahankan, hanya pengalaman dan kepribadian Anda. Anda hanya perlu memutuskan apa yang Anda hargai dan mengejar itu. Hal yang perlu dipertimbangkan:

Apakah ini proyek yang akan saya nikmati bekerja? Apakah tim itu tim yang akan saya nikmati bekerja sama?

Jenis pembayaran apa yang akan mereka tawarkan? Jika tidak ada, maka pengembangan profesional apa yang akan saya terima? Apakah mereka menawarkan segala macam risiko bersama (yaitu opsi saham, persentase keuntungan)? Ini adalah pembujuk besar bagi saya.

Bagaimanapun, ini hanyalah prinsip untuk digunakan dalam pengambilan keputusan Anda. Itu semua tergantung pada apa yang Anda hargai. Sebagai contoh, saya menghargai tantangan intelektual dan waktu bersama keluarga saya, jadi saya biasanya menempatkan prioritas tinggi pada apa proyek itu dan keterampilan yang akan saya pelajari dalam melakukannya. Namun, saya juga memastikan untuk menyatakan di muka bahwa saya hanya bekerja 2 atau 3 malam seminggu sehingga saya dapat menghabiskan waktu bersama istri dan anak-anak karena saya sudah bekerja sepanjang hari. Saya menyesuaikan batas waktu untuk memenuhi permintaan ini. Jika mereka tidak suka itu, maka saya tidak menerima pekerjaan itu.

Apa pun yang Anda lakukan, pastikan Anda menyatakan dengan jelas apa yang akan dan tidak akan Anda lakukan, dan pastikan mereka dengan jelas menyatakan harapan mereka sebelum Anda mengambil pekerjaan itu. Hal terburuk yang dapat terjadi adalah pelanggan memiliki harapan yang tidak dinyatakan dan bagi Anda untuk meremehkan harapan tersebut.

PS Saya benar-benar berharap saya telah membaca artikel ini sebelumnya dalam karier saya. Ini berlaku untuk paragraf terakhir saya. http://www.joelonsoftware.com/articles/fog0000000356.html

Jonathan Henson
sumber
5
+1 untuk "tidak pernah bekerja untuk keluarga". Tidak, kecuali kedua pihak tidak memiliki terlalu banyak investasi di dalamnya dan melihatnya sebagai kesenangan murni, dan bahkan kemudian orang harus berhati-hati.
Ethel Evans
11

Bagaimana pengembang yang berpengalaman membuat keputusan apakah akan mengambil proyek atau membiarkannya?

Apakah saya perlu pekerjaan itu? Jika demikian, saya "mengambil" proyek itu.

Apa beberapa metrik yang baik untuk membuat keputusan lebih mudah?

Berapa banyak pilihan yang saya miliki? Lebih dari 1? Saya dapat memilih di antara alternatif.

Hanya 1? Baik. Itu saja.

Pertanyaan "stres dalam hidupku" adalah diperdebatkan; kegagalan untuk mengambil proyek berarti kegagalan untuk mempertahankan pekerjaan; yang memiliki konsekuensi bencana.

Jika Anda memiliki kebebasan finansial di mana "stres" adalah faktor penentu, itu sangat hebat.

S.Lott
sumber
3
+1: Anda akan berpikir akan ada lebih dari itu, tapi itu cukup banyak untuk setiap saat.
Ryan Hayes
@ S.Lott- Saya yakin Anda sering memiliki kesempatan untuk bekerja pada beberapa proyek. Tampaknya tidak mungkin bahwa Anda berada dalam situasi tipe "lakukan atau mati" sangat sering. Saya mungkin berasumsi terlalu banyak, tetapi ini tampaknya agak bodoh, karena seseorang dengan pengalaman Anda pasti telah memilih untuk menolak proyek di sana-sini dan juga mungkin telah menerima proyek sebelumnya ketika Anda tidak perlu melakukannya di akal "kekurangan uang".
Morgan Herlocker
1
@ironcode: "Saya mungkin mengasumsikan terlalu banyak". Benar. Saya tidak pernah memiliki kesempatan untuk menolak proyek karena stres.
S.Lott
@ S.Banyak yang saya maksudkan adalah stres dalam arti bahwa saya sudah memiliki pekerjaan dan melakukan sesuatu seperti ini mungkin hanya membuat saya tidak punya waktu untuk keluarga saya.
J Lundberg
@ J Lundberg: Harap perbarui pertanyaan Anda untuk memasukkan semua fakta.
S.Lott
5

Apa yang akan Anda dapatkan dari proyek ini? Uang? Pengalaman? Sesuatu yang lain

  • Uang: Berasal dari anggota keluarga (saya mencoba untuk tidak berbisnis dengan keluarga, tapi itu diskusi lain), ini kecil (sehingga Anda membuatnya terdengar), Anda cukup junior, jadi jangan berharap banyak. uang darinya (berdasarkan pengalaman saya ).

  • Pengalaman: Anda bisa belajar bahasa baru! Itu bisa berharga di masa depan, mungkin memberi Anda sedikit keunggulan dibandingkan pengembang .NET yang hanya tahu C #.

Tetapi insting Anda memberi tahu Anda bahwa proyek ini akan buruk . Mengapa demikian? Sepertinya Anda setidaknya bisa mendapatkan pengalaman dari ini.

Sebagian besar kontraktor akan mulai dengan melihat berapa banyak uang yang akan mereka dapatkan untuk mengambil proyek. Idealnya, proyek yang lebih sulit menghasilkan lebih banyak uang. Jika ini sulit, itu harus membayar dengan baik, tetapi saya tidak tahu rincian untuk mengetahui apakah Anda benar - benar akan dibayar dengan baik ...


Menanggapi detail dalam pembaruan Anda: Katakan padanya bahwa ini jauh di luar jangkauan seorang programmer junior. Anda mungkin dapat melakukan beberapa menit penelitian dan melihat apakah ada produk yang sudah ada yang dapat melakukan apa yang dia inginkan dan lihat apakah halaman "Fitur" berbicara tentang penyesuaian / plugin / ekstensibilitas. Dia mungkin juga ingin berbicara dengan toko perangkat lunak khusus jika tidak ada produk yang ada di luar sana, atau pekerjaan pemrograman plugin yang luas perlu dilakukan. Tidak ada yang salah dengan mengakui suatu proyek yang terlalu besar untuk Anda tangani - itu jauh lebih baik daripada mengambilnya dan gagal sepenuhnya (terutama jika itu adalah anggota keluarga - fungsi keluarga bisa menjadi canggung dan tegang selama bertahun-tahun).

FrustratedWithFormsDesigner
sumber
3
A friend of my family

Secara pribadi jika frasa ini terlibat, saya tidak mengambil proyek.


sumber
2

Sebagai pekerja lepas, saya hanya menerima proyek yang saya yakini dapat menyelesaikannya dalam waktu, sesuai anggaran, dengan kualitas yang baik. Menolak suatu proyek tidak berarti pengangguran - setidaknya tidak selamanya. Menerima proyek Anda tidak dapat memberikan biaya segalanya - uang, reputasi, kesehatan.

Kadang-kadang sedikit lebih sulit ketika pelanggan yang baik membutuhkan bantuan untuk proyek baru yang tidak sesuai dengan keahlian saya; tetapi meskipun demikian, lebih baik jujur ​​dan membiarkan orang lain melakukannya.

Dalam kasus Anda, Anda dapat dan harus menolak proyek - Anda tidak cukup berpengalaman, Anda tidak tahu bahasa, itu terlalu besar untuk Anda.

pengguna281377
sumber
1

Saya telah melakukan pemrograman lepas selama lebih dari dua puluh tahun. Agar suatu proyek benar-benar berhasil, setidaknya diperlukan yang berikut:

  1. Seseorang yang mengetahui teknologi pemrograman, perangkat lunak, dan perangkat keras yang digunakan untuk penyebaran - atau teknologi yang cukup mirip untuk mempelajari teknologi penyebaran sangat cepat
  2. Seseorang yang mengetahui masalah domain, dan mampu dan mau menerjemahkannya ke dalam spesifikasi yang bisa digunakan oleh programmer. (Jika programmer juga ahli domain, dan proyeknya cukup sederhana, spesifikasinya bisa di kepala atau catatan informal.)
  3. Seseorang yang mampu, mau, dan berpengalaman dalam mengelola tugas-tugas proyek, garis waktu, dll. Dengan baik, dan tahu jenis-jenis jebakan yang bisa Anda hadapi dengan hal-hal seperti memperkirakan dan bagaimana menghindarinya
  4. Seseorang untuk mengelola komunikasi dan hubungan di antara semua pemangku kepentingan proyek, termasuk pemrogram dan pelanggan
  5. Orang-orang di kedua sisi, konsultan dan klien, yang berpengalaman dalam menjaga masalah bisnis yang sedang berlangsung solid, termasuk kontrak dan uang. Jika Anda tidak memiliki pengalaman ini sendiri, Anda bisa bertahan dengan penasihat berpengalaman sampai Anda.
  6. Hubungan bisnis yang tidak pasti di mana, jika Anda harus membuat keputusan bisnis yang sulit, Anda tidak memiliki masalah di luar pekerjaan
  7. Tim yang cukup besar, dengan kombinasi keahlian, alat, dan sumber daya yang tepat, untuk menghasilkan produk berkualitas dalam jangka waktu yang disyaratkan

Anda menggambarkan teman keluarga yang tidak tahu apa-apa tentang pemrograman, yang menginginkan Anda - seorang programmer yang tidak berpengalaman - untuk membangun sistem ERP menggunakan teknologi yang tidak Anda ketahui.

Menurut saya, situasi ini pasti merindukan nomor 1, # 3, # 6, dan # 7, dan mungkin semuanya. Seperti yang dikatakan Adam di Mythbusters, "Ini adalah resep untuk bencana."

Heck, saya tidak akan menyentuh yang ini dengan tiang sepuluh kaki sendiri. Saya bisa terus-menerus tentang bendera merah lain yang saya lihat di sini, tetapi pada dasarnya, saran saya kepada Anda adalah pergi dengan firasat Anda, karena Anda benar: "tidak ada yang benar-benar baik akan datang darinya."

Karena ini adalah teman keluarga, jika saya adalah Anda, saya hanya akan berkata, "Anda memiliki proyek yang hebat, dan Anda membutuhkan seseorang yang sangat baik, dan saya terlalu berpengalaman untuk memberi Anda hasil yang seharusnya Anda miliki," dan biarkan saja.

Saya juga menemukan bahwa ketika Anda memiliki klien yang bermasalah di satu area, mereka cenderung menjadi masalah di area lain. Calon klien yang bahkan akan mempertimbangkan memiliki sistem ERP yang dirancang dan diimplementasikan oleh programmer junior sangat bodoh sehingga menjadi bahaya bagi diri mereka sendiri dan orang lain, atau sangat murah, dan salah satu dari mereka akan menempatkan mereka dalam daftar "menjauh" saya. .


FWIW, sebagai konsultan / freelancer, saya akhirnya mengisi peran di pihak saya sendiri, dengan saran dari istri saya. Kami telah menemukan semua item itu dengan melihat proyek gagal karena kekurangan mereka - kadang-kadang, itu adalah proyek kami sendiri. Dan bahkan setelah dua puluh tahun, dan meskipun memeriksa kriteria ini, saya masih berakhir dengan proyek sesekali yang tidak berhasil - risiko selalu menjadi bagian dari bisnis. Saya hanya memastikan sekarang bahwa proyek tidak gagal karena kesalahan yang saya lakukan, dan bahwa kontrak disusun sehingga saya dibayar jika pihak lain gagal.

Bob Murphy
sumber
0

Apakah Anda ingin bekerja dengan orang lain yang terlibat?

Proyek ini hanyalah alasan untuk bertemu dan bergaul dengan orang-orang.

bmike
sumber
Saya suka sudut pandang itu. Kita harus mengerjakan proyek bersama.
Jonathan Henson
Ini sangat membantu saya. Detail proyek dapat bergeser seperti pasir dalam badai. Orang-orang masih bisa mengejutkan Anda, tetapi mereka berubah lebih lambat.
bmike
0

Pilihan pribadi saya adalah melakukan sedikit eksplorasi tentang apa yang dia inginkan, jadwal apa, biaya apa yang dia harapkan, dll. Jika ini sebenarnya ERP besar maka bantuan bisa bertahan selama bertahun-tahun dan benar-benar mendapatkan kemungkinan yang buruk. Pengelolaan Sampah vs SAP akan menjadi contoh seberapa mahal ini bisa didapat jika Anda benar-benar berarti besar seperti dalam anggaran proyek 9 digit.

Maksud saya dalam melakukan eksplorasi adalah menggambar garis di pasir sehingga jelas mengapa saya mengajukan pertanyaan dan apa yang ingin saya miliki sebagai hasilnya. "Seberapa layak aku melihat makhluk ini?" adalah pertanyaan yang saya ajukan ketika saya mempertanyakan metodologi, anggaran, dan jadwal di muka dan kemudian melakukan sedikit riset untuk melihat apakah ada hal-hal yang muncul pada level atau apakah ini sesuatu yang mungkin berakhir di beberapa situs humor IT seperti The Daily WTF .

JB King
sumber