Takıldığınızda farklı özellikler üzerinde çalışmak için atlamak, proje başarısızlıklarının bir kaynağı mı?


16

Kişisel projelerde (veya işte), biri bir soruna takılırsa veya soruna bir çözüm bulmayı beklerseniz, kodunuzun başka bir bölümüne atlarsanız, bunun başvurunuzun iyi bir nedeni olacağını düşünmüyor musunuz? adamcağız ya da kötü olacak ama asla tamamlanmadı?

Git ve her özelliği belirli bir şubeye kodlamadığınızı varsayarsak, üzerinde çalıştığınız 3 farklı özelliğiniz olduğundan ve her birinde çözülmemiş sorunlarınız olduğundan işler elden çıkabilir.

Böylece işiniz bittiğinde, stresli olursunuz çünkü bu asılı sorunlar ve yarı pişmiş kodunuz var.

Bu sorunu önlemenin en iyi yolu nedir? (sahipsen)

Git gibi bir şey kullanarak tahmin ediyorum ve özellik başına bir şube oluşturmak bu kötü alışkanlık önlemek için en güvenli yoldur.

Başka öneriniz var mı?


Bu problemin kendinde mi var? Yoksa bunu bazı takım arkadaşlarınız tarafından mı gözlemliyorsunuz?
Doc Brown

Yanıtlar:


33

Bu bir sorun değil. Şaşırtıcı bir problemden geçici olarak uzaklaşmak, böyle bir problem üzerinde bir atılım yapmanın en iyi yollarından biridir (daha sonra bunu düşündüğünüzde veya bir daha yeni bir perspektif / zihinle oturduğunuzda).

Her zaman kaynak kontrol dalını doğru kullandığınızdan emin olun ve koddaki yarım çözümler hakkında endişelenmenize gerek kalmaz. Bazı insanlar asla ara vermez, ama bu sadece kişisel bir seçimdir. Yine de başkalarıyla paylaşmak için asla ara vermemelisiniz.


Sürüm kontrolü dallanması için +1. 10 problemi bir farkta çözen taahhütler gördük, ancak biri kötüydü, bu yüzden kötü değişimi izole etmenin hiçbir yolu yok.
JBRWilkinson

8

Smp7d'nin de belirttiği gibi , etrafta atlamak eldeki problemden iyi bir zihinsel mola verebilir. Ancak, üzerinde çalıştığınız kodun hala eksik olduğunu unutmamak önemlidir. Nerede kaldığınızı bildiğinizden emin olun.

Smp7d'nin belirttiği gibi, kaynak kontrolü ve dallanma, yeni özellik kodunuzu ayırmanın ve ana kod tabanından nasıl farklı olduğunu görmenin harika bir yoludur.

Sahip olduğum bir öneri, belirli bir yöntem üzerinde çalışıyorsanız, bu yöntemin etrafında iyi adlandırılmış bir birim testi olduğundan emin olun . Ertesi gün / hafta / ay / yıl bu kodu üzerinde çalışmak Bu şekilde, açıkça yöntemi ne söylemek gerekir gerekiyordu şu anda testi geçmek olmasa bile, yapmak.


1
Ortaya koyduğunuz sorunu hatırladığınızdan emin olmak için başarısız bir birim testine (örneğin, bir TODO yorumu yerine) çok pragmatik fikriniz için +1.
Adam Crossland

3

Sorun mu? Uygulamaya çalıştığınız özelliklerin% 10'u için size geldiğinde değil. Bazen farklı bir şey yaptığınızda aklınızı daha net hale getirirsiniz.

Açıkçası, uygulamaya çalıştığınız özelliklerin% 90'ına takıldığınızda bir sorun var - o zaman ya başkalarından yardıma ihtiyacınız var, ya da begonuz olanı bitirmek için patronunuzdan hafif bir vuruşa ihtiyacınız var (elbette, ikincisi Gerçek bir teknik sorundan dolayı sıkışırsanız kontra-üretken olun).

Bu durum için en iyi seçenek genellikle üzerinde çalıştığınız özelliği tek tek uygulanabilen, test edilebilen ve hata ayıklanabilen daha küçük alt özelliklere veya "özellik dilimlerine" ayırmaya çalışmaktır. Benim için, bu özellik dilimlerini, açık sorunları, yapılacak parçaları bir listeye yazmak, onlara öncelikler vermek (A, B, C yeterlidir) ve önce en yüksek önceliğe sahip şeyler üzerinde çalışmak yardımcı olur.


İyi bir nokta. Etrafa atlamak norm olmamalı.
smp7d

3

Benim deneyimlerime göre, "etrafta zıplama" ya da daha açık bir şekilde "Rastgele etrafa zıplama", daha acil bir sorunun, kötü ifade edilmiş hedeflerden biri.

Eğer çok net bir fikriniz varsa yazılı olarak post-it monitörünüzün yanında veya tercih ettiğiniz sorun izleyicide bağlı resmi gözlük notları olsun, o zaman hemen her zaman çalışma gerekeni biliyorum sonraki . Her zaman bir sonraki şeylerden biri üzerinde çalışıyorsanız, o zaman projeyle başarılı olma şansınız olacaktır.

Öte yandan, bir sonraki en önemli şeyin ne olduğuna dair fikriniz pusluysa, aslında üzerinde çalışılacak bir şey bulmak, projenizin çözmeyi amaçladığı soruna hitap eden çok daha zordur veya daha spesifik olarak, ve - bu değişikliğin tamamlandığına ve belirli bir sorunu çözdüğüne karar verirken kurutun .

"Kullanıcı arayüzünü kullanmayı daha kolay hale getirme" gibi bir hedefiniz varsa, bir sonraki düzeltmenin ne olacağını veya "kullanıcı arayüzünü düzeltmeyi" bitirip başka bir şeye geçebildiğinizi söylemek neredeyse imkansızdır. Öte yandan, "bu açılır menüleri otomatik tamamlama ile bir arama alanına birleştirin" ve "" foo "otomatik olarak 'Fooly Marka Baring'i" olarak tamamlanmalıdır "gibi bir hedefiniz varsa, bu problem.

Ne zaman duracağınıza dair net bir fikriniz olana kadar herhangi bir kod yazmayın ve net bir fikriniz yoksa, genel bir özellik için başka bir dal başlatmak yerine bunlardan birini almaya çalışın.

Eğer (kişisel projeler için bile) böyle iyi bir çalışma özelliğiniz varsa, o zaman "etrafta zıplama" tamamen iyi ve güvenli ve kullanışlıdır.


0

Bir sorundan kurtulmak sorunu çözmenize yardımcı olabilir, ancak bağlam değiştirmenin bir maliyeti olduğunu unutmayın. Bunu gerçekten sıkışıp kaldığınızda veya kritik bir görev ortaya çıktığında (örneğin, bir müşteri çalışmazken) yapmaya çalışmalısınız.

Görevler arasında sürekli olarak geçiş yapıyorsanız, birkaç yarı bitmiş özellik ve çok fazla zaman harcayabilirsiniz. Bu yüzden kan-ban gibi uygulamalar devam eden bir çalışma limiti belirlemenizi teşvik eder. Bu şekilde, bir seferde en fazla birkaç görevi tamamlamaya ve böylece verimi artırmaya odaklanabilirsiniz.


0

Bazen paralel olarak uygulanan özelliklerin sayısını sınırlamak yardımcı olabilir. Başka bir özellik bitinceye kadar bu sınır aşılırsa ekstra bir özellik uygulamaya başlamayı reddet. Bu yaklaşıma Kanban denir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.