Tetap Tenang dan Transisi ke Tim Pengembangan Baru

Diterbitkan: 2022-03-11

Adalah umum bagi produk perangkat lunak untuk bertransisi dari satu tim pengembangan ke tim pengembangan lainnya selama masa pakainya. Tahap produk yang berbeda mungkin memerlukan jenis tim pengembangan yang berbeda: konsultan untuk membangun versi awal, pengembang lepas solo untuk memeliharanya, tim internal untuk meningkatkannya, atau desainer profesional untuk menambahkan beberapa “ pop”.

Terlepas dari seberapa sering hal ini terjadi, banyak pendiri non-teknis dan pemilik produk mendapati diri mereka tidak siap dan berebut ketika saatnya tiba untuk membawa tim berikutnya. Hal ini sering mengakibatkan ketidakmampuan tim baru untuk membuat kemajuan yang cepat, membuang-buang waktu, dan membuat frustrasi semua orang yang terlibat.

Jika ini terdengar seperti Anda, baik sekarang atau di masa depan, maka Anda harus agak khawatir. Untungnya, kami akan membahas langkah-langkah yang dapat Anda ambil untuk mempersiapkan kemungkinan ini dan membuat transisi semulus mungkin.

Melewati Obor: Mengangkat Tim Pengembangan Baru

Pada artikel ini, saya akan memberi Anda daftar periksa item yang akan membantu Anda mempersiapkan diri untuk perubahan seperti itu. Anda akan mengenal produk Anda pada tingkat yang lebih intim dan mendapatkan kontrol lebih besar atas semua berbagai layanan dan teknologi yang digunakan untuk membuatnya, yang akan memberdayakan Anda untuk bergabung dengan tim baru dengan percaya diri dan relatif mudah.

Menyerahkan obor ke pengembang baru? Pastikan tim baru tidak terbakar dan Anda tidak membuang waktu untuk memadamkan api.

Menyerahkan obor ke pengembang baru? Pastikan tim baru tidak terbakar.
Menciak

Tetapi bagaimana jika Anda tidak mengganti seluruh tim? Haruskah Anda repot-repot membaca ini?

Bahkan jika beberapa dari tim sebelumnya tetap bergabung, mereka mungkin tidak memiliki semua jawaban dan informasi yang diperlukan untuk transisi yang mulus. Meskipun mereka dapat memberikan kesinambungan dan bantuan dalam proses mentransfer pengetahuan dari tim lama ke yang baru, mengandalkan anggota tim petahana bukanlah pengganti pemilik produk yang mengambil alih dan memfasilitasi transfer. Selain itu, kegagalan untuk mengambil alih dapat menyebabkan gesekan antara anggota tim lama dan baru, atau membebani anggota tim lama dengan tugas yang tidak perlu, memaksa mereka membuang terlalu banyak waktu untuk berkomunikasi dengan anggota tim baru dan menyelesaikan berbagai masalah.

Namun, jika beberapa anggota tim tetap bergabung, mereka dapat menjadi aset yang tak ternilai dalam upaya transisi Anda. Konsultasikan dengan mereka, pertahankan mereka dalam lingkaran dan coba manfaatkan pengalaman mereka tanpa membanjiri mereka dengan terlalu banyak tugas terkait transisi. Jangan berharap mereka melakukan semua pekerjaan berat! Itu pekerjaanmu.

Jadi tanpa basa-basi lagi, mari selami!

Kumpulkan Dokumentasi

Pengembang lepas sering diminta untuk melompat ke basis kode yang ada yang belum pernah mereka lihat sebelumnya. Hal ini terutama berlaku untuk insinyur perangkat lunak Toptal. Tujuan kami adalah selalu mendapatkan kecepatan secepat mungkin sehingga kami dapat mulai memberikan dampak positif bagi klien kami.

Memiliki akses ke dokumentasi yang jelas dan menyeluruh tentang proyek dapat secara dramatis mempercepat proses orientasi, dan membantu pengembang menghindari jebakan yang dapat menghambat kemajuan ke depan.

