Baru-baru ini, saya didekati oleh agen iklan lokal dengan peluang kerja. Mereka membawa semua pengembangan web / interaktif di rumah dan menambahkan ke tim pengembangan mereka.
Saya semakin muak dengan pekerjaan korporat saya yang nyaman dan membosankan, dan saya tergugah oleh posisi itu.
Setelah hanya bekerja untuk toko-toko perangkat lunak di mana bisnis utama membuat perangkat lunak, saya khawatir mereka mungkin tidak menekankan praktik perangkat lunak yang berkualitas, karena pengembangan bukanlah fokus bisnis mereka.
Adakah yang bisa membandingkan atau kontras bekerja di perusahaan perangkat lunak dengan bekerja di perusahaan yang kebetulan memiliki tim atau departemen pengembangan perangkat lunak internal?
development-environment
Mike Vormwald
sumber
sumber
Jawaban:
Itu akan tergantung pada perusahaan. Tetapi biasanya, jika itu bukan fokus utama mereka, kualitas perangkat lunak akan lebih rendah. Prosesnya, jika ada, akan menjadi tidak terlalu ketat. Pengujian tidak ada. Dan pekerjaan secara keseluruhan kurang menantang secara teknis.
Mereka ingin itu bekerja, dan bekerja sekarang, dan itu sudah cukup baik.
Tetapi beberapa tempat sangat tertarik dengan pengembangan perangkat lunak, bahkan jika mereka adalah toko pop & ibu yang melakukan hal lain sepenuhnya. Itu tergantung pada kepemimpinan bisnis yang terbuka terhadap ide-ide bagus, kepemimpinan teknologi yang cukup tahu untuk melakukannya dengan benar, dan memiliki orang-orang yang dapat menjelaskan ide bagus. Yang mungkin kamu.
Wawancara perusahaan. Tanyakan kepada mereka apakah mereka tahu tentang / mematuhi tes Joel. Kebanyakan dari mereka adalah poin bagus. Lihat apakah mereka memahami utang teknis dan bulan mitos manusia. Siapa manajer proyek Anda, proses apa yang ia gunakan, dan seberapa culunnya dia?
sumber
Ada perbedaan BESAR. Di bekas, Anda bagian dari pusat laba. Dalam yang terakhir, Anda adalah bagian dari pusat biaya. Coba tebak mana yang mendapat perawatan lebih baik?
Saya bekerja untuk perusahaan perangkat lunak sekarang dan SANGAT jauh lebih bahagia daripada saya di pekerjaan terakhir saya, di mana itu semua PHK & outsourcing sepanjang waktu, dan pengembang hanya dilihat sebagai widget yang mudah diganti (bukan jantung perusahaan).
sumber
Pemrogram masih pemrogram. Hanya karena produk utama perusahaan bukan perangkat lunak tidak berarti bahwa seorang programmer tidak memerlukan fasilitas yang sama.
sumber
Saya telah bekerja di departemen TI perusahaan besar yang mengembangkan perangkat lunak untuk penggunaan internal; Saya telah bekerja di perusahaan yang mengembangkan perangkat lunak untuk pasar; dan saya telah bekerja di agensi yang melakukan pengembangan web untuk klien.
Dan saya tidak akan mengatakan ada perbedaan apa pun antara perusahaan yang berbeda dalam hal pentingnya produktivitas meningkatkan hal-hal.
Membuat programmer tetap produktif sangat penting terlepas dari apa pengembangan yang dilakukan oleh programmer tersebut. Dan saya akan mengatakan bahwa menjaga programmer senang dan membuat mereka bekerja untuk Anda bahkan lebih penting ketika mereka adalah programmer pemeliharaan di departemen TI perusahaan non-software.
sumber
Perbedaannya sangat tergantung pada perusahaan itu sendiri; Saya telah bekerja di perusahaan non-software yang bagus dan perusahaan software yang buruk. Namun, rata-rata, inilah yang saya temukan:
Perusahaan Non-Software
Penekanannya adalah pada menyelesaikan sesuatu dengan cepat, dengan sedikit atau tanpa pemikiran diberikan kepada kualitas atau pemeliharaan jangka panjang. Pengembang biasanya secara teknis tidak mengetahui apa yang telah mereka lakukan di masa lalu atau selama waktu mereka dengan perusahaan, dan sering mencoba memperkenalkan konsep baru (ORM, prinsip SOLID, TDD, dll.) Akan menemui kebingungan atau pemecatan segera. Orang-orang cenderung lebih fokus pada "menarik garis perusahaan".
Perusahaan perangkat lunak
Penekanan pada menyelesaikan sesuatu tanpa mengorbankan kualitas. Rekan kerja lebih cenderung mengikuti perkembangan teknologi (apakah mereka dapat menggunakannya atau tidak di tempat kerja) dan sering kali melihat bagaimana mereka dapat mengintegrasikan ide atau kerangka kerja baru ke dalam rutinitas harian untuk menjadikan perangkat lunak lebih baik. Jika mereka belum terbiasa dan menggunakan konsep seperti TDD, ORM, SOLID, dll. Mereka mungkin pernah mendengarnya dan lebih bersedia untuk mengevaluasinya.
Sekali lagi ini pada akhirnya tergantung pada perusahaan. Saya bekerja di perusahaan non-perangkat lunak dengan tim yang sangat gesit yang merangkul TDD dan ORM dan mengajari saya banyak hal tentang rekayasa perangkat lunak yang tepat, dan saya bekerja di perusahaan perangkat lunak kecil yang menulis kode spaghetti VBScript jenis terburuk dan memiliki 50+ pengembang bahwa masing-masing harus bekerja pada halaman yang berbeda untuk menghindari kerusakan, dan berton-ton birokrasi untuk perubahan kecil sekalipun. Namun, semakin sedikit perusahaan yang bergantung pada perangkat lunak, semakin besar kemungkinan lingkungan akan sangat buruk untuk pengembangan perangkat lunak.
sumber
Saya telah bekerja sebagai satu-satunya pengembang perangkat lunak di lantai orang-orang non-perangkat lunak, dan saya pikir independensi bahkan lebih penting dalam kasus itu. Ketika Anda tidak memiliki lusinan orang yang menggunakan alat yang sama, Anda harus membuat lebih banyak keputusan — bahasa apa yang akan Anda gunakan, kompiler apa, server apa, dll. Pengembang mandiri membutuhkan lebih banyak kebebasan untuk menginstal, mengevaluasi, dan mengelola perangkat lunak yang diterima begitu saja dalam pengaturan grup.
sumber
Satu perbedaan pasti akan kurang menekankan pada overhead dan redtape yang harus Anda lalui di toko perangkat lunak perusahaan. Anda akan menemukan bahwa Anda akan dapat memiliki kontrol yang lebih terperinci atas semua aspek proyek Anda.
Satu pro adalah bahwa ini dapat menyegarkan ...
Ternyata bagi saya pribadi sangat buruk tetapi itu mungkin saja karena saya memilih dengan buruk. Satu con besar adalah bahwa Anda tidak lagi terikat pada roti-dan-mentega dari bisnis dan sebaliknya Anda adalah overhead administrasi. Pengawas anggaran memperlakukan saya seperti saya secara pribadi mengambil uang dari dompet mereka sendiri dan mulai "memukuli saya seperti bagal sewaan". Bagi saya itu adalah cobaan yang menyebalkan dan melelahkan sehingga Anda harus hati-hati mencari tanda-tanda sikap seperti ini ketika Anda wawancara.
sumber
Sudah ada beberapa jawaban yang bagus di sini, tetapi saya hanya ingin merujuk tautan ke transkrip bagian kedua dari ceramah yang Joel Spolsky berikan di Universitas Yale:
Joel Spolsky - Talk At Yale Bagian 2 dari 3
Di sana ia berbicara tentang perbedaan antara programmer "in-house" dan programmer yang bekerja di perusahaan perangkat lunak / teknologi.
Tiga poin utamanya adalah:
Ketika Anda seorang programmer in-house, Anda tidak pernah bisa melakukan hal-hal dengan cara yang benar. Anda selalu harus melakukan hal-hal dengan cara yang bijaksana.
Sebagai pemrogram in-house, begitu beberapa perangkat lunak “cukup baik,” Anda berhenti mengerjakannya. Ketika Anda mengembangkan "produk" perangkat lunak, Anda dapat membuatnya cantik.
Ketika Anda seorang programmer di perusahaan perangkat lunak, pekerjaan yang Anda lakukan berhubungan langsung dengan cara perusahaan menghasilkan uang. Itu berarti, untuk satu hal, manajemen peduli terhadap Anda.
Secara pribadi, saya telah bekerja di perusahaan perangkat lunak dan perusahaan non-perangkat lunak sepanjang karier saya, dan meskipun selalu ada pengecualian untuk setiap aturan, saya setuju dengan poin Joel karena sebagian besar perusahaan tampaknya sesuai dengan mereka.
sumber
Satu perbedaan utama adalah bahwa bekerja di toko perangkat lunak Anda mungkin membantu menghasilkan pekerjaan di perusahaan. Bekerja di dept pemrograman. di berbagai jenis perusahaan, secara umum, berarti Anda menulis perangkat lunak untuk menggantikan orang. Ini adalah kenyataan yang menyedihkan untuk dihadapi. Yang sedang berkata, sebuah biro iklan mungkin benar-benar binatang yang sama sekali berbeda. Lebih seperti toko pengembang web di perusahaan lain, akan menjadi dugaanku.
sumber
Yah per pengamatan saya setidaknya ada dua kasus ketika tetap dengan perusahaan perangkat lunak berbatasan dengan masalah kelangsungan hidup profesional .
Kasus pertama adalah jika seseorang benar-benar ke dalam pengkodean - beri saya 80 ... 90 ... 100% waktu untuk kode atau saya mati . Di toko-toko perangkat lunak, ini hampir seperti biasa, seolah-olah semua orang tahu bagaimana menuju ke sana karena, well, karena semua orang melakukan hal itu. Tetapi di luar , ada risiko yang sangat tinggi untuk gagal sampai di sana. Seseorang mungkin mendapatkan serendah 50, 40, 30% (beban pengkodean pribadi saya pernah turun menjadi 20% - tidak bercanda, saya diukur dalam JIRA !) Itu bukan karena "mereka" tidak ingin Anda kode - tidak, mereka ingin tetapi , tapi ... mereka mungkin tidak tahu caranya.
"Risiko mematikan" kedua adalah jika seseorang memiliki masalah serius dalam komunikasi. Ini mungkin menyusahkan bahkan di toko-toko perangkat lunak, kan, tetapi setidaknya ada peluang bagus untuk bertahan hidup dan menjalani kehidupan produktif yang menyenangkan tanpa mengganggu interaksi. :) Namun di perusahaan-perusahaan non-perangkat lunak, peluang seperti itu jauh lebih rendah - sangat berlawanan, hampir tidak dapat dihindari bahwa seseorang pada akhirnya harus menghabiskan banyak upaya untuk mendidik orang luar dalam dasar-dasar IT hanya karena jika tidak maka tidak mungkin untuk melakukan pekerjaan itu.
Yah kecuali untuk dua kasus yang disebutkan di atas saya tidak tahu alasan kuat lain untuk mengunci diri secara ketat ke perusahaan perangkat lunak. Sekarang, sisi mana yang lebih disukai? sejauh yang saya tahu, ini lebih merupakan masalah selera, kesenangan macam apa yang lebih banyak mengeklik Anda.
Kedua belah pihak menawarkan bentuk bersenang-senang yang berbeda. Tidak mudah untuk dijelaskan.
Saya akan mengatakan perusahaan perangkat lunak lebih menyenangkan bagi mereka yang bertujuan "nilai tinggi" sementara yang di luar memberikan sensasi kepada mereka yang berjuang untuk "perbedaan besar". Saya memikirkannya tentang seperti ini ( nomor catatan di bawah ini diciptakan hanya untuk menyederhanakan membuat titik) ...
Perhatikan bahwa peluang untuk mendapatkan peningkatan 500% di perusahaan perangkat lunak sangat kecil jika dibandingkan - dan masing-masing, peluang untuk mencapai 100 fitur di luar sangat kecil .
Nilai tertinggi di satu sisi memperluas pemahaman kita tentang batasan profesional, meningkatkan pengetahuan kita tentang bagaimana melakukan sesuatu dengan lebih baik. Perbedaan besar di sisi lain membuat dampak yang mendalam pada budaya perusahaan, meningkatkan pengetahuan orang luar tentang cara melakukannya dengan benar.
Sekarang, jika Anda memiliki preferensi yang jelas untuk satu atau yang lain, Anda tahu sisi mana yang harus diambil. Atau, jika Anda ragu-ragu, hanya merasa bebas untuk berayun di antara mereka seperti yang Anda inginkan. :)
sumber
Kudos terhadap respons pusat biaya vs laba.
Saya sudah berada di keduanya dan akan jauh lebih memilih perusahaan perangkat lunak. Karena korelasi Anda dengan keuntungan lebih jelas, Anda cenderung memiliki kompensasi berbasis kinerja yang tepat dan budaya perusahaan secara keseluruhan yang merangkul kepribadian pengembang perangkat lunak. Seringkali yang diterjemahkan ke dalam politik kantor kurang, Dockers tidak diperlukan, jalur karier yang jelas, dan kurang BS. Tetapi jika Anda lebih mantap pada level 9-5, mungkin lebih tidak menantang, tidak manggung dibanding yang biasa-biasa saja, itu adalah tawaran yang lebih baik - tidak bersikap sinis di sini, saya memahami beberapa orang menyukai keseimbangan kerja / kehidupan yang lebih tipikal dengan mengorbankan hal-hal lain. Dalam pengalaman saya, kualitas keseluruhan pengembang jauh, jauh lebih baik di perusahaan perangkat lunak; menentang mediokritas yang sering meresapi corp IT. Saya tahu bahwa ada pengecualian,
sumber
TI adalah bagian dari kelompok Dukungan di Perusahaan Perangkat Lunak non..Pemrogram Perangkat Lunak mengembangkan aplikasi yang akan membantu perusahaan untuk produktivitas yang jauh lebih baik, transaksi lebih cepat, dll dukungan teknis ... Beberapa perusahaan perangkat lunak Non (Etch Manufaktur / Industri) menawarkan pelatihan dan lainnya hal-hal untuk programmer mereka tetapi banyak yang tidak, jadi mereka digunakan untuk melakukan outsourcing Programmer di perusahaan lain.
sumber
Saya lebih suka kontras bekerja dalam departemen IS untuk bekerja di lengan pengembangan produk perusahaan yang menjual perangkat lunak. Hanya untuk memperjelas setiap sisi dan memberikan beberapa masing-masing, dengan beberapa koreksi format:
Departemen IS
Perusahaan dapat membuat perangkat keras, perangkat lunak, mobil, atau apa pun kecuali kuncinya di sini adalah bahwa ada departemen internal yang bertanggung jawab atas sistem yang digunakan perusahaan sehari-hari. Di sini bisa ada kerangka kerja seperti ITIL yang dapat mencoba membawa kedewasaan pada proses yang dijalankan departemen sebagai bagian dari departemen ini adalah orang-orang infrastruktur yang tetap menyala dan bagian lainnya adalah orang-orang pengembangan dan analisis yang melakukan perbaikan , peningkatan dan sistem baru. Di sini proyek dapat bervariasi panjangnya meskipun dalam beberapa kasus dapat memakan waktu bertahun-tahun untuk mendapatkan sistem yang sepenuhnya diimplementasikan karena fase dalam peluncuran jika beberapa sistem besar diganti seperti CMS, CRM atau ERP.
Kadang-kadang saya merasa menjadi roda penggerak dalam sebuah mesin dan pada orang lain agak rapi untuk menjadi bagian dari tulang punggung perusahaan untuk posisi terendah dan tertinggi dari posisi seperti itu. Saya tidak bisa terlalu menyombongkan diri kepada orang-orang di luar perusahaan karena sebagian besar pekerjaan saya adalah pada sistem internal yang tidak dimaksudkan untuk diakses atau dilihat publik. Di sini ada tiket dukungan di mana orang mungkin harus berurusan dengan vendor perangkat lunak karena seseorang memiliki masalah yang belum tentu sesuatu di mana mudah untuk mengetahui apa yang menyebabkan kesalahan dan departemen IS harus menindaklanjuti dengan orang lain untuk membantu menyelesaikan masalah. Dalam kasus lain, mungkin beberapa penyesuaian harus diubah karena perubahan persyaratan atau aturan bisnis.
Perusahaan perangkat lunak
Di sini ini bekerja pada apa yang dijual perusahaan secara langsung dan dengan demikian ada beberapa perbedaan aturan besar. Pertama, pelanggan di sini tidak bisa kotak seperti halnya kasus departemen IS. Di departemen IS mungkin ada hanya beberapa pengguna sistem sehingga tata kelola dapat menangani banyak kasus aneh di mana jika seseorang sengaja memilih untuk menyalahgunakan alat, itu tidak selalu bisa dicegah. Di perusahaan perangkat lunak tidak ada jaring pengaman itu. Jika seseorang mengunduh perangkat lunak Anda dan mereka berhasil menemukan cara untuk melakukan sesuatu yang agak merusak dengan itu, perusahaan mungkin mendapatkan mata hitam besar untuk itu. Dalam hal ini mungkin ada beberapa pamer dari apa yang saya lakukan karena mungkin ada beberapa fitur keren untuk menunjukkan kepada teman atau kerabat jika mereka ingin tahu lebih banyak tentang apa yang saya lakukan.
Sesuatu yang perlu dicatat di sini adalah bahwa mungkin ada perusahaan yang dibawa sebagai integrator sistem untuk memasukkan perangkat lunak perusahaan besar yang dapat disesuaikan yang bekerja dengan orang-orang di departemen IS pada implementasi barang jutaan dolar serta yang bekerja langsung untuk perusahaan yang membuat perangkat lunak besar itu sendiri. Bisa juga ada penyedia layanan aplikasi yang saya taruh di bawah sini karena mereka menjual layanan yang biasanya dibangun dari perangkat lunak. Sebagai contoh, Google mungkin memiliki departemen IS serta sejumlah pengembang perangkat lunak walaupun seseorang tidak akan pergi ke toko untuk membeli DVD perangkat lunak Google, setidaknya saya tidak berpikir saya pernah melihatnya meskipun saya melakukannya. mengetahui banyak produk Google secara online yang dapat digunakan dengan lebih mudah. Ini dapat memungkinkan untuk beberapa spesialisasi karena tidak
sumber
Saya baru-baru ini bekerja di sebuah perusahaan besar non-perangkat lunak Amerika di mana seorang kolega mendengar CEO berkata "Saya tidak memberikan informasi tentang perangkat lunak yang saya jalankan * *". Dalam pengalaman saya ini setara untuk kursus. Hampir pasti akan ada masalah yang tampak jelas bagi tim perangkat lunak tetapi manajemen non-dev akan menolak untuk berpikir.
sumber