Kapan menjadi berlebihan?


10

Pertama-tama, saya minta maaf karena saya tidak tahu bagaimana membuat utas komunitas; jadi tolong bantu seseorang.

Sebagai pengembang, melintasi banyak platform, teknologi, dan bahkan pada tingkat infrastruktur; Saya selalu bertanya, kapan saya melakukan TERLALU banyak?!?

Ini merupakan proses pembelajaran yang tidak pernah berakhir, sejak saya mulai. Satu (1) hal yang saya pelajari adalah bahwa persyaratan hampir tidak valid untuk jangka waktu yang lama, dan dengan demikian sedikit tinjauan ke masa depan dapat berjalan jauh.

Tapi di mana keseimbangannya, dan bagaimana Anda tahu kapan Anda kehilangan waktu, bukan mendapatkannya ?!


1
Apakah kita berbicara tentang hal-hal seperti penskalaan untuk satu juta pengguna dari hari pertama ketika Anda tidak memiliki pelanggan saat ini? Atau hal-hal yang lebih fungsional seperti membuat cara perhitungan pajak dilakukan "dapat dikonfigurasi" ketika tidak ada saran yang mungkin pernah berubah dan bahkan jika mereka tidak ada yang tahu bagaimana mereka bisa bekerja di dunia baru yang hipotetis ini?
Jon Hopkins

1
Komunitas Wiki sudah cukup ditinggalkan. Itu tidak pernah benar-benar bekerja sesuai rencana. Jangan khawatir tentang itu.
David Thornley

Saat Anda berbicara tentang sejuta pengguna, pembunuhan berlebihan tidak seharusnya ada dalam kosakata Anda.
Theofanis Pantelides

Jawaban:


12

Anda melakukan terlalu banyak ketika pengembang rata-rata tidak dapat memahami apa yang Anda lakukan dengan membaca kode Anda.

  • Sering lakukan tinjauan kode dengan tim Anda.
  • Diskusikan dengan arsitektur, teknologi atau pola yang Anda rencanakan untuk digunakan. (dalam pertemuan sehari-hari jika Anda memilikinya)

Saya melawan semua "arsitek" CV didorong saya temui. Saya berharap kubah itu ada! ;)

Saya percaya dunia membuang banyak uang yang bisa kita gunakan untuk meningkatkan kehidupan (programmer) kita.


5
"Saya melawan semua arsitek yang didorong CV" Saya temui ":)
Gratzy

2
Saya tidak perlu menyetujui hal ini (secara praktis), mengingat tingkat pengembang yang tidak setara. Banyak kali saya memperbaiki proyek serupa untuk menggunakan perpustakaan umum, dan itu tidak selalu dapat dibaca seperti sebelumnya.
Theofanis Pantelides

1
Saya kira itu sangat penting untuk membuat setiap anggota tim mengerti dengan cukup baik kode sumber yang mereka kerjakan. Untuk kekayaan proyek Anda dan juga untuk menghindari arsitek menjadi budak dari implementasinya sendiri. Jadi, jika ada terlalu banyak perbedaan dalam pengetahuan, perbaiki dulu.

1
Saya suka kalimat pertama Anda; kejelasan kode itu penting. Tapi sering review kode? Diskusi arsitektur dalam rapat harian ... Benarkah? Dan apa sebenarnya arti "arsitek yang digerakkan oleh CV"?
Robert Harvey

1
Ulasan kode yang sering berarti mereka harus otomatis. Anda menulis fitur, salah satu dari rekan Anda mengulasnya dan harus memahaminya untuk memvalidasinya. Jika dia menanyai Anda, Anda bekerja sama untuk membuat kode lebih baik. Anda menyebutkan masalah arsitektur Anda selama stand-up, tetapi diskusi terjadi setelahnya. Baca Siapa yang Membutuhkan Arsitek ( martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf ). Digerakkan oleh CV berarti Anda akan memilih teknologi karena Anda menginginkannya di CV Anda

11

Ketika proses menyalip hasilnya.

Sudah terlalu sering kita melihat bahwa jika pengembang lebih fokus pada proses daripada hasil (seperti dalam kualitas, membuat tenggat waktu, dll.) Hal-hal buruk dimulai.

Inilah sebabnya mengapa tidak boleh dilupakan bahwa tujuan tinjauan kode, pola desain, dll. Adalah untuk membuat kode lebih baik, tetapi mereka bukan target itu sendiri.


4

Bagi saya, saya suka pendekatan yang Kent Beck kemukakan di XP (tidak yakin apakah itu ide "miliknya" atau milik orang lain tetapi di situlah saya pertama kali mendengarnya):

Cukup sulit untuk menyelesaikan masalah hari ini tanpa berusaha mencari tahu apa masalah hari esok dan menyelesaikannya juga.

Pengembang dapat menghabiskan banyak waktu pada solusi untuk persyaratan yang tidak ada, kasus tepi yang tidak akan pernah terjadi atau bahkan masalah asli di mana dampak dari masalah secara signifikan lebih kecil daripada biaya pencegahannya.

