Bir programcı müşteri için “düşünmeli” mi?


12

Gereksinimlerin toplanmasından nefret ettiğim noktaya geldim. Müşteri kendi iyiliği için çok belirsiz. İstemciye tamamlanması gereken bir iş gösterebileceğimiz çevik bir ortamda, işlevsellikte küçük düzenli düzeltmeler / güncellemeler yapabileceğimiz için çok kötü değil.

Çevrede bir "şelale" türü (önce gereksinimleri, hemen hemen tam ürün sonraki) şeyler çirkin olabilir. Bu tür bir ortam beni sürekli olarak soruları sormaya itti. EG Müşteri "girdiyi otomatik olarak 1 numaraya dönüştür" istemektedir (bir siparişteki Adet'e atıfta bulunarak). Ama düşünmedikleri şey, "girdi" nin basit bir tip-o olabileceğidir. Bir metin kutusundaki "x", "diş macunu" ürünlerinden 1 tane istemiyorum "woops" olabilir. Ancak, havada o kadar çok şey var ki, istedikleri şeyi parçalayarak saatlerce ayakta durabilir ve düzeltebilirim. Bu sadece sağlıklı değil.

Bir şirket için çalışarak, kültürü bize yardımcı olacak çevik modele uyacak şekilde ayarlamaya çalışabilirdim (küçük bir iş yok, ödeme notumun üstünde). Ya da halının altında çirkin detayları süpür ve en iyisini um. Belki de müşterim koda çok yaklaşmaya çalışıyor?

"Müşteri için düşünme" problemini çok fazla soru ile kızdırmadan nasıl ele alınır?


1
Neden bu kadar çok insan şelale hakkında ya şelale tipi ortamlarda çalışmadığını ya da nasıl yapılacağını bilmediklerini gösteren aşağılayıcı yorumlar yapıyor? Şelale bir değil bu kesin ve tek yönlü şartname yapmak gerekir. Akıllı geliştiriciler, özel ihtiyaçları için uyarlamaları gerektiğini bilirler. Gereksinimler net değilse ve kullanıcıya bazı işlevsel işlevler göstermek yardımcı olabilirse (yani çevik yaklaşımınız), prototip denilen şeyler vardır. Agile hayatı kolaylaştırmaz, Agile sadece başlamayı kolaylaştırır, sonu daha da zorlaştırır.
Dunk

@Dunk - şelale hayranlarını rahatsız ettiğim için üzgünüm. Ben proje yöneticisi değilim. Paradigmayı "" ve herkesin şelaleyi anlama ve kullanma şekli olan tanımımla nitelendirdim. Sadece genel olarak anlaşılan paradigmalar ile amacımı açıklığa kavuşturmak istiyorum, onları çöplerle konuşmak değil.
P.Brian.Mackey

1
Mutlaka sadece bir şelale hayranı değilim, ama şelale her zaman bashedilir ve bu yüzden çok az insan ayağa kalkar, bu yüzden üzerime düşeni yapmalıyım. Gerçek şu ki, en iyi şelale yaklaşımları kullanılarak sunulan birçok proje türü var. Güvenlik açısından kritik sistemler, uzay programları, donanımın yazılıma paralel olarak tasarlanması gereken her şey, yalnızca işlevsellik alt kümesinin müşteri için yararsız olduğu herhangi bir proje sadece birkaç örnektir. Demek istediğim şelale başarıyla kullanan çoğu şirket aslında şelale benzeri yaklaşımlar kullanmak ve kesin tanım sadece bir rehberdir.
Smaç

Yanıtlar:


16

Çoğu durumda müşteri, başka neler yapılabileceğinin farkında değildir. İhtiyaç duyduklarını asla bizim için açık bir şekilde tanımlamak zorunda kalmadılar. Akıllarında, açıktır. Kullanıcı girdisini 1 numaraya dönüştürmeyi düşündükleri gerçeği bile, düşünmeye alışık oldukları yolun ötesine geçiyor.

Gerçekten olması gerektiği gibi. Eğer tam olarak istediklerini tam olarak nasıl tarif edeceklerini gerçekten yenilerlerse, onlar için yazmamız gerekmeyecekti. Sonuç olarak, sorumluluğumuz süreç boyunca onlara yardımcı olmaktır. Süreç, kararların alınmasını gerektirdiğinden, karar sürecini kolaylaştırmak için de önerilerimize ihtiyaç duyarlar.

Bu yüzden müşterinin belirsiz ve yüksek seviyede konuşmasına izin verin. İşlerini biliyorlar ve iyi oldukları şey bu (umarım ya da faturalarınızı ödeyemezler ...). Konuştuklarını alın ve bir süre düşünün . Sonunda, ihtiyaç duyduklarının test edilebilir ve tutarlı olmasını sağlarken, istedikleri ve ihtiyaç duydukları şeyleri elde etmek için bazı harika fikirler alırsınız.

Parçalar halinde çalışmanızı tavsiye ederim. Müşteriyle görüştüğünüzde birbiriyle ilişkili bir dizi gereksiniminiz olur ve ardından istediklerini nasıl yapmak istediğinizi açıklayın. Ayrıca neden yaptığınız seçimleri yaptığınızı açıklayın. Müşteri daha sonra verdiklerinize bakabilir ve ince ayar yapabilir. "Bunu hiç düşünmedim, ama bu gerçekten yardımcı olurdu" gibi bir yanıt alırsanız, müşterinin nasıl düşündüğü konusunda nabzınız olduğunu bilirsiniz. NOT: bu özellik değil , müşterinin sahip olduğu sorununa en uygun doğru özellikleri seçiyor .

Müşterinin size açıkça söylediklerine aykırı olabilecek bir şey varsa, nedenini açıklamanın zamanı geldi. Müşterinin hiç düşünmediği bazı sorunları ve alternatifinizin hala onlara ne istediklerini / ihtiyaç duyduklarını nasıl sağladığını, ancak bu potansiyel sorunları önlediğini ortaya çıkarmanız gerekir. Biraz geri çekilebilirsiniz, ancak aynı zamanda onlara gerçekten kullanabilecekleri bir ürün vermeye çalıştığınızı fark ettikleri için müşteri güvenini de arttırır. Biraz geri itme yaparlarsa, bir şeyi neden belirli bir şekilde istediklerini açıklamaya zorlarlar. Bu, müşterinizi daha iyi anlamanıza ve gereksinimleri gerektiği gibi uyarlamanıza yardımcı olur.

Müşterinizi giymenin en hızlı yolu, tüm küçük soruları birbiri ardına sormaktır. Yaklaşımınızı gözden geçirmek için bir dizi toplantı planlamak ve planlamak istiyorsunuz . Teknik gereksinimlere (ekibinizin ürünü oluşturmak için ne kullandığına) sahip olduğunuz ve müşterinizin iş gereksinimlerine sahip olduğu ve bunları ilişkilendirebildiğiniz sürece, boşluğu kapatmanın bir yolu vardır.


4
Ayrıca, çalıştığınız işi anlamak için biraz zaman harcamanız gerekir. İşletmenin nasıl çalıştığını anlarsanız, programlama sorularının çoğu yerine geçecektir.
Michael K

En iyi genel cevap, ancak @whatsisname makale gönderme cevap için harika bir iltifat (olsa başka bir müşteri bulmak ihtiyacına katılmıyorum. Müşteri görüşümü geliştirmek gerekir).
P.Brian.Mackey

6

Çok fazla sorudan 'onları kızdırıyorsanız' daha iyi bir müşteri edinin.

Müşteriler ne istediklerini bilmiyorlar. Gördüklerinde çözümlerini mutlaka tanımayacaklar. Bu bir sorundur ve çözdüğünüz iş budur: gereksinimlerini bir yazılım paketi olarak sunulabilecek bir şeye dönüştürmek.

Bunu yapmak için ne yaptığınızı öğrenmelisiniz. "Metin kutusuna bir sayı koyduklarında ne olmalı" diye sormamalısınız, "Bu sayı neden önemlidir? Ne için kullanılır?" Size işlerini nasıl yaptıklarını öğretmelerini sağlayın. Ve söylediklerini dinlemeyin, çünkü ne istediklerini bilmiyorlar, ama ne yaptıklarını ve gözlerinin nereye gittiğini izleyin .

Daha fazla bilgi için bunu okuyun: http://www.joelonsoftware.com/articles/fog0000000356.html


3

Bir tür şirkette çalışan olduğunuzu varsayarsak, müşteri ile kendiniz arasındaki bu ayrıntılara aracılık etmek için iyi bir iş analistine ihtiyacınız olduğu anlaşılıyor. Bunu gerçekleştirmek için yeterli etkiye sahip olmadığınızı tahmin edeceğim, bu yüzden bir sonraki en iyi tavsiyem müşterilerinizin çalıştığı alan hakkında daha fazla bilgi edinmek olacaktır. İşletmeyi ve birlikte çalıştıkları süreçleri anlayarak, Gevşek ve muhtemelen yanlış bir şekilde tarif etmelerine rağmen, gerçekten ne yapmak istediklerine dair daha iyi bir fikre sahip olacaklar. Bu, istediklerini analiz etmenizi sağlar ve daha sonra ayrı bir toplantıda istediklerinin yorumunu ve onlara gerçekten istediklerini vermek için olası bir öneriyle geri dönebilirsiniz. Aynı müşterilerle sürekli çalışıyorsanız,

Bu çok zor, acı verici, son derece tatsız veya gerçekçi değilse, son tavsiyem iş analistleri olan yeni bir iş aramaya başlamak olacaktır, çünkü biraz çaba sarf etmeden sizin için daha kolay olmayacaktır.


2

Gereksinimleri topluyorsanız, bu soruları sormak sizin işiniz.

Evet müşteri rahatsız olabilir, ancak bu durumda neden "tüm bu soruları" sorduğunuzu açıklamanız gerekir. Bu işletmeyi otomatikleştirecek kodu yazmadan önce işlerini anlamanız gerekir. Kattığı, istemeseydiniz, aslında istediklerini yapmayan bir sistem geliştirmek için çok para harcayacaklarıydı.

Bunun yan etkisi, müşterinin gereksinimlerini düzeltmesine yardımcı olmanızdır.

Bu, Büyük Tasarım Önü veya Çevik yapsanız da geçerlidir.


2

Ne yazık ki, müşteriyi kendisi yapamazsa veya yapmazsa düşünmek sizin işiniz.

Her iki olası sonucu da aldım:

  • müşteri size gerçekten ne söylediğini düşündüğünüz için mutlu, doğru ellerde olduğunu hissediyor veya

  • müşteri onu rahatsız ediyor çünkü onun gereksinimlerini tekrar düşünmeye zorluyorsunuz. Ama sonra, bu tür bir müşteri, er ya da geç, sizi rahatsız edecektir. Başlangıçta onun için düşünmediğinizi çok geç öğrenirse kesinlikle çok rahatsız olacak. Diyorum ki: mümkünse bu tür bir müşteri kaçının :-)


