Özellik eklemeyi ne zaman durduracağınızı nasıl anlarsınız?


16

Bir süre önce periyodik olarak yeni girişler için bir xml beslemesini kontrol eden ve mevcut olduğunda kullanıcıyı yeni girişler için uyaran çok küçük bir python betiği yazdım. Bunu kendim için yazdım, bu yüzden bir konsol arayüzü ile rahat olan herkesin kullanabileceği konsol tabanlı bir programdı.

Bir süre sonra diğer insanlara daha faydalı olabileceğine karar verdim ve toparlamaya, girdileri sterilize etmeye, böcekleri çıkarmaya başladım. Senaryoyu yazdığım için onu verimli, doğru bir şekilde nasıl kullanacağımı bildiğimden vb. Oldu. Diğerleri olmayabilir, bu yüzden bir GUI eklemeye başladım. Bu basit bir menü olarak başladı ve daha sonra hem arayüz hem de seçenekler menüsüyle daha dolu bir GUI'ye genişletildi. Daha sonra tekrarlanan aramaları hızlandırmak için daha önce aranmış xml beslemeleri için saklanan kullanıcı tercihleri ​​ve depolama ekledim.

İşlerin yanlış gitmesi durumunda uygulamada hata ayıklamaya yardımcı olmak için günlük kaydı ekledim, uygulamayı seçilen platformum ve geliştirilmiş iletişim özellikleri için mevcut en son kararlı python kod tabanına getirdim.

Kodumu açık bir şekilde düzelttim ve yorumladım ve yine de alfa test kullanıcılarına sunmadan önce uygulamayı geliştirmek için yapılabileceğini düşündüğüm şeyler var. Orijinal 20-30 satır senaryomdan çok uzak bir ağlama. Beklediğim şey, kavram kanıtından kabul edilebilir bir kullanım programına gitmek için sadece bir iki saatimi alacaktı. (Ben hala bir çaylağım, ve şeyler beni uzun zaman alıyor, ama yine de ....)

Bir şey eklemeyi / değiştirmeyi / düzeltmeyi ne zaman bırakacağınızı ve bebeğinizin açıkta sürünmesini nasıl bilebilirsiniz?

Yanıtlar:


8

Son başvuru tarihine ulaştığınızda.

Eğer son teslim tarihiniz yoksa, bu sizin probleminiz ...

İşte böyle çalışırım:

  1. Ürün birikimime yeni özellikler / hatalar ekliyorum.
  2. İş değeri ve tahmini olarak tüm ürün birikimine öncelik veririm (son proje kişisel proje için isteğe bağlıdır).
  3. Çalışma zamanını kendime ayırıyorum. Çıkış tarihi o zamanın sonudur.
  4. Listedeki ilk ile başlıyorum. Bir zamanlar bir özellik üzerinde çalışıyorum. Tamamlanması için, dokümantasyon da dahil olmak üzere bir özellik gerçekten tamamlanmalıdır (bir özelliğin sonunda, ürünü potansiyel olarak gönderebilirim).
  5. Ayrılan zamanı, ayrılan zamanım tükenene kadar alıyorum.
  6. Bir özellik oluştururken zaman harcanırsa, geçici olarak atarım.
  7. Tahsis edilen zaman tüketildiğinde, en son yapıyı alıp onunla bir sürüm yaparım.
  8. İşlemi 1. noktadan tekrarlıyorum.

Hmm buradaki iş akışını çok seviyorum. Bu bir hobi projesi, para kazanmaya çalışacağımdan emin değilim, ücretsiz sunulması veya açık kaynak yapılması daha olasıdır.
fearoffours

4
Değer, yukarıdaki önerilen iş akışında para anlamına gelmez. Değerin ne olduğuna siz karar verirsiniz.

Tamam bu harika. Bugünkü yazıyı gördüğümden beri bunu uyguluyorum. Son teslim tarihim Çarşamba 15:00 ve işler iyi gidiyor! İşlerin nereye gittiğine ve üzerinde çalıştığım konuya daha fazla güveniyorum. Ben bu sürümden önce yapılacak şeyler (senaryonun üstündeki yorumlarda) ve daha sonraya bırakılabilir şeyler öncelik verdim. Ve bir anda bir göreve odaklanmış olmamı sağlamak için üzerinde çalıştığım özelliği yazıyorum. Teşekkürler!
fearoffours

3. I allocate work time to myself. The release date is the end of that time.@Pierre 303, timeSaat mi demek istediniz? Yani gece yapıları mı? veya tam bir sprint gibi zaman?
Kenan D

@LordCover: Örneğin, ürün üzerinde çalışmak için bana 3 hafta (haftada 5 gün, günde 8 saat) atarım. 3 haftanın sonunda gönderiyorum.

3

Bir SRS yapın ve ardından gereksinimlere göre kodlayın. SRS'de belirtilen tüm hedeflere ulaştığınızda, ürününüzü durdurup test etme zamanı.


Hm iyi bir nokta. Şu anda amacı hakkında hiçbir şey yazmadım.
Ekim'de