Dokumentasi yang baik perlu mencakup setidaknya topik-topik berikut:

  • Menyiapkan lingkungan pengembangan - Tugas pertama untuk setiap pendatang baru adalah menyiapkan dan menjalankan aplikasi di komputer mereka sendiri. Proses untuk melakukannya bervariasi antar teknologi. Secara umum, ini memerlukan tugas seperti mendapatkan kode sumber, menyiapkan database, menginstal dependensi, mengonfigurasi lingkungan dengan kunci dan kredensial API, mengimpor data sampel, dan sebagainya. Pengembang memiliki gagasan bagus tentang semua yang terlibat dalam proses ini di bidangnya masing-masing, dan harus dapat menyesuaikan detailnya.
  • Menjalankan rangkaian pengujian otomatis - Melihat lulus pengujian aplikasi memastikan bahwa semuanya telah diatur dengan benar dan perubahan di masa mendatang tidak merusak fitur Anda yang sudah ada.
  • Menyebarkan ke server pementasan dan produksi - Memperbarui aplikasi langsung dengan perubahan terbaru adalah proses yang sangat skrip, dan urutan operasi tersebut harus diuraikan langkah demi langkah, sedetail mungkin.
  • Informasi lain apa pun yang relevan dengan pengembang yang baru bergabung - Setiap aplikasi memiliki serangkaian keanehannya sendiri. Menuliskannya akan menghemat banyak upaya yang sia-sia untuk men-debug masalah yang telah ditemukan oleh tim sebelumnya untuk ditangani oleh tim sebelumnya.

Dokumentasi yang baik adalah landasan dari setiap transisi yang berhasil. Pastikan tim baru Anda memiliki semua yang mereka butuhkan untuk mengambil alih.

Dokumentasi yang baik adalah landasan dari setiap transisi yang berhasil. Pastikan tim baru Anda memiliki semua yang mereka butuhkan.
Menciak

Dokumentasi harus ditulis oleh pengembang yang memiliki pengalaman langsung dalam menyiapkan aplikasi dan berkontribusi pada basis kode.

Sebelum transisi apa pun terjadi, mintalah agar tim pengembangan sebelumnya memfasilitasi transfer pengetahuan dengan membuat sumber daya yang menyentuh topik di atas!

Jika menulis tidak cocok untuk mereka, minta mereka untuk merekam satu atau lebih screencast yang menunjukkan pengaturan lingkungan pengembangan, penerapan, dll. Saat ini bahkan ada alat seperti Vagrant dan Docker yang memungkinkan seluruh lingkungan pengembangan untuk dikemas dan didistribusikan ke orang lain. Intinya, alih-alih memberi petunjuk kepada seseorang tentang cara membuat palu, beri mereka palu itu sendiri.

Tes lakmus untuk seberapa komprehensif dan efektif dokumentasi proyek adalah seberapa cepat pengembang baru dapat menyiapkan lingkungan pengembangannya dan menjalankan aplikasi Anda.

Pahami Produk Anda

Memiliki dokumentasi yang bagus tidak membuat Anda tidak perlu mengetahui dasar-dasar teknologi produk Anda sendiri. Sebagai pemilik produk perangkat lunak, Anda bertanggung jawab untuk memahami aplikasi Anda sebaik mungkin, bahkan jika Anda tidak terlalu teknis.

Tidak ada latar belakang teknis? Tidak ada alasan untuk gagal memahami blok bangunan proyek Anda dengan benar. Itu bisa sangat merugikan Anda.

Tidak ada latar belakang teknis? Tidak ada alasan untuk gagal memahami blok bangunan proyek Anda dengan benar. Itu bisa sangat merugikan Anda.
Menciak

Pertanyaan-pertanyaan berikut ini umum, dan Anda diharapkan mengetahui jawabannya tanpa harus mencarinya:

  • Tumpukan teknologi apa yang digunakan aplikasi Anda? - Ada banyak kerangka kerja aplikasi umum untuk back-end dan front-end, dan setiap tim pengembangan baru harus terbiasa dengan yang digunakan aplikasi Anda. Beberapa contoh teknologi web back-end adalah Ruby on Rails, Node.js, dan Django. Beberapa contoh teknologi web front-end adalah React.js, Angular.js, dan Ember.js.
  • Di mana itu dihosting? - Host web yang berbeda memiliki proses penerapan yang berbeda, yang memerlukan berbagai tingkat pengalaman. Dalam beberapa tahun terakhir, teknologi cloud telah menciptakan sejumlah opsi hosting baru, dan Anda harus mengidentifikasi mana yang Anda gunakan dan menjelaskan mengapa itu dipilih daripada yang lain.
  • Bagaimana proses pengembangannya? - Apakah tim Anda menggunakan alat manajemen kontrol sumber tertentu seperti Git? Jika demikian, bagaimana proses pengembangan, pengujian, persetujuan, dan penerapan fitur baru? Prosesnya harus distandarisasi, didokumentasikan dengan baik, dan mudah ditiru oleh pendatang baru.
  • Layanan pihak ketiga apa yang digunakan aplikasi Anda? - Beberapa aplikasi dibangun di atas layanan pihak ketiga seperti Shopify. Harap diingat bahwa ketergantungan pada layanan pihak ketiga secara bertahap meningkat, dan bahkan jika saat ini Anda tidak menggunakan layanan tambahan apa pun, proyek Anda mungkin memutuskan untuk menggunakan layanan pihak ketiga di kemudian hari.
  • Pada platform apa aplikasi Anda dapat berjalan? - Apakah aplikasi Anda aplikasi desktop, aplikasi web, situs web seluler responsif, aplikasi iOS asli, aplikasi Android asli, atau lainnya? Apakah itu berjalan di beberapa platform berbeda? Platform mana yang menjadi prioritas Anda pada waktu tertentu? Di platform mana produk Anda terkuat dan terlemah? Pastikan untuk mengetahui semua detail platform aplikasi Anda saat ini, dan bahkan platform mana yang dapat diperluas.

