Halo semuanya! Nama saya Roman, dan hari ini saya akan membagikan pengalaman saya dalam tim tata letak yang didistribusikan. Saya akan memberi tahu Anda tentang proses yang telah kami bangun, dan bagaimana tim yang terdiri dari empat orang mencakup kebutuhan tata letak seluruh unit yang terdiri dari 30+ produk dan 20+ tim produk.

Saya juga akan berbicara tentang bagaimana:
- Monitor pekerjaan tim terdistribusi;
- Untuk mencapai konsistensi kode dalam berbagai proyek;
- Mendistribusikan tugas secara adil;
- Pertahankan kerja berkualitas tinggi;
- Jangan menumpuk tugas yang belum selesai;
- Untuk mencegah kejenuhan dan mengembangkan karyawan.
Alih-alih bergabung
Saya pikir ada baiknya segera memberi tahu mengapa kami telah mendedikasikan desainer tata letak di Tinkoff Business. Lagi pula, ada pendapat bahwa setiap pengembang web harus dapat memperbaiki diri.
Di banyak perusahaan, pengembang semuanya membuat huruf sendiri. Tapi, pertama, tidak semua pengembang suka mengeset dan melakukannya dengan cukup baik. Kedua, untuk pengembang, tata letak jauh dari selalu dalam prioritas tinggi, fokus dialihkan ke kode. Dan ketika tidak ada fokus, kualitas dan sikap terhadap detail menderita.
Oleh karena itu, kami memiliki desainer tata letak yang berdedikasi, tetapi mereka tidak terikat pada proyek tertentu, karena tidak semua proyek dapat menyediakan tugas tata letak sepanjang waktu.
Bagaimana sebelumnya?
Sebelumnya, prosesnya cukup sederhana.
Di unit saya ada empat huruf dan ruang obrolan khusus di mana semua orang yang tertarik melemparkan teka-teki untuk tata letak, dan kami perlahan-lahan menyortirnya. Secara umum, sistem bekerja, tetapi tentu saja ada kekurangannya.
Misalnya, tugas dapat dilemparkan, tetapi tidak ada satu pun huruf yang merespons pesan tersebut. Penulis tugas mulai menulis di ruang obrolan lagi - kata mereka, siapa yang akan mengambil tugas itu? Ditambah lagi, tidak ada perencanaan dan pemahaman siapa yang melakukan apa, kapan dia dibebaskan, dan proyek apa yang dia ikuti.
Agar pesan dari penulis tidak hang tidak terjawab, bahkan ketika semua orang sibuk, saya mulai menjawab semua pesan dan bertanya-tanya siapa yang akan dapat mengambil tugas ini atau itu kapan. Pada saat yang sama, ia menetapkan siapa yang berpartisipasi dalam proyek apa, siapa yang tahu tugas apa yang terbaik. Itu berlangsung sekitar satu bulan, sistem mulai bekerja lebih baik - reaksi instan untuk tugas-tugas yang benar-benar memuaskan pelanggan.
Benar, pendekatan ini masih belum memberikan jawaban atas banyak pertanyaan. Misalnya, sulit untuk memprediksi beban, tidak ada kesatuan dalam pendekatan, tidak ada jenis perencanaan, masing-masing sendiri dan secara mandiri menyelesaikan masalahnya. Selain obrolan, tidak ada titik masuk tunggal ke tata letak, tidak ada yang berdiskusi dengan proyek baru, untuk mengevaluasi desain, karena tidak jelas siapa yang akan mengerjakannya dan kapan.
Dan pada salah satu pertemuan dengan pemimpin, kami memutuskan untuk mengatur tim tata letak baru dari semua desainer tata letak, dengan siapa kami berbagi tugas untuk membangun proses dan menyediakan tata letak untuk semua proyek.
Inilah yang terjadi.
Membangun tim
Diberikan: empat huruf dari berbagai kota dan bahkan negara. 30+ proyek pada tumpukan yang sama, tetapi, karena sifat proyek, seringkali dengan arsitektur yang berbeda, versi desain dan komponen yang berbeda, tim pengembangan berbeda yang terkadang mempraktikkan pendekatan mereka.
Pertama-tama, kami membuat obrolan pribadi hanya dengan desainer tata letak. Ini memungkinkan Anda untuk dengan cepat menyelesaikan masalah tim ketika Anda tidak membutuhkan banyak hal yang mendesak, dan Anda selalu dapat mengajukan pertanyaan, meminta bantuan kolega Anda atau meninjau pekerjaan Anda.
Kontrol
Bagaimana cara mengontrol pekerjaan karyawan, jika mereka tidak duduk di sebelah?
Secara umum, ada berbagai jenis kontrol tergantung pada tingkat keterampilan dan tingkat kepercayaan pada karyawan. Saya tidak akan membahasnya secara rinci, Anda sendiri yang akan mempelajari segalanya.
Saya beruntung - semua orang sama-sama baik dan secara default memiliki kepercayaan diri 100%. Oleh karena itu, sistem diperlukan bukan untuk kontrol tetapi untuk menyinkronkan tindakan dan untuk memahami gambaran besar. Untuk melakukan ini, kami memperkenalkan panggilan pagi setiap hari hingga 10 menit, di mana setiap orang mengatakan apa yang mereka lakukan kemarin dan apa yang akan mereka lakukan hari ini.
Frase ini hanya berfungsi untuk sinkronisasi oleh tugas dan proyek, mereka tidak menyiratkan analisis masalah, kesulitan, holivar atau masalah lainnya - semua ini, jika perlu, disampaikan dalam frasa atau diskusi terpisah dalam obrolan. Sangat penting untuk memantau ini dan menghentikan semua upaya untuk mentransfer panggilan ke percakapan selama satu jam tentang cuaca.
Konsistensi Kode
Kami menerima tugas dari proyek yang sama sekali berbeda dengan kode dan kualitas yang berbeda, sehingga penting untuk mencapai pengiriman tata letak tingkat tinggi tunggal untuk semua proyek, terlepas dari sumber data. Untuk melakukan ini, melalui diskusi umum dan pemungutan suara, kami mengembangkan aturan dan pedoman untuk tata letak, yang kami patuhi dengan ketat dalam tim kami, dan juga merekomendasikan untuk digunakan oleh semua orang lain. Bahkan urutan properti sudah terdaftar.
Ya, jika Anda menulis properti CSS dengan warna di atas lebar, Anda akan mendapatkan komentar dan PR Anda tidak akan redup. Ini mungkin tampak aneh, karena dalam kebanyakan kasus urutan properti tidak akan mempengaruhi hasil akhir, tetapi kita ingat: banyak proyek, satu tingkat kualitas tinggi. Karena itu, kita harus memiliki urutan maksimum. Di mana-mana. Bahkan urutannya ada di urutan properti.
Saya harus segera mengatakan bahwa itu adalah ide yang baik untuk memperbaiki pesanan. Ini memungkinkan Anda untuk menulis CSS yang lebih terstruktur dan bijaksana. Misalnya, ada aturan untuk mengelompokkan properti. Jika Anda menulis display: flex, maka semua properti terkait (sejajarkan item, konten justifikasi) harus dijelaskan berdampingan untuk membuatnya lebih mudah untuk memahami apa yang terjadi.
Sekarang kita secara bertahap sampai pada kesimpulan bahwa kita meletakkan semua aturan ke dalam linter untuk mengurangi jumlah komentar tidak kritis pada ulasan, serta memungkinkan pengulas untuk fokus pada hal-hal yang sangat penting, misalnya, arsitektur.
Omong-omong, konfigurasi linter kami ada di domain publik, mungkin mereka akan berguna bagi Anda. Unduh konfigurasi .
Distribusi tugas
Jadi, komunikasi sudah mapan, aturan mainnya sudah diperbaiki, tapi bagaimana cara memainkannya? Mengapa Vanya hanya melakukan tugas-tugas sederhana, dan Pete menjadi rumit, dan bahkan dari sebuah proyek yang tidak ada yang terlibat dalam waktu yang lama?
Memang, ada proyek yang:
- terus-menerus membutuhkan tata letak;
- terus-menerus membutuhkan tata letak dan semuanya terus berubah;
- yang sudah lama ditulis dan mulai berkembang lagi.
Ini menimbulkan pertanyaan lain: bagaimana mendistribusikan tugas secara adil dan merata?
Apakah keadilan diperlukan?
Anda dapat menggunakan sumber administratif dan mengatakan dengan kaku: "Petya, Anda melakukan tugas-tugas ini, tidak ada yang menyukainya, tetapi untuk sekarang kami akan mengambil yang menarik ini dengan Vanya."
Ini, tentu saja, dapat dilakukan, dan untuk beberapa waktu bahkan akan berhasil. Tetapi ada beberapa kelemahan dari ini:
- Petya mulai sedikit membenci kita, yang berarti dia kurang terlibat dalam kerja tim;
- Suatu hari Petya mungkin terbakar dan berhenti, bahkan tanpa peringatan terlebih dahulu, dan kita akan memiliki lubang dalam sumber daya kita;
- Petya memiliki keahlian terbesar dalam proyek-proyek kompleks, dan sekarang masing-masing yang tersisa akan membutuhkan banyak waktu untuk memahami proyek-proyek Petit.
Sepertinya Anda tidak boleh melakukannya. Tetapi apa yang harus dilakukan?
Pertama, Anda perlu memilih beberapa grup yang dapat digunakan untuk memecah semua tugas yang masuk.
Ini terlihat seperti ini untuk kita.
Proyek A, B, dan C secara konstan menghasilkan ratusan tugas, dan siap memberi kami pekerjaan untuk tahun yang akan datang. Dan ada proyek lain yang datang dengan satu atau dua tugas setiap beberapa minggu. Karena keterbatasan sumber daya, kami setuju bahwa satu orang terus-menerus mengerjakan proyek A, B dan C, dan orang keempat mengerjakan semua tugas dari proyek lain. Tampaknya semua sumber daya didistribusikan, Anda dapat bekerja.
Tetapi sekali lagi, kita mengalami masalah ketika seseorang yang terus-menerus mengerjakan proyek A tidak tahu apa yang terjadi di proyek C.
Untuk mengatasi masalah ini, kami memperkenalkan tugas dua minggu.
Dari hari Senin dan dua minggu ke depan, Petya bekerja di proyek A, kemudian melanjutkan ke proyek B, lalu C - jadi dia secara teratur mengubah kegiatannya.
Itu terlihat seperti ini:
Apa yang ini berikan pada kita? Pertama, semua orang sama-sama berpengalaman dalam semua proyek dan dapat dengan mudah saling menggantikan. Kedua, ada proyek yang lebih menarik dan ini adalah tugas favorit mereka, yang selain memotivasi, memberi kekuatan dan tidak memungkinkan untuk kehabisan tenaga dari pekerjaan yang sama.
Selain itu, untuk menghapus peraturan manual, kami sepakat bahwa proyek itu sendiri menetapkan prioritas untuk pekerjaan. Yaitu, kami memilih orang tersebut, dan dia melakukan tugas yang diberikan proyek. Ini sangat mudah: kita tidak perlu memprioritaskan tim dan memikirkan urutannya. Ini dilakukan oleh proyek, tim dan manajer produknya.
Benar, Anda dapat menemukan masalahnya. Satu orang memahami tugas-tugas semua proyek yang datang secara tidak teratur - dia yang tidak mengerjakan salah satu proyek besar dengan tugas saat ini.
Tampaknya dia bisa dibombardir dengan tugas, dan pelanggan akan ditarik dari semua sisi dan akibatnya tidak akan diizinkan untuk bekerja. Untuk menghilangkan risiko ini, kami memiliki halaman khusus dengan tugas-tugas seperti itu. Ketika tugas berikutnya muncul, tugas itu ditambahkan ke akhir daftar.
Ini adalah contoh halaman semacam itu:

