Apabila saya mula membina laman web pertama saya, keterujaannya sangat terasa. Saya menyangka bahagian yang sukar adalah belajar mengekod—menghafal tag, memahami fungsi, dan memastikan sintaksnya betul. Saya silap. Menulis kod rupa-rupanya adalah bahagian yang mudah. Cabaran sebenar adalah mengubah baris-baris kod tersebut menjadi sesuatu yang boleh digunakan oleh manusia sebenar tanpa kekeliruan atau kekecewaan. Projek pertama itu mengajar saya bahawa pembangunan bukan sekadar menaip secara bersendirian, tetapi lebih kepada menyelesaikan masalah untuk manusia yang tidak peduli tentang stack teknologi anda. Saya melakukan kesilapan yang merugikan masa, waktu tidur, dan pengguna awal saya. Lima daripadanya paling ketara.

Mengejar Kesempurnaan Sebelum Melancarkan

Saya terperangkap dalam jerat kesempurnaan jauh sebelum saya layak untuk menggelar sesuatu itu sempurna. Saya menghabiskan seluruh petang hanya untuk menukar kod hex bagi perbezaan satu tona warna, mengubah nilai border-radius daripada lapan piksel ke sepuluh piksel dan kembali semula, serta menulis semula teks tajuk sebanyak lima kali sebelum seorang pun pelawat melihat halaman tersebut. Saya memberitahu diri sendiri bahawa saya sedang memperhalusi, tetapi sebenarnya saya sedang bertangguh di bawah topeng kualiti. Hasilnya? Saya melancarkan laman web tersebut tiga minggu lewat. Apabila laman tersebut akhirnya dilancarkan, tidak seorang pun pengguna mengulas tentang lengkungan butang yang saya usahakan dengan gigih. Mereka hanya peduli sama ada borang tersebut berjaya dihantar tanpa ralat.

Pengajarannya jelas: lancarkan hasil kerja anda dahulu. Anda tidak boleh menambah baik sesuatu berdasarkan maklum balas yang belum anda terima. Pastikan struktur adalah kukuh, pastikan laluan utama berfungsi, dan lancarkannya. Penambahbaikan adalah untuk versi dua, bukan versi sifar. Pengguna anda akan memberitahu anda apa yang sebenarnya rosak berbanding apa yang anda sekadar bayangkan sebagai tidak sempurna.

Membina Terlalu Banyak Terlalu Awal

Projek saya bermula sebagai alat ringkas untuk berkongsi cadangan buku. Itu sahaja tujuannya. Menjelang minggu kedua, saya telah merangka sistem log masuk pengguna, graf penarafan dinamik, bahagian komen bersarang, suis mod gelap, dan ringkasan e-mel. Tiada satu pun daripadanya berfungsi dengan baik. Aliran log masuk rosak separuh daripada masa penggunaan. Graf pula tidak mempunyai data sebenar untuk dipaparkan. Bahagian komen pula membenarkan entri pendua. Sementara itu, ciri senarai buku asas—sebab utama laman web itu wujud—telah tertimbus di bawah timbunan ciri tambahan yang rosak dan tidak siap yang mengelirukan sesiapa sahaja yang melawat halaman utama.

Laman web ringkas yang menyelesaikan satu masalah dengan kemas akan sentiasa mengatasi laman web kompleks yang melakukan sepuluh perkara dengan lemah. Sebelum anda menulis baris kod seterusnya, tetapkan satu tugas utama yang produk anda lakukan untuk pengguna. Bina tugas itu. Uji ia. Perhalusinya sehingga ia boleh dipercayai. Jika pengguna benar-benar meminta papan pemuka atau suapan sosial, anda boleh menambahnya kemudian. Sehingga itu, tahan keinginan untuk membina pisau tentera Swiss apabila pisau dapur yang tajam sudah memadai untuk semua orang.

Mengabaikan Pengalaman di Sebalik Rupa Paras

Saya menghabiskan masa berjam-jam memilih fon yang elegan dan palet warna yang bergaya. Saya terlalu taksub dengan gradien latar belakang bahagian hero. Kemudian saya mengabaikan bagaimana perasaan sebenar semasa menggunakan laman tersebut. Halaman menjadi sangat perlahan kerana saya memaparkan fail PNG resolusi penuh tanpa mampatan. Label navigasi menggunakan perkataan yang kreatif yang nampak cantik tetapi membuatkan orang tertanya-tanya ke mana pautan itu akan membawa mereka. Butang pula nipis dan bergaya tetapi terlalu kecil untuk diketuk pada skrin telefon.

Saya belajar dengan cara yang sukar bahawa reka bentuk visual dan pengalaman pengguna tidak boleh ditukar ganti. Antara muka yang cantik akan gagal jika pelawat perlu menunggu beberapa saat untuk imej sepanduk, atau jika mereka tidak dapat mencari jalan untuk menghubungi anda dalam kurang daripada dua klik. Jadikan setiap interaksi mudah. Labelkan navigasi dengan bahasa yang ringkas. Mampatkan aset anda. Pastikan sasaran ketikan cukup besar. Kelajuan dan kejelasan bukanlah bonus yang anda tambah di penghujung; ia adalah asas kepada segala-galanya.

Menguji Hanya pada Mesin Sendiri

Saya membangunkan keseluruhan laman web pada satu komputer riba, dalam satu pelayar, pada satu resolusi skrin. Pada mesin saya, semuanya kelihatan sempurna. Kemudian seorang rakan membukanya di iPhone beliau. Butang bertindih. Teks terkeluar dari bekasnya. Seorang rakan lain menggunakan Safari pada Mac, dan keseluruhan susun atur grid CSS runtuh menjadi timbunan yang tidak boleh dibaca. Saya secara senyap menganggap bahawa jika ia berfungsi untuk saya, ia akan berfungsi untuk semua orang. Andaian itu merugikan saya satu hujung minggu dengan pembaikan segera yang tergesa-gesa dan permohonan maaf yang memalukan.

Jangan ulangi kesilapan saya. Sebelum anda menerbitkan laman web, cuba buka di Chrome, Firefox, Safari, dan Edge. Gunakan alat pembangun (developer tools) pelayar anda untuk mensimulasikan telefon, tablet, dan komputer riba dengan pelbagai lebar skrin. Klik setiap pautan. Hantar setiap borang. Ubah saiz tetingkap secara agresif. Pepijat yang anda temui semasa ujian adalah jauh lebih murah berbanding pepijat yang ditemui oleh pengguna anda di persekitaran produksi.

Menganggap Maklum Balas Sebagai Serangan Peribadi

Berkongsi projek tersebut membuatkan saya berasa gementar. Bagaimana jika orang ramai tidak menyukainya? Apabila seorang rakan sekerja mencadangkan agar membuang satu ciri yang telah saya luangkan