Ini adalah waktu yang dapat dimasukkan ke dalam hal-hal yang benar-benar diinginkan dan digunakan oleh pengguna, hal-hal yang akan memberi mereka manfaat yang secara besar-besaran akan melebihi bahkan ketidaknyamanan yang akan disebabkan oleh kejadian yang tidak mungkin terjadi jika salah satu dari hal-hal ini benar-benar terjadi.

Di luar hasil yang tidak optimal ini bagi pengguna, dampaknya terhadap pengembang rekayasa berlebih dengan cara ini cenderung lebih dari kode kompleks yang lebih sulit untuk didukung dan lebih sulit untuk ditingkatkan.

Jadi bagi saya jika Anda tahu, atau dapat cukup yakin, bahwa sesuatu adalah persyaratan atau akan menyebabkan masalah maka atasi itu, jika tidak maka jangan lakukan.

Anda mungkin harus kembali dan memperbaikinya ketika ternyata ada persyaratan yang lebih luas daripada yang Anda implementasikan sebelumnya, tetapi umumnya upaya total yang Anda lakukan di seluruh proyek masih akan lebih rendah karena dalam kebanyakan kasus itu tidak akan terjadi.


Bagaimana dengan memodulasi semuanya, dan kemudian hanya mengganti modul saat Anda menskala? atau apakah itu berlebihan juga !?
Theofanis Pantelides

1
@Theofanis Patelides - Kode yang terstruktur dengan baik jelas selalu merupakan ide yang bagus, tetapi karena pada kebanyakan hal Anda tentu bisa mengambilnya terlalu jauh. Saya pikir dengan banyak dari hal-hal ini menjadi naluri dari waktu ke waktu - Anda tahu apa yang telah Anda lakukan sebelumnya yang berhasil dan apa yang membuang-buang waktu.
Jon Hopkins

1

Pertanyaan Anda cukup terbuka, jadi saya akan menafsirkannya sebagai "melakukan terlalu banyak pada satu bagian dari proyek":

Bagi saya, mudah untuk menghabiskan terlalu banyak waktu untuk sesuatu yang tidak benar-benar memberikan banyak keuntungan bagi pelanggan. Seringkali, itu adalah hal-hal kecil seperti "Ya, itu bekerja, tetapi tidak sepenuhnya seperti yang saya inginkan juga" di mana pelanggan mungkin tidak akan peduli apakah itu bekerja dengan cara ini atau yang lain.

Ketika itu terjadi, saya harus menghentikannya dan menghabiskan waktu untuk hal-hal yang lebih penting. Lebih baik bahwa produk bekerja secara keseluruhan daripada tidak tetapi Anda memiliki bagian-bagian yang lebih kecil ini yang bekerja dengan sempurna.

Menulis kode pelacak (dari Kode Selesai ) mungkin merupakan ide yang baik untuk menghindari hal ini: Anda memulai proyek Anda dengan menulis kode yang menghubungkan seluruh kode - dari GUI (atau dekat dengan itu) sampai ke backend lalu kembali. Dengan begitu Anda selalu memiliki sesuatu yang berfungsi dan Anda tidak menghabiskan waktu menyempurnakan hal-hal kecil sampai semuanya berjalan.

Tapi tetap saja, ini masalah disiplin dan memprioritaskan.


Saya setuju, tetapi saya juga mendapati diri saya berkali-kali menghabiskan waktu berjam-jam fungsionalitas dan kemudian meneruskannya ke pengguna akhir non-teknis, dan menolaknya, karena hal-hal kecil!
Theofanis Pantelides

1

Ketika saya menjawab tidak untuk "apakah saya akan menjadi gila saya tidak melakukan ini nanti dan itu menggigit saya ..

IRL Sumber daya dan kendala waktu biasanya membuat saya sebelum saya harus mengajukan pertanyaan ini banyak. Pada titik itu Anda hanya fokus pada bit yang paling penting / dapat dicapai dan berharap yang terbaik.


1
Bagi saya tidak ada yang lebih menyebalkan daripada menyimpang dari Rencana A
Theofanis Pantelides

1

memang proses belajar yang tidak pernah berakhir! ... dan saya pikir itu tetap seperti itu! Keseimbangannya adalah ketika segala sesuatunya cukup efisien dan Anda punya waktu untuk melakukan hal lain selain pemrograman. Saya akan setuju dengan gablin "masalah disiplin dan memprioritaskan" dan Jim Hopkins yang menjadi insting setelah beberapa saat. Saya tahu bahwa menyempurnakan bagian-bagian kecil adalah apa yang membuat kita bahagia, tetapi pada akhirnya itu semua tentang apa yang membuat pengguna akhir bahagia. jadi saya katakan keseimbangannya (atau mungkin kompromi) adalah membuat pengguna akhir / pelanggan / klien bahagia terlebih dahulu (yang seharusnya rencana A) dan kemudian jika ada waktu bekerja pada penyempurnaan - membuat "bagian kecil" Anda lebih efisien dan / atau apapun yang Anda inginkan. Pada titik tertentu Anda harus mengatakan "cukup" meskipun :) kalau tidak ya, itu akan menjadi berlebihan!

skenario terburuk tentu saja adalah ketika pengguna akhir / pelanggan / klien adalah Anda! :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.