İşlevsel bir özelliği hızlı ve verimli bir şekilde nasıl yazarım


17

Bu yüzden Joel'in özellikleri hakkında bazı muhteşem makaleler okudum . (2000 yılında yazılmıştır !!) 4 bölümün tamamını okudum, ancak teknik özelliklerimi yazmak için bazı yöntemsel yaklaşımlar arıyorum .

Çok iyi bilinen bir finans şirketi için bu oldukça karmaşık uygulama (veya uygulama ailesi) üzerinde çalışan tek yalnız geliştiriciyim.

Hiç bu kadar ciddi bir şey yapmadım, kötü bir özellik, bazı türlere genel bir bakış gibi bir şey yazmaya başladım ve zamanımın bir sürü israf etti.

Ayrıca müvekkilim için 3 mockup-thingies yaptım, böylece ne istediklerini iyi anladım. Ayrıca bir önizleme yayınladı (en temel iş akışı ile bir atmak çalışma uygulaması) ve ben sadece çok temel / temel sistemlerin bazılarını yazdım ve test ettim.

Sanırım şimdiye kadar yaptığım hata ayrıntılı bir spesifikasyon yazmak değil, bu yüzden şimdi anlıyorum.

Yani her şey

  • Bir MVC web sitesi (yöneticiler ve veri görüntüleme için)
  • 2 Silverlight modülü (2 özel görev için)
  • 1 masaüstü uygulaması

Tamamen zaman, kaynak ve bu işi hızlı bir şekilde yapmam gerekiyor, ayrıca, bu adamların eşit derecede hızlı ve acısız bir şekilde okuduğundan emin olmalıyım.

  • Peki bu konuda nasıl gideceğim , herhangi bir ipucu, herhangi bir gerçek dünya öğesi arıyorum , genellikle nasıl yapıyorsunuz?
  • Her iletişim kutusunun / formun / sayfanın alaycı bir görünümünü hazırlıyor musunuz?

Ben kukla bir ASP.NET Web Formları projesi yapmayı, sonra klasörlerde HTML dosyalarını doldurma ve benim MVC URL yapısı gibi görünmesini düşünüyorum.

Sonra web sitesi için spec bir bölüm olması ve bir screenie ile var her URL için bir sayfa yazmak.

Benim kazanma formları uygulaması için, bir demo Win Form projesi için biraz yaptım, daha sonra gerçek uygulamada yaptığım gibi bir iletişim kutusu veya her şeyi yapılandırabilir miyim ve sonra ekran görüntüsü?


Bu soruyla ilgili biraz bilgi için. Her zaman iyi çalışmış çılgın bir kod atlamak tür bir adam oldum, ama üzerinde çalıştığım uygulama için, sadece karmaşık değil, çok çok tanınmış ve büyük bir şirket için ve onu almak zorundayım sağ!

(Ve şimdiye kadar iyi gidiyor, bugün önizleme sürümü bir sürü insanın sevdiği bir demo verdi !! = D)

Başlangıç ​​tasarımını doğru yaparsam, bu şirketle harika bir işim olacak, zaten ödemeye hazır oldukları yeni "harika" özellikler hakkında birçok düşünce var.


Bu senin için mi? Müşteri talep etti mi? Takıma daha fazla geliştiricinin katılmasını mı bekliyorsunuz?
JeffO

Bu benim gelişimime yardımcı olmak için. Arada sırada tartıştığımız zaman bana "oh xxx veya yyy yapmalıyız" diyen rastgele finans adamları alıyorum, o zaman bazen bazı toplantılarda insanlar rastgele özellikler öneriyorlar, en kötü yanı, asla uygun bir yolum yok Ekstra ücretler için ekstra özellikler ekleyerek benim daha önce sözde spec sadece bir özetten başka bir şey oldu! Temelde çoğu sorun var Joel Spolsky, bir özellik yazmadığınızda makalesinde bahsediyor.
Gideon

Yanıtlar:


22

