Bir programcının kendi kendine yeterli olması gerekiyor mu?


28

Şu andaki iş yerimde, herhangi bir test uzmanımız yok; bunun yönetimin gerekçesi: “Test uzmanlarımız olsaydı, kendi kodunuzu hiç test edemezsiniz”. Bu tür bir düşünce, ürün koduna zarar verir gibi gözüküyor, çünkü kendi kodumu sınarken, yalnızca sistemi içten tanıdığım ve nasıl kullanacağımı bilmediğim için özleyeceğim çok şey var. bu "yanlış". Kara kutu testi gerçekten işe yaramaz, çünkü bilinçli olarak özel bir test cihazının düşeceği tuzaklardan kaçınırım. Zamanımın çoğu, üretim koduna kaymış ve son kullanıcı tarafından bulunan hataları düzeltmeye gider.

Söz konusu sistem büyük ama yalnızca benim tarafımdan geliştiriliyor. Bu aynı zamanda bazı tanımlayıcı görevlerin zamanlamaları tanımlamak ve şartnameler üzerinde çalışmak gibi kucağıma düşmesine neden oldu.

Bu tür görevler benim sorumluluğum mu olmalı? Kendimi kesinlikle bir programcı ve başka hiçbir şey olarak görmüyorum. Bunlar benim sorumluluğumsa, ne ölçüde? Bir proje ne zaman test cihazına ihtiyaç duyacak kadar büyük? Bir programcının şartnameyi düzeltmesi, projenin yönetimi konusunda endişelenmesi veya hatta müşteri desteği sağlaması gerekir mi?

Not

Bazıları sorumluluklarımı genişletmeye karşı olduğum izlenimine sahip olabilir - durum bu değil, daha fazla yönetim görevi içeren bir rol almaya istekliyim, ancak şu anda iş tanımımda yok. Resmi olarak istihdam edilinceye veya ek görevler maaş çekimde gösterilmeye başlayana kadar kendimi 'sadece' bir programcı olarak düşüneceğim. Maalesef, küçük bir geliştirici olarak, idari görevlere geçmek çok yakında gerçekleşmeyecek.

Şimdiye kadarki mükemmel cevaplar, ekleyeceğiniz bir şeyler veya paylaşacak kişisel deneyimleriniz varsa gelmelerini sağlayın!


4
Ah, eski güzel "test kullanıcıları gibi" senaryosu. İyi biliyordum.
Matt Ellen

