Yeni bir projede planlama ve programlamanın doğru karışımı


10

Yeni bir proje başlatmak üzereyim (bir oyun, ama bu önemsiz). Temel fikir kafamda ama tüm detaylar değil.

Planlama yapmadan programlamaya başlamak istemiyorum, ama sadece bunu yapmak için dürtü ile mücadele ediyorum. Sadece düşünebileceğim yeni bir özellik gerektirdiğinden, tüm uygulamayı yeniden düzenlemeyi önlemek için biraz planlama yapmak istiyorum. Öte yandan, birden fazla ay planlamak istemiyorum (boş zaman) ve çünkü bu zamanda motivasyonumu kaybedeceğime dair bir korkum var.

Aradığım şey, ikisini de diğerine hükmeden birleştirmenin bir yoludur. Projeyi scrum şeklinde gerçekleştirmeli miyim? Kullanıcı öyküleri oluşturmalı ve sonra bunları gerçekleştirmeli miyim? Özellik odaklı çalışmalı mıyım? (Scrum ve klasik "kodlama şartnamesi" şekilde deneyimim var.)

Güncelleme : "Tıklama mankeni" ile başlayıp daha sonra işlevselliği uygulamaya ne dersiniz?

Yanıtlar:


5

Doğru yoldasın. Aylarca planlama yapmaya gerek yoktur, ama kesinlikle bir tür planınız olmalıdır.

Planlama, düşüncelerinizi organize etmenize, ihtiyaç duyabileceğiniz teknolojileri tanımlamanıza, sorunlu noktaları netleştirmenize ve ölçülebilir hedeflere girebileceğiniz bir yol haritası vermenize yardımcı olacaktır.

Buna ek olarak, yalnızca bunun zaman kaybı olduğunu keşfetmek için birkaç günlük planlama yapabilirsiniz. Belki planlama yaparken, liginizden çıktığını veya yapmaya çalıştığınız şeyin pazarlanamayacağını fark edersiniz. Bunu şimdi bulmak daha iyidir, böylece zamanınızı sadece ormanda kaybolmak için bu yolda aşağı gitmek yerine, beyninizi büken sahte kod sarmaşıklar ve yanıltıcı mantığın izleri ile çevrili olmak yerine, sahip olduğunuz diğer fikirlere yeniden yatırım yapabilirsiniz. düğüm haline getirin.


Hedefleme platformu benim günlük işim, bu yüzden kullanmak istediğim teknolojilerin çoğunu biliyorum. Sanırım basit bir scrum ve temel bir plan kullanacağım. Bu yüzden bazı birikimlerden başlayabilir ve her yinelemede planlamayı yapabilirim.
WarrenFaith

Yazım "planlama" yanlış. Sadece yorumunuzu düzenleyemediğim için bunu işaret edeceğimi düşündüm :) Ama evet, bence scrum harika bir yaklaşımdır, esnekliği korur ve projeye devam etmek için çabaya değip değmeyeceğine karar verme şansı verir.
jmort253

Oo Almanca tam tersi: bir n ile planlama ve iki m ile programlama ...: D Teşekkürler!
WarrenFaith

@WarrenFaith - Üzgünüm! Bu benim etnosentrizmim ortaya çıkıyor! Benim
hatamı

11

Uygulanabilir minimum ürünü planlayın ve uygulayın. Ardından kullanıcılarınızı dinleyin ve bir sonraki mantıksal geliştirmeyi planlayın ve uygulayın. Tekrar et.


3
.... ve havalı olacağını düşündüğünüz bir şey için bir fikriniz olduğunda, fikri scrum-backlog'a yazın, ancak minimum uygulanabilir ürün yapılana kadar uygulamayın.
k3b

ana soru hala ne kadar derin planlamam gerektiğidir. Bana bu tavsiyeyi de verebilirsen, cevabı kabul ettin.
WarrenFaith

1
@ WarrenFaith: Özellikler - >> Öyküler - >> Test Durumları.
Steven A. Lowe

4

Programınızı planlamak ve tasarlamak için ne kadar zaman geçirirseniz geçirin, her zaman yine de bölümlerini yeniden yazmanız gerekir. Yerçekimi gibi, varlığını inkar etmek akıllıca değil.