Makalenin 2. bölümünü veya örnek özelliklerini okudunuz mu? Bir şartname yazarken birkaç önemli prensibi somutlaştırırlar.

  • Fazla tasarım yapmayın. Spesifikasyonu yazmanın amacı, bir hata olduğunda ne olduğu ve kullanıcının sistemle nasıl etkileşime girmesini beklediğiniz gibi önemli şeyleri düşünmeye zorlamaktır. Çalışabileceğiniz bir şey elde etmek için olağanüstü ayrıntılara girmeniz gerekmez. Yine de ayrıntılara ihtiyacınız var.
  • İletişim ile ilgili. Spesifikasyonun amacı, ne yapılması gerektiği konusunda ortak bir anlaşmaya varmaktır. Hukukun gücünü gerektiren zırhlı bir belge değil. Bu, müşterinizi ve müşteriniz için onlar için ne yapmak istediğinizi daha iyi anlamanıza yardımcı olacak bir araçtır.

En iyi tavsiye, ne yapmanız gerektiği konusunda net olmanız için yeterince yazmanızdır . Açık sorularınız varsa, bunları spesifikasyonda belgeleyin ve müşterinizden yanıt alın. Neyin gerekli olduğunu anladıktan sonra durun .

Dikkatli değilseniz, belge kendi hayatını alacaktır. Tek bir amacı olmalı, belgeye bu amaca uygun olmayan hiçbir şey eklemeyin. Bakımı kolay olmalıdır. Tüm ayrıntılı sınıf diyagramlarınızla birlikte bir birim testine ait diğer ayrıntılarla birlikte varsa, ya bakımdan çok fazla olduğu için belgeyi terk edersiniz ya da projeyi asla tamamlamazsınız.


Yazma Hakkında

İnsanlar için yazmak zor . Aslında, yazmayla ilgili en zor iki şey nasıl başlanacağını bilmek ve ne zaman duracağını bilmek . Başlangıçta sadece bir şeyler yapmalısınız. Bu iki zor yönle başa çıkmak için tavsiyem:

  • Kitlenizi tanıyın. Spesifikasyonu kim okumalı? Sadece siz ve müşteriyseniz, o zaman yazdığınız kişi budur. Testten sorumlu biriniz varsa, onlar için de bazı notlarınız olacaktır.
  • En yüksek öncelikli şeyle başlayın. Kimlik doğrulama önemli olmakla birlikte, giriş ekranı muhtemelen çoğu insanın yazmak zorunda olduğu en iyi anlaşılan parçadır. Bunun yerine, kullanıcılarınızın en çok ihtiyaç duyduğu özelliğe odaklanın. Bilirsiniz, onlara para kazandıran ve yazılıma ihtiyaç duyduklarının nedeni budur.
  • Sorular geldiğinde ve yanıtları aldıkça ayrıntıları doldurun. Müşteri düzenlemeden memnun olana kadar gerektiğinde peçete çizimleriyle işleri gerçekten basit tutun. Hangi bilgilerin yer aldığını ve nasıl kullanacaklarını bilmek önemlidir.
  • Daha fazla değer eklemek değer vermezse durun. Spesifikasyonda istemediğiniz bazı detaylar var. Doğru şeye sahip olduğunuzu bilmeniz gerekir. "Albaquerque" adlı bir yöntemin içinde bir değişken olduğunu bilmenize gerek yoktur. Bu kaynak kodu, şartname şeyler değil.

Cevabınız için +1 teşekkürler. Evet. Joels makalesinin 4 bölümünü de okudum. Tüm screenie süreci hakkında, önce kukla (düz görünümlü) sayfalar ve formlar oluşturabilir miyim? Ne yazmam gerektiğini bilmek için? Yoksa yazmaya mı başlıyorum?
Gideon

Bildiklerinizle başlayın. Basit tutun, böylece güzel yapmak için bataklık yapmayın. Eğer o yoldan giderseniz başkasının yardımına ihtiyacınız var (sahip olmadığınız zaman alıyor). Güzel özellikleri sindirmek daha kolay olsa da, önünüzde çok iş var.
Berin Loritsch
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.