Semua tugas dan statusnya terlihat di situ. Setiap saat, pelanggan dapat melacak kemajuan dan memahami kapan kira-kira tugasnya akan berjalan.
Tentu saja, setiap orang memiliki tugas yang paling mendesak dan semua orang ingin keluar dari giliran. Khusus untuk situasi seperti itu, mekanisme berikut diciptakan: jika pelanggan "terbakar" dan dia ingin memberikan tugasnya untuk bekerja lebih cepat, dia harus setuju dengan orang yang ada di daftar di atasnya. Jika dia siap memberikan tempatnya - tidak ada masalah, bertukar tugas dalam daftar.
Anda mungkin berpikir bahwa ini adalah titik yang agak lemah dan harus mengisi kami, tetapi selama enam bulan sekarang telah berhasil.
Tentu saja, situasinya mungkin berbeda, tetapi tidak ada yang membatalkan peraturan manual dan sumber daya administratif;)
Kontrol kualitas
Setiap orang membuat kesalahan. Saya belum melihat satu pun pengembang atau perancang tata letak yang tidak pernah salah. Bagaimana seseorang bisa meminimalkan jumlah kesalahan seperti itu?
Untuk melakukan ini, kami secara aktif menerapkan praktik ulasan desain. Apa yang termasuk di dalamnya?
Ketika pekerjaan pada tata letak selesai, perancang tata letak memanggil dengan perancang dan menunjukkan kepadanya hasil dari pekerjaan di layarnya. Ini memungkinkan Anda untuk memecahkan beberapa masalah sekaligus:
- Perancang dapat secepat mungkin melihat kesalahan perancang tata letak dan kesalahannya sendiri jika ketidakakuratan merayapi tata letak.
- Segera atasi masalah seperti "bagaimana seharusnya ditampilkan ketika Anda mengarahkan atau fokus?". Kecuali, tentu saja, kondisi ini tidak tercermin dalam desain.
- Dan nilai tambah besar: desainer dapat melihat bahwa hasilnya tidak terlihat optimal, dan melakukan perubahan online.
Pada awal pelaksanaan praktik ini, kami takut pekerjaan akan melambat karena:
- perancang tidak ada di tempat;
- perancang itu sakit, dan tidak ada orang lain yang tahu;
- selama peninjauan, perancang memutuskan untuk sepenuhnya mengubah tata letak.
Namun dalam praktiknya, pendekatan ini telah bekerja dengan baik, dan kami telah menerapkannya pada sebagian besar proyek.
Ulasan
Kami memompa tim tata letak kami dengan baik, Anda bisa bekerja! Tapi tidak, ada satu hal lagi. Kami telah mengadopsi praktik cross-review.
Ini berarti bahwa siapa pun dapat meninjau PR Anda dan meninggalkan komentar pada mereka. Hanya, sejujurnya, banyak pengembang tidak suka mempelajari tinjauan tata letak dan siap untuk memberikan peningkatan "tanpa melihat" - jika hanya tata letak akan turun sesegera mungkin dan mereka dapat menulis lebih banyak logika.
Untuk mencegah hal ini, kami memiliki aturan: setiap perancang tata letak diperlukan untuk menambahkan semua perancang tata letak ke semua permintaan kumpulannya.
Dan PR tidak dapat dibekukan jika Anda belum menerima setidaknya satu upruv dari seter lain. Tidak buruk, tetapi tampaknya ada risiko kemacetan dalam bentuk sejumlah besar PR, karena karyawan dapat melihat kode rekan kerja secara tidak tepat, yang akan memperlambat pekerjaan.
Untuk mencegah hal ini, kami memiliki pengingat tentang perlunya melakukan tinjauan terhadap kolega kami dua kali sehari, pada pukul 10:00 dan 15:00. Dan ketika Anda pergi ke simpanan, Anda melihat berapa banyak PR yang menunggu analisis Anda.

