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