Üzgünüm size bunu söylemeliyim ama ... yönetiminiz aptallarla dolu :(
dr Hannibal Lecter

1
Çalıştığınız şirket ne kadar büyük? Bir test cihazı kullanmışlarsa, tam zamanlı olarak meşgul olmaları için yeterli iş var mıydı? Bir proje yöneticisi çalıştırsalardı, tam zamanlı olarak meşgul olmaları için yeterli çalışma var mıydı? Kendim gibi şeyleri yönetmek zorunda kaldığım işler, bu rolleri üstlenecek başka bir çalışanı haklı çıkaracak kadar büyük olmayan şirketlerdi.
Carson63000

@ Carson6300, şu anda hepsi fazla çalışan 7 programcımız ve aynı grafik tasarımcılarımız var. Biz de bunu en azından kelimenin bir anlamda, proje yöneticileri var. Dediğim gibi, '... bazı idari görevlere neden oldu ..'; yönetimin çoğu hala bir proje yöneticisi tarafından yapılmaktadır. Özel test uzmanlarını haklı çıkaracak kadar büyük olduğumuzu düşünüyorum.
Tatu Ulmanen

Belki, yönetiminize şu makaleyi göstermelisiniz: Software Bugs tarafından Operant Conditioning
Vaibhav Garg

Yanıtlar:


19

Sen yapmak test var. Sadece onlara "son kullanıcılar" diyorsunuz. Bu tarif ettiğiniz tüm nedenlerden dolayı zararlıdır; Bir kodlayıcı ne kadar vicdaalı olursanız olun, hiçbir zaman, kodun nasıl çözülebileceğinin tüm yollarını bulmak için nasıl kullanılacağına ilişkin kendi önyargılarınızı aşmakla yeteri kadar iyi bir iş yapamazsınız. .

Bu konuyu yönetim ile yeniden açmanız gerekiyor. Bu noktada, davanızı desteklemek için bazı zor verileriniz var gibi gözüküyor; mevcut Kalite Güvence hem atıkların yaklaşım kapalı eller zaman ve kullanıcıların deneyimini uzlaşır. Bunu nasıl sunarken dikkatli olmalısınız, böylece bunun sadece bir sınama emiyorsunuz değil , yapısal bir sorun olduğu açıktır , ancak yapılması gereken bir tartışma gibi görünüyor.

Bu işverenle bir kavşağa geliyor gibisin. Bir programcı ve başka hiçbir şey kalmaya niyetli değilseniz, geri itmeye ve yönetmenlik görevlerinden bazılarını yeni bir kişi ya da Mevcut bir iş arkadaşının sorumluluklarını genişletmek. (“Beni bunun için işe aldığın şey bu değil ve bu görevler gitmiyor. Bu şeyleri kötü yapmak için harcadığım zaman, iyi olduğum şey için harcama yapmam.”) Ama bu olabilir veya olabilir. gerçekçi olmayın. İşi doğru yapmak için ihtiyaç duyacağınız kaynakları ve otoriteyi verirlerse, daha yönetsel bir role geçmekle başa çıkabileceğinizi düşünüyor musunuz?

Bir projenin test uzmanlarına ihtiyacı olmadan önce ne kadar büyük olması gerektiğine gelince, bu çizgiyi tam olarak nasıl tanımlayacağımı bilmiyorum, ama kesinlikle onu aştığınızı düşünüyorum. Gerçek kullanıcılardan gelen hata raporlarını düzeltmek istediğinizden daha fazla zaman harcıyorsunuz; Bana göre, böceklerin kullanıcılara ilk etapta ulaşmasını engellemek için daha fazla çaba harcamanın zaman olduğunu söylüyor.


büyük ölçüde, patronun geliştiricinin yazılımı test etmesi gerektiğini düşündüğü pek çok yerde çalıştım, biri çalışmak için iyi bir yer değildi, eğer hiç test yapan kimse yoksa, sadece yazılım geliştirmenin temellerini kavrayamazlar ya da ucuz piçlerdirler. Her iki şekilde de başka bir iş bulmalısın
jonathan

13

Evet. Eğer varsa sahip üzere, kodunuzu test etmek gerekir. (Birim testlerinden bahsetmiyorum, ancak kabul testleri vb.)

Hayır . Testçiler sizden daha iyidir. Ve işaret ettiğiniz gibi, tıpkı tekrar okuma gibi, kendi hatalarınızı tespit etmek çok zordur. Ekstra gözbebeklerine sahip olmak programınızın kalitesi üzerinde büyük (iyi) bir etkiye sahip olacaktır.

Bir sürü başka sorunuz var. Ben sadece birini cevaplayacağım:

Bir programcının şartnameyi düzeltmesi gerekiyor mu?

Evet! Şartnameyi uygulamak zorundasınız, bu şartnamenin gerçekten uygulanabilir olduğundan emin olmalısınız. Ayrıca, bir programcı olarak - net düşünme, hassasiyet ve benzeri konularla eğitilmiş olarak - insanların gerçekten yapılması gerekenleri keşfetmelerine yardımcı olabilir ve belirsiz veya mantıksal olarak hatalı gereklilikleri ortadan kaldırabilirsiniz.


5

Söyledikleri ve gerçeklik muhtemelen iki farklı şeydir. Büyük olasılıkla gerekçesi şudur:
"Programcının çifte görevi yapmasını sağlayabildiğimde neden bir test cihazının maaşını ödemek zorundayım?"

Tabii ki, bunu söylemeyecekler ve makul olduğunu düşündükleri her türlü bahaneyi telafi edecekler. Birkaç çürütücüleri kendi noktalarına göre düşünebilirim, ama dürüstçe yardım etmeyecekler. Bu savaşı tekrar tekrar gördüm ve şu anki akıl yürütmelerinde hata yaptığınızda yaklaşımlarını değiştirecekler. Sonunda vazgeçecekler ve sizi yine de yapmaya yönlendirecekler ve şikayetçi olarak etiketleneceksiniz.

Aklıma gelen en iyi yaklaşım, kalite yönetimi açısından değil, hangi yönetimin sorun yaşanıncaya kadar değer vermeyeceği gibi değil, maliyet açısından ele alınmasıdır. Test cihazları, en azından programlayıcılardan daha ucuz olarak algılanır. Onlara, çifte görev yaptırarak daha az pahalı bir kaynak (testçi) tarafından gerçekleştirilebilecek işleri yapmak için daha yüksek ücretli bir kaynak (programcı) ödeyeceklerini hatırlatın. Bu nedenle, programlama becerinizden elde ettikleri değeri maksimize etmiyorlar.

Bu yaklaşım, maaşlı iseniz ve sadece fazla mesai yapmamanız konusunda daha fazla çalışmama konusunda hiçbir seçeneğe sahip olmadıklarında dağılmanın dezavantajına sahiptir, ancak buna değer.


Maaşlıysanız ve sizi daha fazla ücretsiz çalışma yapma konusunda daha fazla işe yaramazsa, işten ayrılma zamanı geldi.
glenatron

Şükürler olsun, ödenmemiş zorunlu fazla mesai her yerde yasal değildir.
Steven Evers

3

Söz konusu sistem büyük ama yalnızca benim tarafımdan geliştiriliyor. Bu aynı zamanda bazı tanımlayıcı görevlerin zamanlamaları tanımlamak ve şartnameler üzerinde çalışmak gibi kucağıma düşmesine neden oldu.

Yeterince adil.

Bu tür görevler benim sorumluluğum mu olmalı?

Nihayetinde karar vermek sizin yönetiminize kalmış.

Kendimi kesinlikle bir programcı ve başka hiçbir şey olarak görmüyorum.

Belki o zaman yanlış iştesiniz. Bir çok insana ekstra sorumluluk verilmesi gibi.

Bunlar benim sorumluluğumsa, ne ölçüde?

Yönetim öyle diyorsa, evet.

Bir proje ne zaman test cihazına ihtiyaç duyacak kadar büyük?

Geliştiricilerin yapması gereken çok fazla iş olduğunda. Bu noktada, yönetimin özel bir test cihazı kullanmak isteyip istemediğine karar vermesi ya da test etme üzerinde kayma riskini üstlenmesi gerekir. (Sonuçta, geliştiriciler yalnızca bu kadarını yapabilir.)

Özel testçilere sahip olmanın kesin avantajları vardır, ancak ekstra personel istihdam maliyetine ek olarak olumsuzluklar da vardır.

Bir programcının şartnameyi düzeltmesi gerekiyorsa,

Gerekirse evet. Aslında, şartnamede değişiklik yapılması gerekiyorsa ve üzerinde çalışan başka kimse yoksa, bunun yapılmaması, projenin başarısız olmasına neden olabilir.

Projenin yönetimi hakkında endişe

Gerekirse evet.

ya da müşteri desteği sağlıyor musunuz?

Gerekirse evet.

Bana fazla çalışıyor gibisin ve baskıya tepki veriyor gibi geliyor. Bu bir problem. Ancak "X, Y, Z'yi yapmak senin işin değil" pozisyonunu almak yardımcı olmayacak. Daha iyi bir plan yapabileceğin çok şey olduğunu açıkça ortaya koymak ve bunun son tarihlerin kaçırılmasına, kaymanın kalitesine, zayıf müşteri desteğine vb. Neden olacağına işaret etmektir. Ama yine de elinden gelenin en iyisini yap ... süreçte sağlığına, ilişkilerine vb. Zarar vermeden.


Her şey yönetimle ilgili değil, ayrıca üstlendiği görev ve uygun tazminat var. OP'nin sorumluluklara karşı tazminattan memnun olmaması durumunda, beklentilerinin gerçeğe daha yakın olduğunu keşfetmeye yönelik bir temel bulmaya çalışmak tamamen mantıklıdır.
jmoreno

3

Testçilerimiz var. Onlar olmadan çalışmak istemem. Her ne kadar birim testleri (TDD kullanarak) ve tüm kodum için otomatik entegrasyon testi yazsam da testçiler hala çok değerli bir işleve sahip.

  1. Çok yetenekliler ve programcılar için farklı beceriler var.
    1. QA testinin nasıl yapılacağına ve üretilen kodun hem kullanıcının beklentisine hem de kullanıcıların gerçek davranışlarına gerçekten uyduğunu nasıl doğrulayacağına dair çok fazla deneyim ve bilgi sahibidir.
    2. Birçok hata yaşadılar ve yazılımı kırabilecek durumları düşünmekte çok başarılılar.
    3. Sinik ve sistematik olma eğilimindedirler. Programcıların çoğu zaman daha iyimser olduğunu gözlemledim.
  2. Kullanılabilirlik hakkında değerli erken geri bildirimler sağlarlar. Örneğin, yakın zamanda bir REST API oluştururken, KG test uzmanlarının kolayca anlayamadığı alanlar, kullanıcının da mutsuz olacağı alanların iyi bir göstergesiydi.
  3. Gerçek ortam üzerinde testler yaparlar, aslında gerçek donanımın, işletim sisteminin vs. birçok yapılandırmasını test ederler.
  4. Büyük ölçekli, gerçekçi, test odaları oluşturmayı ve performans, yük ve stres testi yapmayı bilirler.
  5. Kötü yayınların çıkmasını önlemeye odaklanırlar. Programcılar kodu serbest bırakmaya odaklanırlar. Neredeyse bir programcı varsayılan olarak kodu serbest bırakacak, ancak bir QA test cihazının serbest bırakmak için bir nedene ihtiyacı olacak (çalıştığı gösterilmiştir!)

0

"Test cihazlarımız olsaydı, kendi kodunuzu test edemezdiniz"

Arabanızın emniyet kemeri olsaydı, her zaman kaza yaparsınız!

Bu tür görevler benim sorumluluğum mu olmalı? [...] Eğer bunlar benim sorumluluğumsa, ne ölçüde?

Bunun cevabı "bağlıdır". Anladığım kadarıyla işverenleriniz sizi "tek kişilik BT departmanı" olarak görüyorlar. Bu durumda, evet, onlar (sizin sorumluluğunuzda). Kesinlikle nefret ettiğiniz ve kaçınmak istediğiniz sorumluluklarınız varsa, daha büyük bir BT departmanına sahip bir şirkette bir pozisyon arayın.

Bir proje ne zaman test cihazına ihtiyaç duyacak kadar büyük?

Bu, sorulacak doğru bir soru değil. “Ürünün kalitesi / şirketin imajının test edicilere ihtiyaç duyması için ne kadar önemli olduğunu” sormak daha iyidir.

Bir programcının şartnameyi düzeltmesi gerekiyorsa, [...]

Evet kesinlikle. Çoğu zaman, bir geliştirici / uygulayıcının ihtiyaç duyduğu şey ile müşterilerin [özellikler olarak] sağladıkları arasında büyük bir tutarsızlık vardır.

Çoğu zaman gri / belirtilmemiş alanlar bulmak ve doğru soruları sormak, teknik olarak imkansız veya çelişkili gereksinimleri ve benzeri hususları fark etmek ve vurgulamak size kalmış (özellikle de tek geliştirici sizseniz).

[...] projenin yönetimi konusunda endişelisiniz ya da müşteri desteği sağlayabiliyor musunuz?

Bu, pozisyon aldığınızda kabul ettiğiniz sorumluluklara bağlıdır. Örneğin, bazı pozisyonlar müşterilere doğrudan ulaşmanızı gerektirir. Diğer tüm şeyler eşit olduğunda, bu tür pozisyonlardan kaçınmaya çalışırdım (ama bu size kalmış ve çok fazla iş seçeneğiniz olmayabilir).


0

Her şeyden önce, Test veya Kalite Güvence'nin daha iyi bir şekilde söylenmesi, sadece uygulamayı tıklatarak işlevsellik testini yapmakla ilgili değildir. Kalite Güvencesi süreçlerle ilgilidir . Sadece hataları bulmak için uygulamayı test etmek değil, geliştiricilerin de yapmasını engellemek zorundadırlar.

  1. Ürün özellikleri + kullanım durumları
    Ürünün işlevselliğinin ne olduğunu herkes biliyor (veya yaptığını düşünüyor olsa bile) yazılmalıdır. Açık bir teknik özellik olmadan bir uygulamayı test edemezsiniz. Bir teknik özellik neyin doğru davranış olduğunu ve neyin hata olduğunu tanımlar.
  2. Birim testleri, Entegrasyon testleri
    UI ile istisnai uygulama durumları aracılığıyla test edilmesi zor olan dahili testlerin testleri. Her büyük sistem için bu bir zorunluluktur. Her iki tür testin de ilginç başka bir özelliği vardır - sizi kodun her bölümünü tekrar gözden geçirmeye zorlarlar ve daha önce hiç görmediğiniz hata / mimarlık sorunlarını fark edersiniz.
  3. Kod Kalitesi ve Kodlama Standartları
    KG'nın yapması gereken görevlerden biri kod karmaşıklığını ölçmektir. Düşük karmaşıklık kodu hata olasılığını azaltır (hataları önler).
  4. Kod incelemeleri
    Bir proje belirli bir boyuta ulaştığında veya birçok kullanıcı tarafından kullanıldığında, kod incelemeleri bir zorunluluktur. Başka bir programcı daima kaçırdığınız kod sorunlarını / hatalarını bulur. Programcı bazen kendi kodlarındaki bariz böcekleri kör eder.
  5. Belgelendirme
    Kodunuzu ve mimarisini belgeleyin, olası kusurları (kendi deneyimim) anlamanıza yardımcı olacaktır.
  6. Test Test
    Cihazı, sadece kullanıcı arayüzünü tıklayan bir maymun değildir. Bir test cihazı şartname ve kullanım durumlarını alır ve test durumları oluşturur. Sonra onları tek tek test eder. Son kullanıcılar tarafından bir hata bildirilirse, bunun için bir test durumu eklenmelidir.

Bir programcı asla spesifikasyonu yaratmamalıdır (1). İşlevselliğe karar vermek için orada değilsin. Genellikle son kullanıcılarla konuşmaları, grafik tasarımları yaratmaları vs. gerekir. Bu zaman alıcı bir iştir. Eğer bir programcı işlevselliğe karar verirse, genellikle "tamamdır ama bu penceredeki her şeyi yarına kadar değiştirebilir misin?" "istediğim bu değil" "işe yarıyor ama kullanması zor" "gerçekten ihtiyaç duyduğumuz tek işlevi eksik".

Bir programcının elde edebileceği şey 2, 3 ve 5'tir.

4 için başka bir programlayıcıya ihtiyacınız var. Büyük bir BT projesine sahip herhangi bir şirket ve sistemin çok tehlikeli bir zeminde adım atan bir geliştiricisi var.

Yeterli zamanınız yoksa, test senaryoları oluşturmak için canınızı sıkmayın (5). Çok fazla zaman aldığı için genellikle özel bir kişiye ihtiyaç duyulur. Test durumları olmadan test sadece bir şakadır.

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.