1

Bir Hızlı Uygulama Geliştirme (RAD) de bu sorunu giderir.

İhtiyaç duydukları en iyi tahmininize dayanarak program için çok kaba, işlevsel olmayan bir kullanıcı arayüzü oluşturarak "müşteri için düşünmeye" başlayın. Sonra onlara gösterin ve gerçek ihtiyaçlarını karşılayana kadar tekrarlayın.

Ne istediklerini bilmiyorlar değil. Onlar görene kadar ne istediklerini bilmiyorlar ve bazen ne istediklerini dışlayarak belirleyebilirsin. Yani, onlara istemedikleri bir şey göstermek ve onu nasıl eleştirdiklerine dikkat etmek.

BFUD (Big Up Front tasarımı) ile ilgili temel sorun, müşteriyi ne elde edeceklerini açıkça tanımlayan bir sözleşmeye zorlayarak geliştiriciyi suçlamadan yalıtmasıdır. Ve ne yazık ki bu, projede hiç kimsenin gerçekten neye ihtiyaç duyulduğu konusunda iyi bir fikre sahip olmadığı zamanda yapılır. Sonunda, bu sadece müşterinin yaptıklarınızı kabul etmesini sağlar, çünkü oturumu kapattılar, ama isteksizce.

Eğer müşteri teslimattan memnun değilse bu sadece Pyrrhic bir zaferdir.