Yeniden düzenlemenin gelişimin normal bir parçası olduğunu ve bunu ne zaman yapacağınıza karar vermenin bir anlamı olduğunu anlamalıyız . Uzun süre bekleyin ve tam bir yeniden yazma için yalvaran büyük miktarlarda spagetti ile bitirin. Komik değil.

Benim önerim biraz planlamak ama kod asap ve refactor, refactor, kod formda tutmak için refactor kodlamaya başlamaktır. KURU prensibi (kendinizi tekrar etmeyin) bunun için harika bir göstergedir.


Cevabın için teşekkürler. Yeniden düzenlemenin olağandışı bir şey olmadığını biliyorum ama kaçırılan planlamanın neden olduğu yeniden düzenlemeyi önlemek istemiyorum.
WarrenFaith

@Warren - plan yapmamak yeniden düzenlemeyi engellemez. Çözümü bilgisayarda kodlayabilir veya başınıza veya kağıda kodlamayı deneyebilirsiniz. Bence her ikisi de etkisiz. Daha sonra değiştireceğinizi bilerek kodlamaya başlayın.
kevin cline

@kevin cline: Tamam, yeni özellik veya iyileştirmeler için mevcut kodu yeniden düzenleme ve hemen hemen tüm uygulamayı yeni bir özellik için yeniden yazma arasında fark yaratalım.
İlkiyle yaşayabilirim

@WarrenFaith: Kod sıkı ve formda olduğu sürece, yeniden yazma işlemlerinden kaçınabilmelisiniz. Yeniden yazmayı gördüğüm tek şey, sistemin büyük bir çamur topu (yeniden düzenleme yok) veya temel teknik değişim (platform değişikliği) haline gelmesidir.
Martin Wickman

3

Bu pozisyondayken bazen TDD'den (test odaklı geliştirme) yararlanır ve geliştirdiğim sistemin en karmaşık kısmı için bazı testler planlamaya başlarım. Alternatif olarak yine en karmaşık alanlar için bazı üst düzey sahte kodları bir araya getirebilirim. Bu sürecin bana gevşek bir eylem planı verdiğini ve hangi alanların en çok zaman alacağını belirlememe yardımcı olduğunu düşünüyorum.

Benim için bu yaklaşım işe yarıyor çünkü kodlama ve planlama arasında bir yerde yaşıyor. Test fikirlerinizi ve / veya sahte kodunuzu aldıktan sonra, her mantıksal bölüm üzerinde çalışabilir ve kodu uygulayabilirsiniz. Öncelikle önerilen bir çözümün en zor kısmını ele alıyorum, çünkü tipik olarak en zor kısmı uygulamanın temel özelliğidir ve her zaman çanları ve ıslıkları geciktirebilirsiniz.

Kodun çoğunun kafanızda olduğunu ve dalmaya ve programlamaya hazır olduğunuza yorum yaptığınızdan, bu yaklaşımı kullanmak, zihniniz bir bütün olarak sistem tarafından bulanıklaşmadan her bölüme odaklanmanıza yardımcı olabilir.

Özetle özetlemek gerekirse, "sahte kod ve / veya TDD planları ile önce en zor kısmı ele, böl ve fethet" diyebiliriz!


TDD hayranı değilim ama yine de teşekkürler!
WarrenFaith

Ben mutlaka TDD kullanmak demek değil, benim kod "planı" için bir yapı olarak kullandığım bir şey oldu. Bu şekilde doğrudan kodumu yazmaya atlamıyorum ve gerçek kodlamadan biraz uzak olan toplu belgeler / proje planları yazmak için uzun zaman harcamıyorum. Mutlu ortamı bulmakla ilgili. Aynı şeyi prensipte bir kalem ve kağıtla da elde edebilirsiniz. Ayrıca HER ŞEY için bir test yazmadığımı da belirtmeliyim - sadece daha karmaşık alanlar.
BradB

3

Kodu modüler yapmayı deneyin. Planladığınız diğer her şey, bir sonraki yineleme sırasında atılacaktır.


2

En azından fikirlerinizi yazmanızı tavsiye ederim. Projenin büyüklüğüne bağlı olarak çok fazla resmi planlama gerekli olmayabilir. Ancak çok büyükse, kendinize bir baş ağrısından tasarruf etmek ve birkaç gün daha derinlemesine planlama yapmak için harcamak isteyebilirsiniz.

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.