Kami mencoba untuk menjaga angka ini seminimal mungkin. Untuk ini, kami memiliki aturan review yang bagus. Jika Anda telah melihat melalui PR sampai akhir, ia tidak memiliki konflik dan tidak memiliki status "sedang bekerja" - itu berarti Anda harus memiliki reaksi: baik "naik" atau "untuk revisi". Jika Anda meninggalkan komentar, tetapi tidak menunjukkan posisi Anda, itu berarti Anda belum menonton PR sepenuhnya.
Plus, ada tanggung jawab pribadi tambahan untuk permintaan kumpulan mereka. Apa artinya ini?
Anda melakukan tata letak, semuanya sesuai dengan tata letak, semuanya indah, tetapi tidak ada fungsi. Dan tidak mungkin memasukkan hal seperti itu ke dalam makanan. Jadi, Anda tidak bisa membeku dalam pengembangan. Dan Anda memiliki PR terbuka, ada banyak aruv dan tampaknya Anda telah melakukan pekerjaan Anda. Selain itu, pengembang mendatangi Anda dan berkata: "Mari kita tunggu beberapa hari, saya akan mengunggah logikanya langsung ke cabang Anda - dan segera bekerja fitur dan itu bisa diingkari?" Tapi tidak! Jadi tidak berhasil. Dan seharusnya tidak.
Pekerjaan tidak dianggap selesai sampai PR Anda dengan tata letak tidak padam. Apa yang harus dilakukan dalam situasi seperti itu? Ya, ini sangat sederhana: pengembang membuat cabangnya sendiri, tempat ia berencana untuk menulis logika, dan kami meniru tata letak di cabangnya. Untung
Masing-masing penyetel secara independen memonitor PR-s mereka dan menangani situasi seperti itu: ketika tidak ada tempat untuk dibekukan, build tidak dikumpulkan, bisnis memutuskan untuk menunda tanggal peluncuran dan seterusnya. Karyanya belum selesai sampai PR mati.
Dari waktu ke waktu kami mengatur survei tentang panggilan telepon: siapa yang memiliki berapa PR yang terbuka dan berapa PR yang perlu ditinjau. Jumlahnya secara konsisten kurang dari 10, kami berusaha untuk menjadi kurang dari 5. Jajak pendapat tersebut mengkonfirmasi bahwa pengingat otomatis dalam obrolan masih berfungsi dan karyawan merespons mereka.
Sekarang ada perasaan bahwa pekerjaan dibangun dengan sangat baik, Anda dapat duduk dan tanpa henti melihat bagaimana tugas-tugas ditransfer dari satu status ke status lainnya (omong-omong, kami benar-benar mengikuti ini), tetapi bagaimana dengan pengembangan? Tabel pengaturan huruf? Tidak tahu bahwa web tidak tinggal diam?
Pengembangan
Agar tim dapat mengembangkan tidak hanya dalam hal keahlian antar proyek, tetapi juga dalam hal keterampilan, kami memiliki tugas mingguan khusus yang disebut Green Flag. Jika minggu ini Anda adalah bendera hijau, maka Anda menghabiskan waktu setiap hari mencari informasi yang berguna tentang pengaturan huruf, pendekatan atau hanya teknologi dan melemparkan tautan ke artikel di obrolan pribadi kami. Ini biasanya dilakukan di pagi hari atau segera setelah makan siang.

