Menjadi satu-satunya pengembang dan konsekuensinya [ditutup]

16

Saya satu-satunya pengembang di perusahaan saya. Saya melakukan pemrograman (dalam ASP.NET 4.0, jQuery dan SQL Server 2008) dan memelihara database dan server web (win 2008 r2).

Saya menikmati kebebasan menerapkan apa yang saya suka pada saat yang sama saya merasa bisa melakukan semuanya dengan cara yang buruk. Saya tidak menggunakan diagram SDLC apa pun selain metode seperti Agile dll. Saya menangani banyak proyek kecil. Saya menggunakan waktu luang saya untuk mengikuti teknologi terbaru dan belajar dan menguji hal-hal baru. Saya telah melakukan ini selama 7 tahun terakhir.

  1. Kekhawatiran saya adalah betapa sulitnya bagi saya untuk menyesuaikan ketika saya mengalihkan pekerjaan saya ke perusahaan di mana lebih banyak pengembang terlibat dalam suatu proyek?
  2. Karena saya tidak mengikuti pola desain apa pun, apakah itu akan bertentangan dengan saya ketika saya mencari pekerjaan atau menyesuaikan diri dengan pekerjaan baru?
  3. Adakah pro / kontra lain yang bisa Anda pikirkan?
bp581
sumber

Jawaban:

8

Jika Anda menyukai situasi ini dengan kebebasannya, kemungkinan Anda tidak akan suka pergi ke mana pun yang memandang ini sebagai masalah (setelah melompati pagar ini saya tahu saya lakukan).

Ini sebenarnya menguntungkan Anda pada pekerjaan di masa depan karena Anda berakhir dengan keahlian yang jauh lebih luas daripada 90% orang di luar sana.

Kurangnya seseorang untuk berdebat tentang keputusan pro / kontra adalah masalah seperti yang dijelaskan Pierre (+1 untuknya), tetapi seorang kolega di perusahaan lain yang memiliki kesabaran untuk mendengarkan apa yang Anda coba lakukan dan cukup minat untuk memiliki pendapat yang kuat melayani peran ini dengan baik, kadang-kadang lebih baik daripada rekan kerja karena mereka adalah sudut pandang luar. (Saya masih melakukan ini meskipun saya bekerja di toko yang lebih besar sekarang, ini membantu saya mengikuti apa yang dilakukan orang lain untuk memecahkan masalah yang sama dan melihat masalah masa depan dalam desain)

Satu masalah lain yang saya miliki ketika saya adalah satu-satunya dev adalah bahwa tidak ada seorang pun yang mendukung saya ketika tiba saatnya untuk benar-benar melawan arah yang buruk dari manajemen. Jarak tempuh Anda mungkin bervariasi, tetapi jika Anda adalah dev satu-satunya dan semua manajemen adalah non-teknis, itu bisa menjadi sangat sulit untuk menjelaskan mengapa Anda harus atau tidak harus melakukan sesuatu dan sangat sulit ketika tiba saatnya untuk memberi tahu mereka Mimpi terbaru tidak masuk akal untuk diimplementasikan dengan teknologi saat ini.

Tagihan
sumber
5
Masalah lain dengan menjadi satu-satunya teknisi adalah ketika Anda mengalami demam tinggi dan mual parah dan server web turun. Satu harapan mereka punya rencana cadangan selain membawa laptop ke rumah sakit jika Anda ditabrak bus.
David Thornley
1
Itu adalah masalah, tetapi seringkali juga merupakan masalah di perusahaan yang cukup besar begitu mereka menyebarkan sumber dayanya terlalu tipis.
Bill
35

Ketika Anda sendirian, tidak ada yang bisa mengatakan Anda salah

Jadi Anda mungkin pergi di jalan yang salah, untuk sementara waktu, tanpa menyadarinya.

Untuk alasan itu, saya mendorong Anda untuk menemukan seseorang yang dapat Anda ajak bicara tentang pengembangan. Tidak hanya online, tetapi secara nyata, secara fisik.

Tidak perlu keluar dari perusahaan Anda. Menjadi satu-satunya memiliki beberapa kelebihan juga.


sumber
3
Ini saran yang fantastis ...
webdad3
4
Kata kuncinya adalah "may". Jika seorang pengembang melakukan upaya yang teliti untuk tetap dididik tentang berbagai teknologi dan metodologi, dan yang lebih penting data di sekitar mereka, maka tidak ada alasan untuk percaya bahwa ia akan melakukan pekerjaan sub-par. Tentu saja, pengembang yang bekerja di ruang hampa dan hanya berpegang pada apa yang mereka ketahui mungkin membuat diri mereka semakin usang.
Aaronaught
Setuju dengan Pierre di sini, dua pengembang dapat menghasilkan [kode atau db atau apa pun] jauh lebih baik daripada yang dapat dilakukan secara individual]. Keuntungannya meningkat dengan lebih banyak devs tetapi ada pengembalian yang semakin berkurang.
jamesbtate
5