Ambil Kepemilikan

Proses pengembangan perangkat lunak saat ini menggunakan sejumlah besar layanan dan alat pihak ketiga. Disadari atau tidak, aplikasi Anda tidak terkecuali.

Selama pengembangan, tim Anda sebelumnya mungkin telah mendaftar atas nama Anda, atau bahkan menggunakan akun mereka sendiri untuk mendapatkan akses ke layanan yang dibutuhkan. Transisi ke tim baru berarti Anda harus mengambil kepemilikan dan mengendalikan setiap layanan dan alat yang diandalkan aplikasi Anda sehingga Anda dapat memberikan akses ke tim baru Anda tanpa perlu melalui perantara atau mengejar pengembang asli.

Berikut adalah daftar berbagai alat atau layanan eksternal yang mungkin digunakan aplikasi Anda:

  • Manajemen Kontrol Sumber - GitHub, Bitbucket, Gitlab
  • Hosting Web - Heroku, EngineYard, Digital Ocean, Bluehost, Amazon Web Services
  • Hosting File - Layanan Web Amazon (S3)
  • Penyedia DNS - GoDaddy, DNSimple, Arahkan kursor
  • Layanan Pengembangan - NewRelic, FileStack, Segment, Bugsnag (dan banyak lainnya)
  • Layanan Pembayaran - Stripe, Braintree, PayPal
  • Layanan Blogging - WordPress, Tumblr, Ghost
  • Solusi E-niaga - Shopify, Squarespace
  • Analytics / Pelacakan - Google Analytics, Mixpanel, Kissmetrics
  • Pemasaran Email: MailChimp, Kontak Konstan

Tanyakan tim pengembangan keluar Anda mana yang berlaku. Untuk layanan apa pun yang dimiliki oleh tim pengembangan, minta mereka untuk mentransfer kepemilikan kepada Anda. Jika itu tidak memungkinkan, mintalah mereka untuk membantu Anda membuat akun baru Anda sendiri dan pastikan bahwa aplikasi tersebut menggunakan akun Anda, bukan akun mereka. Ini seharusnya tidak memerlukan apa pun selain mengubah beberapa pengaturan konfigurasi untuk aplikasi Anda.

Tak perlu dikatakan, pastikan bahwa setiap kontrak pengembangan melindungi kepentingan Anda sejak hari pertama dan memastikan transisi yang mulus, apa pun yang terjadi.

Berikan Akses

Dengan pemahaman yang kuat tentang ekosistem aplikasi Anda dan kepemilikan atas semua berbagai alat dan layanan yang digunakan aplikasi Anda, kini Anda dapat memberikan akses penuh ke tim atau individu yang masuk.

Sebagian besar layanan memungkinkan Anda menambahkan kolaborator ke akun Anda dan memberi mereka tingkat akses tertentu. Tidak apa-apa untuk menjadi konservatif di sini . banyak pendiri, terutama wirausahawan tunggal, lebih suka memberi pengembang mereka akses administrator penuh ke layanan mereka dan meminta mereka menangani semuanya. Ini memiliki efek samping negatif yang menjauhkan Anda dari lingkaran, yang seperti yang telah kita pelajari, dapat mempersulit transisi di masa mendatang.

Haruskah Anda memberi pengembang Anda hak administrator penuh? Ini panggilan Anda, dan kebanyakan orang tidak memiliki masalah dengan pendekatan ini. Namun, Anda selalu perlu merencanakan ke depan dan memastikan keputusan Anda tidak berdampak negatif pada tim pengembangan baru. Gagal melakukannya pada tahap awal proyek dapat memiliki konsekuensi yang mengganggu di masa depan.

Mengelola Handoff

Sekarang setelah Anda mendapatkan semua basis Anda, Anda harus mengelola handoff dari satu tim ke tim berikutnya. Berikut adalah beberapa tip dasar untuk menangani tim yang masuk dan keluar.

Pastikan Anda mengelola dengan benar aspek teknis dan pribadi dari penyerahan proyek Anda. Buat tim baru Anda merasa seperti di rumah sendiri dan jangan memusuhi tim lama Anda.

