Şirket genelindeki geliştiricinin el kitabını yazma


17

Küçük bir şirkette çalışıyorum. Ben işe alınmadan önce şirketin yazılım geliştirme kolu kendi kendini yetiştirmiş bir çok çalışan adamdan oluşuyordu. Şimdi birkaç yıldır şirkete yazılım yazdığım için, şirket çapında resmi yazılım geliştirme uygulamaları oluşturmakla görevlendirildim. Şu anda başka yönergelerimiz yok

Kodu yazın, test edin, bir .zip dosyasına koyun ve istemciye gönderin. TDD ve sürüm kontrolü için bonus puanlar.

Patronum, işleri yapmak için kullandığımız genel süreçleri, protokolleri, araçları ve yönergeleri tanımlayan bir yazılım geliştiricisinin el kitabını yazmamı istiyor. Başka bir deyişle, yeni bir çalışanı iş yapma şeklimize alıştırmayı kolaylaştırmak ve patronumun kölelerinin ne yaptığını ve nasıl yaptığını anlamasına yardımcı olmak için "Burada yaptığımız şey bu" bir kitap istiyor o.

Gördüğüm gibi, bir temel atıyorum ve doğru yapılması gerekiyor. Böyle bir el kitabı için konu seçmeye ne dersiniz? Bazı örnek konular verebilir misiniz?

Yan Not: Önemliyse, öncelikle bir Microsoft .NET mağazasıyız. Ve XP ve Scrum gibi çevik uygulamalara bakıyoruz, ancak bunları şirketimizde çalıştırabilmek için büyük ölçüde değiştirmemiz gerekebilir.


3
Mevcut süreciniz çok zayıf. Mevcut sürecinizi değiştirmek için şirket desteğiniz var mı, ucuz olmayacak, gerekli olan değişiklik türü para alacak. Konuyla ilgili çok sayıda kitap var, bu uygulamaların çoğunda, çok fazla çaba gerektirmeyecek şekilde uygulanması gereken araçlar var.
Ramhound

el kitabı konular için alışveriş ?
sivrisinek

1
@gnat İyi bir nokta. Bkz. Düzenleme.
Phil

iyi düzenleme (görünüşe göre bağlantıyı takip ettiniz). Ben de değiştirecek konuların türlü ... sizce önemli olan ne gibi bir şeye konularla önemini ölçmek istiyorum nasıl ... - bu şekilde, bu Jeff'in rehberliğinde daha inline olacağını anladığım kadarıyla olarak
sivri

1
Bunu zaten yapabileceğimi düşündüğüm için konuların önemini nasıl ölçeceğimden gerçekten endişe etmiyorum. Aksine, örnek arıyorum. Örneklerle birlikte soyut soruların cevaplarını her zaman daha iyi bulmayı düşündüm. Bkz. Düzenleme. BTW, sorumu daha iyi hale getirmenize yardımcı olduğunuz için teşekkür ederim.
Phil

Yanıtlar:


20

Bunu aşağıdaki gibi bölümlere ayırırdım

  • Mevcut personel - isimler ve başlıklar (ideal olarak fotoğraflarla)
  • Başvurular, oturumlar, bilinmesi gereken veriler ve gönderilecek izin talepleri
  • Şirket sitelerine ve işle ilgili önemli harici sitelere yer işaretleri
  • Şirketin iletişim, e-posta, konferans odası rezervasyonu, paylaşım ekranı için kullandığı uygulamalar
  • Gider makbuzları, seyahat rezervasyonu gibi şirket ile ilgili faaliyetler için prosedürler
  • Geliştirici Makine Kurulumu. Yeni bir geliştirici makinesi kurma işlemini ayrıntılı olarak açıklayın. Bu genellikle sadece bir gün sürmesi 'beklenir', ancak çoğu zaman 3-5 gün sürer.
  • Geliştirme süreci, işin nasıl izlendiği, atandığı ve güncellendiği ve hangi araçların kullanıldığı.
  • Nasıl test edilir, ne test edilir, ne zaman test edilir, nerede test edilir.
  • Dosya adlandırma kuralları ve dile özgü standartlar dahil kodlama standartları.
  • Hataların nasıl ele alınacağı, nerede belgelendirileceği, düzeltilmesi için nasıl gidileceği.
  • dağıtım süreci, üretim itmek için bilinmesi gereken anahtar şeyler nelerdir.
  • Nasıl dokümante edilir, ne dokümante edilir, Ne zaman dokümante edilir.
  • Nerede 'olduğu', örneğin Kod, Veri, Standartlar, Belgeler, Bağlantılar ve diğer varlıklar için konumlar.

Modüler yapmak, sizin veya başkalarının parçaları ayrı ayrı güncellemesine de izin verecektir, örneğin çalışanların adları ve pozisyonları insanlar gelip gittikçe sık sık değişecektir.