Saya telah bekerja sebagai satu-satunya pengembang di perusahaan yang tahu teknologi tertentu, sebagai satu-satunya yang melakukan jenis pemrograman yang saya lakukan, dan sebagai kontraktor dalam situasi yang sama. (Saya juga pernah bekerja di lingkungan tim dengan pengembang lain yang tahu alat berbeda dan dengan pengembang lain yang melakukan persis apa yang saya lakukan.)

Kelebihan menjadi satu-satunya programmer

  • Seperti yang Anda sebutkan, Anda sering memiliki kebebasan untuk menggunakan alat atau bahasa apa pun yang Anda rasa dapat Anda pelajari. Anda tidak selalu harus membuat kasus sebelum rekan-rekan Anda untuk mendapatkan izin untuk bekerja dengan Teknologi Baru X sementara orang lain menggunakan Teknologi Saat Ini Y.
  • Anda memiliki lebih banyak tanggung jawab. Pada dasarnya, Anda berfungsi sebagai pemimpin proyek dan pengembang di setiap proyek Anda, dan dengan kemampuan Anda untuk mengidentifikasi dan mengimplementasikan hal-hal baru, Anda juga efektif sebagai kepala departemen. (Jangan katakan hal ini kepada tenaga penjualan. Mereka suka berbicara dengan pembuat keputusan, dan Anda tidak punya waktu untuk berbicara dengan mereka.)
  • Tidak ada pertanyaan tentang kredit untuk pekerjaan yang dilakukan: itu jelas Anda dan Anda sendiri yang membuat sesuatu terjadi.
  • Anda dapat menghabiskan lebih banyak waktu untuk benar-benar mengerjakan proyek Anda sendiri dan lebih sedikit waktu dalam rapat tentang proyek yang pada dasarnya milik orang lain (tetapi Anda berada di sana sebagai orang yang mendukung, cadangan yang mungkin, atau apa pun.)

Cons

  • Seperti yang ditunjukkan David dalam komentar, Anda adalah satu-satunya pengembang, jadi tidak ada pengembangan yang dilakukan tanpa Anda. Saya pernah membual kepada saudara lelaki saya bahwa saya adalah "lelaki" di proyek tertentu di tempat kerja. Dia dengan tepat menggambarkan situasi saya untuk saya: saya terjebak. Saya tidak bisa melanjutkan perusahaan itu karena saya tidak akan pernah bisa menyingkirkan proyek itu. (Dia benar juga. Butuh beberapa bulan pelatihan dalam jangka waktu yang lama sebelum saya bisa memberikannya kepada seseorang yang bahkan agak mampu mendukungnya.) Anda mungkin merasa sulit untuk mengambil liburan yang sebenarnya ketika tidak ada yang bisa dilakukan tanpa kamu.
  • Seperti yang ditunjukkan Pierre, tidak ada seorang pun di situs untuk melakukan tinjauan kode atau berbagi praktik terbaik dengan Anda. Anda dapat menjangkau teman sebaya dengan berbagai cara, tetapi tidak ada yang seefektif mengetuk rekan kerja dan memintanya untuk melihat kode Anda selama 5-10 menit.
  • Dalam nada yang sama, Anda mungkin mengalami kesulitan mendapatkan pengalaman dengan alat baru. Pelatihan di luar kantor mungkin sama jarangnya dengan waktu liburan: seseorang akan mengeluh bahwa perusahaan tidak mampu membiarkan Anda tidak melihat Bahasa 3.0 selama seminggu ketika tidak ada seorang pun yang membuat aplikasi Language 2.0 berfungsi.
  • Kemajuan karir bisa sangat sulit untuk dikelola. Anda mungkin tidak memiliki posisi yang dapat Anda perjuangkan, bahkan perubahan dalam judul mungkin sulit diperoleh, dan ulasan akhir tahun tidak memiliki kerangka referensi, sehingga pekerjaan yang sangat baik mungkin tidak diperhatikan jika tidak ada yang lain alasan dari itu tidak ada yang benar-benar mengerti apa yang Anda lakukan.