SRS iyi ama kişisel bir projedeki tek kişilik bir takım için biraz abartılı. Dokümantasyon iyi ama bu tür bir proje için henüz bir SRS'ye ihtiyaç duyulduğunu sanmıyorum.
Chris

@Chris - Bir SRS her zaman iyi bir şeydir. Kişisel bir proje olan ve bugün ücretsiz olarak piyasaya sürülen şey, hala onlarca kişi tarafından yazılmış ve ücretsiz bir yazılımdır. Dokümantasyonun neden önemli olduğuna dair harika bir örnek Facebook, dokümantasyonun erken aşamalarında yazılması ve dokümantasyonun güncellenmesi o zaman bugün yazmak daha kolaydı. Tasarımınızı yazamıyorsanız, özelliğin nasıl çalıştığını gösteren tasarımı, belgeleri açıklayın, ardından nasıl kodlayabilirsiniz?
Ramhound

2

Kısa vadede, güvenilir bir şekilde çalışan ve çökmeyen bir şeyiniz olduğunda. O yapmaz bile her şeyi o olabilir süresiz bunun üzerinde çalışan eğer yok. Demiş gibi nakliye bir özelliktir . Güvenilirlik ve kısıtlı özellik seti, temel işlevselliğin gerçek dünyada gerçek insanlar tarafından test edilmesi için bir fırsat verir, bu da hiç düşünmediğiniz şeyleri kodunuzu kırmayacak şekilde kırmayacak şekilde bulacaktır. Ne kadar az özelliğe sahip olursanız, bu noktada, bu erken sorunları düzeltmek o kadar kolay olacaktır. Temel işlevsellik daha güvenilir bir şekilde çalıştığından, en önemli ve merkezi kodunuzun hala iyi çalıştığı bilgisiyle diğer "sahip olmak güzel" öğeleri uygulamaya başlayabilirsiniz.

Uzun vadede: Kullanıcılarınızın (ve elbette sizin) ihtiyaç duyduğunuzda yeni özellikleri hızlı ve kolay bir şekilde uygulamasını sağlayacak eklenti sistemini tamamlayıp belgelediğinizde. Bu, tüm eklentilerden sonra eklemeniz gereken son özellik olmalıdır.


1

Bekleyen özellikler olsa da, yazılımınızın kararlılığından emin olduğunuzda bir sürüm alın. Kararlılık özelliklerden daha önemlidir. Geri bildirim alın, mevcut özelliklerle birleştirin ve ne zaman ve ne zaman sunulması gerektiğine karar verin!


1

Bir projeye her zaman ve her zaman hemşire olabilirsiniz.

Çok iyi bir kural, asla onaylanmış bir kullanım durumunda olmayan şeyleri eklememenizdir. Bu, sahip olmak güzel, ancak kimsenin kullanmadığı birçok şeyle karşılaşmamanızı sağlar. Onaylamak, sizden başkalarının projenizde gerekli olduğunu kabul etmesini sağlar.


1

Neden özellikler eklediğinize bağlıdır. Proje sahipleri bunu istiyor mu? kullanıcılar? QA? Programcılar?

  • Yapmanız gereken özellikleri ekleyin.
  • Önemli özellikleri gözden geçirin.
  • Sahip olması güzel özellikleri yok sayın.

Programın amacına odaklanın ve amacına odaklanın. Amacını genişleten özellik talepleri, bir İsviçre çakısı olmadan önce iyice sorgulanmalıdır.


Bir ürünü odaklanmış tutma fikrini seviyorum. Bunu yapmaya çalışıyorum ve yine de kendimi işgal etmenin yollarını buluyorum!
fearoffours

2
@fearoffours, Kendi işinizi daha iyi hale getirmenin yollarını her zaman bulabilirsiniz. Amaç, kullanıcılardan kendileri için nasıl daha iyi çalışacaklarını bulmaktır. Gerçek engelleri çözün . Pürüzsüz gerçek pürüzlü noktalar.
Huperniketes

Bu yorumda güzel tavsiyeler, (+1) teşekkürler!
fearoffours

0

Artık özellik eklemeyi bırakmıyorum. Ben sadece ASAP orada app almak ve gerekirse txt dosyaları yazmaya çalışın. Sonra ne zaman duracağım ve ne zaman farklı bir şey üzerinde çalışacağım

Ayrıca i (hack başvurmadan) bir şey yapmak mümkün min yapmak gibi yardımcı olur.


0

Size zaman kutusunu öneririm. Kendinize bir hafta verin. O hafta içinde tamamlayacağınız bir iş listesi oluşturun ve tamamlayamadığınız bir özelliğe sahip olduğunuzdan emin olabilirsiniz.

Haftanın sonunda serbest bırakın. Erken bırak, sık bırak.


ancak bazı özellikler birbirine bağımlı olduğunda ne yapmalı?
Kenan D

0

Güvenilir ve kullanışlı bir şey bulduğunuzda, bırakın. Özellik eklemeyi bırakmak zorunda değilsiniz, ancak kimse orada ne varsa onu kullanırsa, hangi özelliklerin istendiği hakkında daha iyi bir fikir edinirsiniz. Şu anda tahmin ediyorsunuz.

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.