Her bölüm için 'acemi' bakış açısıyla yazmak için çok uğraşardım. En önemlisi, bir acemi için gerçekten mantıklı olduğundan emin olmak olacaktır. Patronun besbelli değil o hedef kitlesi olmadığı için bu gözden doğru kişi. O sadece İçeriğin test edilen yukarıya bitmiyor yapmak, bunu istemek doğru tarafından kendisine. Ayrıca bir 'acemi' her ikisi de sadece bir acemi olarak "1 hafta" vardır ... ve sadece bir bakış açısı vardır. Bu nedenle, belgenin her yeni çalışanla birlikte rafine edilmesi muhtemeldir (ve önerilir). Aslında onları ilk haftaları için atamak oldukça iyi bir görev, yani "Yeni başlayanlar kılavuzunu güncelleyin".

Agile / SCRUM için:

Agile ve SCRUM yapmanın en zor kısmı bunu 'gerçekten' yapmaktır.

Okumak için http://agilemanifesto.org/ adresinden başlayıp oradan giderdim.

Ayrıca , çalışabilmesi için tüm yönleri benimsemeniz gerektiğine ağırlık veren iyi bilinen http://www.halfarsedagilemanifesto.org/ adresini de okurum . Kuruluşlarınız için Agile'ı büyük ölçüde değiştirmeniz gerekiyorsa, insanların doğru süreçleri kullanmadan faydaları istemesi muhtemeldir. Bu gerçeğin kendisi , yarı-assyness'i önlemek için sunulmalıdır.


6
Bunu ne sıklıkta düzenlediğinizi seviyorum. Nasıl ... çeviksiniz . :)
Phil

Genel olarak çevik ilkeleri değiştirmek istemiyoruz. Gerekli tüm rolleri uygulayacak insan gücümüz olmadığından, XP gibi belirli uygulamaları değiştiririz. Bu başka bir gün için başka bir soru olabilir.
Phil

Maalesef, soru değiştirildiği için şimdilik cevabı kaldırdım.
Phil

1
Bu bilgileri tutmak için bir şirket wiki
kurarsanız

Merhaba Spencer, bu ilginç. Ben de markdown ile bir github wiki kullanmaya başladım. Nasıl karşılaştırdıklarına dair düşünceler. Açıkçası birçok insan kodu github ve SO'dan markdown biliyor, bu yüzden benimsenmesi kolaydır.
Michael Durrant

4

Belgelerinizi belgelemeden önce bazı uygulamaları tanıtmanız gerekecek gibi görünüyor!

a) Kaynak kontrolü - kaynaklarınızı nasıl saklar ve revizyon kontrolü yaparsınız

b) Sürüm yönetimi ve takibi - derleme nasıl yapılır, sürüm numarası nasıl yapılır, mevcut sürüm adayı ile önceki sürüm arasında nasıl karşılaştırılır?

c) Sorun yönetimi - sürümlerinizdeki hataları nasıl takip ediyorsunuz?

Bunlar oldukça basit şeyler ama uygulanması çok zaman alabilir (ve muhtemelen paraya mal olabilir).


2
Basit tutmak ve önemli konulara yoğunlaşmak için +1. Kodlama stilleri üzerinde gerçekten "büyük devlet" görevlerine ihtiyacımız yok.
kirk.burleson

3

Bir geliştiricinin el kitabına ekleyeceğim konular:

  • Bölüm içindeki roller / pozisyonlar ve sorumlulukları
  • Geliştirici makine yazılımı gereksinimleri (yani gerekli geliştirme ortamı)
  • Kaynak kodu deposuna nerede ve nasıl erişilir
  • Kullanılan geliştirme araçları (örneğin IDE)
  • Kodlama stili / standartları
  • Dokümantasyon standartları
  • Test süreci
  • Derleme süreci
  • Dağıtım süreci
  • Destek ve sorun yönetimi süreci
  • Bu el kitabının en güncel sürümünü nereden edinebilirsiniz?

Bu el kitabının, şirket genelindeki bilgileri (çalışan el kitabında olması gereken) değil, yalnızca geliştirmeye özgü öğeleri içermesi gerektiğini unutmayın.


2

Kaynak Kontrolünün Kullanımı

  • Hangi kaynak kontrol aracını kullanıyorsunuz.
  • IDE'deki ortak komutların / araçların sözdizimi.
  • Dallanma / birleşme stratejisi.
  • Bir taahhüdün birimi ne olmalıdır? Bir dosyayı teslim almak / işlememek için ne kadar zaman var?
  • Bir taahhüt / check-in hangi düzeyde "doneness" anlamına gelir? Derler? Birim testleri geçiyor mu? Yorum?
  • Bir taahhüt / check-in için notlara nelerin dahil edilmesi beklenir.
  • Geri alma prosedürleri.
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.