Dengan produk perangkat lunak yang membuat seluruh tim orang untuk mengembangkan, berapa banyak yang dapat dicapai oleh seorang programmer sendiri? Dengan kata lain, dapatkah satu orang menulis Photoshop, kata MS, dll ...? Dan jika mereka tidak bisa, akankah pengembangan web menjadi area di mana satu programmer bisa melakukan banyak hal?
web-development
project-management
fender1901
sumber
sumber
Jawaban:
Mulai dari yang kecil
Linux saat ini jauh lebih besar daripada iterasi pertama, tetapi yang penting adalah ia mengeluarkan cukup banyak hal di dalamnya untuk mendapatkan daya tarik.
Hanya jika itu sepadan
Saya memiliki aturan pribadi bahwa hal-hal besar hanya layak dilakukan jika secara fundamental berbeda dengan yang lain. Kalau tidak, Anda menyelam ke laut merah .
Bagus untuk memulai, tetapi tidak selalu berkelanjutan
Jika perangkat lunak Anda cukup baik, Anda mungkin ingin serius dengannya. Ambil contoh Markus "Notch" Persson, pencipta Minecraft. IIRC dia memulai permainan sendirian, dan ketika permainan mendapatkan traksi dia mulai mencari kolaborator dan bahkan memulai sebuah perusahaan.
Sementara menghargai untuk mencapai sesuatu sendirian, proyek-proyek besar memenuhi potensi mereka dengan kolaborasi pengembang, bukan genius tunggal, yang membawa saya ke poin saya berikutnya.
Sebuah mitos
Lihat The Myth of the Genius Programmer , ceramah oleh Ben Collins-Sussman dan Brian Fitzpatrick di Google I / O 2009. Anda harus mendapatkan semua harapan palsu di sana. Poin utama yang ingin saya sampaikan di sini adalah bahwa kadang-kadang satu pengembang mendapatkan kredit untuk semuanya, sementara ada lebih banyak orang di belakang.
Itu pasti mungkin
Contoh lain, selain dari Linus Torvalds, adalah John Carmack. Dia mengirim Wolfenstein hanya dalam empat hari ketika EA memperkirakan satu tim penuh selama dua bulan.
Ini bukan jumlah kode, itu pengetahuan arsitektur dan teknis yang memungkinkan Anda mencapai hal-hal besar dengan kode kurang dari yang Anda harapkan.
Mengingat keterampilan dan pengetahuan (di luar tingkat rata-rata) Anda dapat membuat banyak pekerjaan terasa seperti sedikit.
sumber
Karena sifat pekerjaan yang saya lakukan, saya telah mengembangkan beberapa aplikasi yang cukup besar sendirian. Jadi ya, itu bisa dilakukan. Saya bisa melanjutkan ini selama berjam-jam tetapi tidak punya banyak waktu sekarang jadi di sini ada beberapa pro dan kontra dari pengalaman pribadi.
Pro:
Cons:
sumber
Dengan dedikasi dan keterampilan, satu orang pasti dapat mencapai banyak hal. Namun itu tidak mudah, menjadi programmer yang baik tidak cukup. Untuk proyek yang sukses, Anda sering harus berpikir tentang kasus penggunaan, desain antarmuka pengguna, dokumentasi, dukungan, dan banyak lagi. Begitu segalanya bergulir dan jumlah pengguna bertambah dengan melakukan semuanya sendirian akan semakin menjadi tidak realistis - itulah titik di mana lebih banyak orang masuk ke proyek (melalui partisipasi masyarakat, mempekerjakan orang atau sebaliknya) atau proyek mati.
sumber
Tergantung pada perangkat lunak yang dia coba kembangkan, batasan waktu, dan keterampilan. Jika dia sedang mengembangkan aplikasi SIM sederhana, sangat mungkin dia dapat melakukannya dalam waktu singkat. Mencoba mengembangkan perangkat lunak yang rumit seperti Photoshop, MS Word, Blender, Flash, dan lain-lain, tetapi mungkin membutuhkan waktu lama dan memiliki fungsi paling dasar dan fitur-fiturnya sederhana.
sumber
Itu semua tergantung pada keterampilan, waktu yang dihabiskan, dan kemauan untuk melakukannya. Semakin banyak pengetahuan yang Anda miliki, semakin sedikit waktu yang dibutuhkan untuk mencapai sesuatu. Anda akan mendapatkan pengetahuan yang sangat intim tentang basis kode sebagai pengembang tunggal yang juga dapat mempercepat proses mencari tahu / refactoring / debugging.
Saya pribadi telah mengerjakan aplikasi transfer desktop ke server. Saya telah membuat kode aplikasi server, aplikasi desktop, dan mengujinya sendiri. Saya telah menulis penginstal untuk aplikasi ini. Saya menemukan cara untuk memungkinkan drag dan drop ke ikon system tray di Windows dan bahkan akhirnya menulis perpustakaan Java baru dari awal. Saya melakukan ini selama setahun dan masih dalam pengembangan dan pengujian.
Seluruh proyek ini merupakan satu cobaan berat. Setiap hari sepulang sekolah saya telah mengerjakan proyek dan juga akhir pekan. Apakah ini sebesar MS Word, Photoshop, dll? Nggak. Proyek ini masih besar dan terus berkembang dan mungkin untuk mencapai banyak hal.
sumber
Saat ini saya sedang mengerjakan proyek semacam itu di waktu senggang saya (ini adalah aplikasi web, bukan aplikasi desktop, tetapi prinsip-prinsipnya sama). Inilah yang saya temukan sejauh ini:
1) Jangan menemukan kembali roda . Gunakan pustaka / kerangka kerja yang ada, daripada melakukan semuanya dari awal. Satu peringatan di sini: pastikan Anda memperhatikan lisensi karena berlaku untuk distribusi / rilis yang Anda inginkan / model apa pun. Beberapa lisensi copyleft akan mengharuskan Anda membuka "karya turunan" Anda. Beberapa lisensi hanya mengizinkan penggunaan non-komersial. Pantau perpustakaan / kerangka kerja yang Anda gunakan sehingga Anda dapat memberikan atribusi yang sesuai di layar "Kredit" / area / apa pun
2) Bekerja secara iteratif . Ini terkait dengan apa yang dikatakan dukeofgaming dengan "Mulai Kecil" . Anda lebih mungkin bertahan dengan sebuah proyek jika Anda dapat melihat hasilnya. Sampai Anda dapat melihat sesuatu berfungsi, perkembangan apa pun yang Anda lakukan adalah setara dengan melukis di kegelapan.
3) Jangan takut untuk meminta tanggapan / bantuan sejak dini . Kemungkinannya, Anda tidak pandai dalam segala hal. Jika Anda hebat di seluk beluk tingkat yang lebih rendah dari coding, Anda mungkin payah di UI. Kebalikannya juga berlaku. Tidak ada salahnya untuk mendapatkan saran dari mereka yang lebih baik dari Anda di bidang tertentu. Banyak orang akan menghindari ini karena mereka khawatir seseorang mencuri ide mereka. Jangan khawatir tentang ini - jika seseorang mencoba untuk menyalin Anda, itu berarti Anda memiliki sesuatu yang berharga. Gagasan itu murah, implementasi adalah kuncinya. Apple tidak menciptakan MP3 player, Microsoft tidak menciptakan sistem operasi, Facebook tidak menciptakan jaringan sosial, dan Google tidak menciptakan mesin pencari. Apa yang mereka lakukan adalah membuatnya menarik bagi pengguna (dan tidak payah).
sumber