Informasi diambil pada sumber daya favorit Anda, pada "Habré" yang sama misalnya. Ini cukup nyaman, karena Anda tahu bahwa kolega Anda melemparkan tautan ke artikel teratas ke obrolan setiap hari, dan Anda hanya perlu membacanya di malam hari setelah bekerja.
Penting untuk disebutkan segera: terlepas dari kenyataan bahwa semua orang mendukung kegiatan ini, banyak yang lupa melakukannya setiap hari. Oleh karena itu, kami memperkenalkan tugas lain, juga mingguan, yang dirancang untuk memotivasi bendera hijau agar tidak melupakan tugas kami. Dan jika Anda masih lupa bendera hijau, inspektur dapat membuang info dari dirinya sendiri. Menariknya, tetapi pendekatan ini bekerja tanpa kegagalan dan kadang-kadang kedua petugas memasukkan validitas ke dalam obrolan.
Jika Anda takut dengan jumlah tugas, maka semuanya tidak terlalu buruk. Satu karyawan yang stabil memiliki satu tugas - ini adalah proyek tempat dia bekerja. Dan secara berkala jam tangan kedua ditambahkan - bendera hijau atau motivator bendera hijau - yang, pada kenyataannya, hanyalah formalitas.
Ringkasan
Jadi, kami baru saja mengumpulkan dari awal tim yang didistribusikan, dan yang paling penting, tim tata letak yang berfungsi. Mari kita ingat apa yang membantu kita:
- Obrolan pribadi memungkinkan Anda untuk dengan cepat menyelesaikan semua masalah yang muncul.
- Transaksi harian membantu Anda melacak siapa yang melakukan apa dan memahami gambaran besarnya.
- Aturan kerja yang tetap dan kepatuhan yang ketat pada mereka memungkinkan menjaga konsistensi kode di semua proyek.
- Pergeseran dua jam setiap hari memungkinkan Anda untuk berada dalam konteks semua proyek dan memberikan distribusi tugas yang adil dan otomatis.
- Tinjauan desain memungkinkan Anda untuk memastikan kualitas hasil yang mencapai klien.
- Kami memastikan bahwa tinjauan dilakukan secara teratur dan bahwa pekerjaan yang belum selesai tidak menumpuk.
- Harian yang bertanggung jawab melempar artikel baru ke obrolan untuk pengembangan, membahas pendekatan dan praktik baru, mencoba, menerapkan.
Semua ini membantu kami untuk menutup tugas dan menyediakan tata letak untuk seluruh unit. Dan kegiatan apa yang ada di tim Anda?