Pastikan Anda mengelola dengan benar aspek teknis dan pribadi dari penyerahan proyek Anda. Buat tim baru Anda merasa seperti di rumah sendiri.
Menciak

Tim masuk

  • Tetapkan harapan - Tim baru harus tahu apa tujuan terpenting Anda sehingga mereka dapat fokus ke arah yang benar. Mengelola ekspektasi Anda sendiri tentang apa yang dapat segera dicapai oleh tim baru juga sama pentingnya.
  • Sering check in - Jangan biarkan tim baru tenggelam atau berenang. Anda ingin sering check-in untuk memastikan bahwa mereka memiliki semua yang mereka butuhkan, dan tidak merasa perlu berjuang sendiri. Cobalah untuk melakukan ini tanpa micromanaging. Pastikan mereka tahu bahwa Anda ada untuk mendukung dan membantu jika mereka membutuhkan, tetapi jangan memberikan tekanan yang tidak perlu pada mereka.
  • Bersabarlah - Dibutuhkan waktu bagi pengembang untuk menyesuaikan diri dengan basis kode baru. Pahami bahwa akan ada waktu belajar sebelum tim baru dapat menyamai kecepatan tim sebelumnya.

Tim Keluar

  • Kumpulkan semua kode yang beredar - Pastikan semua kode sumber diperiksa ke dalam repositori utama, dan Anda mengetahui status apa yang telah atau belum digunakan. Tim baru perlu tahu persis di mana harus mengambil dan mulai bekerja. Saya sendiri pernah mengalami situasi di mana saya mengambil alih untuk tim yang telah menyebarkan kode tanpa meletakkannya di repositori utama. Hal ini menyebabkan bug, pekerjaan duplikat, dan sakit kepala yang dapat dengan mudah dihindari jika tim keluar meninggalkan kode sumber dalam keadaan konsisten.
  • Perbarui tingkat akses mereka - Jika Anda berpisah secara baik-baik, Anda mungkin ingin memberi mereka akses ke kode dan/atau penerapan Anda. Banyak tim dengan senang hati membantu selama fase transisi hingga tim baru dapat sepenuhnya mengambil alih. Jika tidak, pertimbangkan untuk menurunkan versi atau mencabut akses untuk mencegah masalah atau konflik yang tidak disengaja dengan tim baru.
  • Ucapkan terima kasih atas pekerjaan mereka - Transisi bisa sangat sibuk. Saat Anda sibuk berurusan dengan tim baru, jangan lupa untuk berterima kasih kepada tim keluar Anda atas kontribusi mereka pada proyek Anda.

Kesimpulan

Setiap transisi dalam hidup bisa menakutkan, membawa ketidakpastian apakah itu akan berhasil atau tidak, ketakutan akan hal yang tidak diketahui, dan sebagainya. Transisi ke tim pengembangan baru tidak berbeda, tetapi Anda dapat dan harus mengambil langkah-langkah untuk membuatnya lebih mudah. Dalam kebanyakan kasus, itu hanya membutuhkan sedikit perencanaan jangka panjang.

Memiliki pemahaman teknis dan non-teknis yang lebih besar tentang produk perangkat lunak Anda, proses pengembangan, dan semua hal yang masuk ke dalam proses akan membantu membuat transisi apa pun dari satu tim ke tim berikutnya semulus dan semudah mungkin.

Yang terbaik dari semuanya, tim baru Anda akan menghormati dan berterima kasih telah menjadi yang terbaik dalam permainan Anda! Anda cenderung menghemat waktu dan tenaga mereka, yang juga berarti Anda akan menghemat uang. Selain itu, semakin cepat tim baru menyadari tuntutan standar profesional yang tinggi, semakin baik. Kemungkinan mereka akan terus menerapkan praktik ini begitu mereka mengambil alih proyek, membuat transisi berikutnya juga lancar.

Jadi, mari kita tinjau poin-poin utama yang harus mendahului transfer kepemilikan produk perangkat lunak Anda:

  • Kumpulkan atau buat dokumentasi sebanyak mungkin tentang aplikasi Anda, lingkungan pengembangan, dan proses penerapan.
  • Kenali produk Anda luar dalam.
  • Pertahankan kendali atas semua layanan dan dependensi pihak ketiga aplikasi Anda, dan miliki nama pengguna dan sandi untuk semuanya.
  • Bersiaplah untuk memberi tim baru Anda akses ke semua yang mereka butuhkan untuk memulai dan menjalankan.
  • Bersikaplah proaktif dan jangan biarkan apa pun terjadi secara kebetulan, atau kepada tim pengembangan yang akan keluar.
Terkait: Bagaimana Tidak Mengelola Tim Pengembang Jarak Jauh Anda