1

Müşterinin işi, ihtiyaç duyduklarını size iletmek. İşiniz, neye ihtiyaç duyduklarını programlamak için neye ihtiyaç duyduklarını anlamaktır. Tüm girdileri bire değiştirmek konusundaki açık bir soru, "Tüm girdiyi neden 1 olarak değiştirmesini istiyorsunuz?" Daha sonra müşteri, arkasındaki mantığı açıklayabilir, böylece ihtiyacı anlayabilir ve daha sonra ne istediklerini değil, neye ihtiyaçları olduğunu sağlayabilirsiniz. Neye ihtiyaç duyduklarını bildiğinizden eminseniz, onların düşünme çizgilerini mutlaka "düzeltmeniz" gerektiğini düşünmüyorum. Ürünü ve "Oh! Bu mükemmel" şeyini kullanacaklar. Ancak neye ihtiyaç duyduklarını bilmediğinizden emin değilseniz, ne düşündüğünüzü açıklamanız ve müşteri ile çalışmanız gerekir. Maalesef orada ' sürecin bu bölümünü, her iki parçada da gerçek dinlemeyi içeren çok fazla iletişim olmadan gerçekleştirmenin bir yolu yoktur. Durumdan rahatsız olmaya ve söylemek isteyebileceğiniz veya istemediğiniz şeyleri söylemeye dikkat edin.


0

Dürüst olmak gerekirse: 'Büyük işlevsellik' olmadığı sürece, en fazla etki alanı bilgisine sahip kişiye ne olması gerektiği konusunda en iyi tahminde bulunmalarını sağlayın ve bunu uygulayın. Kabul testinde ete geçecek - bunun için ne var.

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.