Jika Anda memutuskan untuk pindah ke perusahaan tempat Anda akan bekerja sebagai bagian dari tim programmer, saya tidak berpikir bahwa pengalaman solo Anda mungkin akan sangat merugikan Anda. Kurangnya pengalaman Anda dengan pola desain tidak harus sama pentingnya dengan kemauan Anda untuk mempelajarinya. (Mungkin ada situasi di mana Anda mewawancarai seorang kandidat dengan latar belakang yang sama dan juga pengalaman dalam metode apa pun yang digunakan perusahaan, tetapi itu berlaku pada dasarnya semua orang.)

Sejalan dengan itu, kurangnya pengalaman Anda dalam tim diimbangi dengan kemampuan Anda untuk memakai banyak topi. Ada beberapa pengembang yang merupakan pemain tim yang baik tetapi tidak pernah mengembangkan kemampuan untuk mengelola proyek; Anda telah menunjukkan bahwa Anda dapat melakukannya.

Saya akan merekomendasikan bahwa ketika Anda adalah pengembang solo, Anda harus meluangkan waktu membaca tentang alat dan teknik yang digunakan pengembang serupa, jadi bahkan jika Anda tidak menggunakannya sendiri, Anda sadar bahwa itu ada dan Anda dapat merujuk ke mereka selama wawancara, bahkan jika hanya untuk mengatakan "Ya, saya sudah membaca sedikit tentang kerangka kerja MVC, tapi saya belum menggunakannya sendiri." Lakukan apa yang dapat Anda lakukan untuk tetap berhubungan dengan pengembang lain: pergi ke pertemuan grup pengguna lokal, baca dan komentari blog (atau simpan sendiri), cobalah untuk mengunjungi bengkel dari waktu ke waktu, menonton webinar, dan semacamnya. (Anda mungkin juga mempertimbangkan situs-situs seperti lynda.com untuk pelatihan in-house: tidak sebaik konferensi selama seminggu di tempat lain, tetapi Anda dapat menonton video pada waktu Anda sendiri dan tidak mengirim semua orang ke mode panik karena Anda keluar dari kantor.)

Dave DuPlantis
sumber
2

Keterampilan pemrograman Anda memburuk setiap hari Anda berada dalam situasi seperti ini. Pengkodean adalah bagian termudah dari pekerjaan programmer mana pun.

Komunikasi / bekerja dengan tim untuk mengimplementasikan solusi jauh lebih sulit. Keterampilan itu hanya dapat diasah dengan melakukannya. Juga ketika Anda menjadi bagian dari sebuah tim, sebagian besar anggota berusaha untuk mengikuti teknologi seperti Anda, sehingga peluang tim menemukan sesuatu yang hebat jauh lebih besar.

Tolong jangan menganggap ini sebagai serangan terhadap Anda secara pribadi. Saya juga seorang programmer tunggal, tetapi mencari tim secepatnya.

Mat
sumber
Mengembangkan sendiri berarti Anda kehilangan 'programmer kardus', yang seringkali merupakan alat yang berguna. Pada dasarnya, meminta orang lain untuk menjelaskan suatu masalah sering kali berarti solusinya muncul di tengah-tengah penjelasan (sebelum pihak lain memiliki kesempatan untuk memberikan saran)
Phil Lello
0

Saya setuju dengan @Pierre 303 jawaban 100%. Saya juga ingin menambahkan bahwa Anda harus mengambilnya sendiri untuk mengajari diri sendiri praktik-praktik yang tepat. Mungkin sertifikasi juga akan membantu.

Ya jika Anda berganti pekerjaan itu akan sulit ... Tidak hanya jika mereka memiliki proses yang saat ini tidak Anda gunakan, tetapi juga dengan kepribadian. Programmer terkenal kompetitif. Anda tidak harus berurusan dengan itu sekarang. Tetapi Anda akan melakukannya ketika programmer> = 1

Sepertinya Anda memiliki pertunjukan yang bagus ... Saya akan mempertahankannya.

Hanya 2 sen saya.

webdad3
sumber
0

Saya pikir Anda kehilangan fakta bahwa sebagian besar standar / praktik yang akan Anda temukan di rumah pengembangan besar dapat diterapkan dengan mudah pada situasi Anda. Membuat penyesuaian ini untuk tim satu orang telah dibahas sebelumnya pada SO. Cari sekitar sedikit untuk panduan:

Bagaimana cara menerapkan gesit pada proyek pribadi?

Jeff Swensen
sumber
Apakah ada tautan untuk menemukan proyek sampel kompilasi menggunakan semua metodologi seperti SDLC, Agile ... dll?
bp581
Jangan terlalu terpaku pada kata-kata seperti 'Agile' dan 'Scrum'; definisi formal mereka tentang metode yang telah digunakan oleh tim sukses. Namun, mereka berguna jika Anda belum cukup beruntung untuk bekerja di suatu tempat yang merupakan bagian alami dari lingkungan.
Phil Lello