Programlama ve Planlama [kapalı]


15

Son zamanlarda, ekibimin lider geliştiricisi nedeniyle daha üst düzey planlama görevleriyle görevlendirildim. Uzun vadeli planlamadan nefret ediyorum. Beynim doğal olarak bunun için kablolu görünmüyor ve öğrenmek için zaman harcayacak kadar ilgilenmiyorum (resmin programlama tarafına yetişmek için yeterince zor).

Üst düzey bir planlayıcı olmadan da iyi bir programcı olabilir mi?

Kıdemli bir programcı olarak, ürünün tamamının planlanmasında ve tamamlanma tarihinin seçilmesinde iyi olması bekleniyor mu?


Pozisyonunuz Geliştirici ise, neden plan yapmalısınız? Belki tahmin, ama plan değil
superM

Evet mümkün. Bu durumda verimliliğiniz büyük ölçüde menajerinizin / takım liderinizin ne kadar iyi olduğuna bağlı olacaktır
gnat

1
Bu gerçekten ilginç bir soru. İyi bir üst düzey geliştirici olmak için çok fazla teknik özellik yapmanız gerektiğini düşünmüyorum - Çevik gelişimde yeni bir sistem veya projenin özelliklerinin çoğu ortaya çıkıyor. Daha fazla bilgi için cevabıma bakın.
Robin Winslow

1
Bu alıntı nasıl gidiyor? “Kodlama günleri saatler süren planlamadan tasarruf edebilir” ya da bunun için bir şey.
Drake Clarris

Yanıtlar:


17

Detaylı uzun vadeli proje planları genellikle çılgınca yanlış olduğu için kötü şöhretlidir. Sistemin işlevselliği, lansmandan önce kaçınılmaz olarak değişecektir ve insanlar genellikle spesifikasyona giren özellikleri sadece paydaşların en iyi şekilde bir bakış açısı vermesi için çalışmak için uzun zaman harcıyorlar.

Çevik planlama hakkında daha fazla bilgi almalısınız , zihniyetinize daha fazla uyduğunu görebilirsiniz. Birçok Çevik metodoloji, detaylı, uzun vadeli planlamadan uzaklaşmanın yollarını bulmaya çalışır.

Çevik metodolojiler , kendi kendini belgeleyen kod ve izole edilmiş, atomik kullanıcı öyküleri ve sonuçta çalışan yazılımlar lehine ayrıntılı teknik özellikleri ve belgeleri en aza indirmeye çalışır . Etkili bir Agile ekibinde planlama için minimum zaman harcanacaktır.

Oku Çevik Manifesto'yu ve içine bakmak Scrum . Kullanım İteratif Geliştirme ve Dinamik sistemler geliştirme yöntemi projesini rehberlik etmek.

Çevik yaklaşımların ana dezavantajı , projenizin tam kapsamını bilmediğinizi açık bir şekilde itiraf etmeniz ve bu fikre yönetim satın almanın son derece zor olabileceğini ve genellikle biraz zaman alacağını belirtmektir. Bkz bu soru-cevap ve bu yayını bu konuda bazı ipuçları için.

Bununla birlikte, daha kıdemli bir programcı olmaya başladığınızda muhtemelen daha az kodlama yapacağınız doğrudur, ancak bence daha fazla teknik özellik yazmanız yerine Agile ekibinde daha fazla yönetim ve özel ders harcayacağınız anlamına gelir. ekibinizin üyeleri ve kod hakkında mimari kararlar almak.


4
"Ayrıntılı uzun vadeli proje planları genellikle çılgınca yanlış olduğu için kötü şöhretlidir."
DING DING DING

11

Evet mümkün. Ancak, üst düzey planlamanızın devreye girdiği iyi bir yazılım mühendisi veya yazılım mimarı olmak istiyorsanız. Bana göre, bir programcı ve mühendis arasındaki temel fark, büyük resmi görebilmektir.


1
Şu anda / önümüzdeki 2 hafta içinde yaptığım işi planlamakta sakıncası yok. Yazmak üzere olduğum şey birden çok parça içeriyorsa, bunu yüksek bir seviyede planlamayı ve sonra yapmayı umursamıyorum (aslında - tam olarak yapacağım şey buydu). Gelecek aylarda bir randevu bulmayı başaramıyorum - sonra neden vurmayacağımızı anlamaya çalışıyorum. Kişisel hayal kırıklığım zirveye çıkmaya başladı.
MattW

Beni kişisel olarak hayal kırıklığına uğratmamaya çalışıyorum. Bu tür şeyleri proje yöneticilerine sabitlemeye çalışıyorum;).
Blaise Swanwick

Blaise adlı kullanıcının yorumuna eklemek için. Kötü yöneticiler programı karşılamakta ısrar eder ve takımı eksik "taahhütler" için suçlar. Bu ortamda, programlar kesinlikle sinir bozucu. İyi yöneticiler, başlangıç ​​programının bir taahhüt değil temel bir tahmin olduğunu fark eder. Bazı görevlerin daha uzun ve daha kısa süreceğini biliyorlar. En çok ilgilendikleri şey uzun vadeli trend. Örneğin, şu anda 3 ay boyunca başlangıç ​​programında% 20 gerideyiz. Bu muhtemelen geri kalan benzer görevlerde% 20 daha fazla çalışacağımız anlamına gelir. Daha sonra bu yeni programı projeyi yönetmek için kullanırlar.
Dunk

9

Üst düzey bir planlayıcı değil, iyi bir programcı olmak mümkün müdür?

Bir süre, evet. Bunu uzun süre yapmak mümkün mü? Hayır.

Günümüzde birçok işverenle birlikte , yaşam endüstrisinde rekabetçi artışların maliyetini vermek standart işletim prosedürüdür . Kendinizi geliştirmezseniz, daha büyük ve daha zor sorunlarla uğraşmaya çalışmayın, bu endüstri rekabetçiliği artışları sizi beş veya on yıl içinde piyasadan çıkaracaktır. Bunu devam ettirin ve işvereniniz nihayetinde sizden kurtulmak için bir neden aramaya başlayacak ve başka yerlerdeki istihdam edilebilirliğiniz de önemli ölçüde azalacaktır.


Kafam karıştı. Bir COL artışı teoride enflasyon oranına ayak uydurmalıdır. Yazılım geliştiricilere ödenen gerçek dolarların zaman içinde giderek azaldığını mı düşünüyorsunuz? Yoksa COL artışları genellikle yaşam maliyetindeki gerçek artıştan daha fazla mıdır? Daha büyük bir endişe, büyümeyi gösterememenin kendisinin genellikle olumsuz olarak kabul edilmesi olduğunu söyleyebilirim. Bununla birlikte, büyümeyi göstermek için daha fazla genişlik veya teknik beceri derinliği gibi başka yollar da vardır.
Ethel Evans

1
Yaşamanın maliyetini yükseltmektense sektörde rekabetçi artışlar söylemeliydim. Sadece bunu söylemek için cevabımı düzenledim. Bu sektörde rekabetçi artışlar genç yetişkinler için oldukça tatlı, tipik olarak enflasyondan çok daha iyi. Geçim masrafları yaşlı adamlar içindir. Birisi enflasyondan daha yükseğe çıktığında bir sorun var ama o kişinin becerileri yeni bir yetenek olarak kalıyor.
David Hammen

Anladım! Açıkladığınız için teşekkürler, bu kesinlikle mantıklı.
Ethel Evans

Ne yazık ki, zamanla programlama becerisinin öğrenmeyi daha kolay hale getirdiğini ve dolayısıyla bir mühendisin mevcut, büyümeyen becerisinin COL'un ötesine geçeceğini iddia ediyorum.
Yeni İskenderiye

6

Elbette, bir programcının bakış açısından iyi bir programcı olabilirsiniz. Yönetimin bakış açısından başka bir soru daha vardır. Deneyimlerime göre, planlama sürecine dahil olmak 1) daha ilginç programlama ödevleri almak ve 2) bunları istediğiniz gibi yapmak için en iyi yoldur.

Başka bir deyişle, kısa vadeli planlamaya başladığında, birçok seçenek masanın dışındadır. Tercih ettiğiniz çözüm altı hafta sürecek, ancak yalnızca iki bütçelendiyse, karar verdiklerine takılıp kaldınız. Uzun vadeli planlamada daha önce tartıştıkları bir şey hakkında endişeleriniz varsa, onu yeniden şekillendirmek istemeyeceklerdir.

Bu durumdan memnunsanız, size daha fazla güç. Çoğu insan daha fazla tecrübe kazandığından daha az memnun olur.

Kirli küçük sır, uzun vadeli planlama ve tahminlerde kimse çok iyi değildir. Daha iyi planlayıcılar, sınırlamalarının farkında olanlardır, bu yüzden inanın ya da inanmayın, eğrinin önündesiniz. Tahmindeki belirsizliğin muhasebeleştirilmesi konusunda biraz eğitim alın. Tahminlerinizin ne kadar doğru olduğunu göstermek için geçmiş verilere dayanan kanıta dayalı planlama veya scrum gibi tekniklere bakın. Eğer işinizde daha büyük bir söz varsa, uzun vadede daha mutlu olacaksınız.


"Kirli küçük sır, uzun vadeli planlama ve tahminlerde kimse çok iyi değil." Gerçek bu değil! Sadece bunun için +1. İyi bir geçmişe sahip olsa bile, açık mavi gökyüzünden koparılması gereken çok sayıda sayı vardır, çünkü bir sonraki proje hiçbir zaman önceki projelerin tam bir kopyası değildir. Öyle olsaydı, tüm kodu olduğu gibi tekrar kullanabilir ve en kısa sürede onunla yapılabilirdik. Her zaman yeni bir şey vardır ve geçmiş performans her zaman bu yeni şeyler için gereken çabanın ne kadar iyi bir göstergesi değildir.
David Hammen

Tamam - belki de hayal kırıklığı (ve hatta ego ) yönetmem gereken şeylerden daha fazlası. Kendimi çok kötü bir şekilde yenemezsem ve sadece zamanla daha iyi olursam ("Bunu yapmaktan hoşlanmıyorum" yerine) - Uzun vadede daha iyi olacağım. Kötü yaptığımda kendim için zor olabilirim - ama görünüşe göre (buradaki cevaplara dayanarak) Bir yazılım mühendisi olarak işe devam etmek istiyorsam iyi yapmayı öğrenmem daha iyi olurdu. Herkesin düşüncelerini takdir ediyorum. Şirketimde bunu öğrenecek hiç kimsem yok - bu yüzden buradaki herkesin bunu duyması çok büyük bir yardım!
MattW

3

Üst düzey bir planlayıcı değil, iyi bir programcı olmak mümkün müdür?

Kısa Cevap: Evet mümkündür.

Ancak, dahil olduğunuz proje türleriyle daha fazla deneyim kazanırsanız, daha iyi planlama fikirlerine sahip olursunuz. İdeal olarak, bir programcı olarak problemin nasıl çözüleceğine dair bir yaklaşımımız var ya da bir tane arıyoruz. Böylece, yaklaşımı biliyorsanız, planlama hakkında düşünmeye başlayabiliriz :)

Bir başka olası yol, iyi bir planlayıcı haline gelen bir programcının da sonunda Proje Yönetimine yönelmesidir. Dolayısıyla, projelerin yönetimine ilgi duyuyorsanız, bu yöne doğru fazladan çaba gösterebilirsiniz.


1

Evet ve Hayır cevaplarınız.

Bir yandan, proje yönetimine yöneliyorsunuz. IMO, tüm iyi programcılar bir dereceye kadar proje yönetimi yeteneğine sahiptir, ancak bunlar farklı beceri kümeleridir. Uzun vadeli planlama yeteneği, gerçek proje yönetimi ile iletişim kurma yeteneğinizi geliştirir. Yani "hayır" uzun vadeli planlama yeteneği olmadan iyi bir programcı olamazsınız.

Bununla birlikte, proje yönetimi, ilişkili ancak programlamadan farklı yönlere hitap eden farklı bir beceri kümesidir. İşte burada "evet" devreye giriyor. Harika bir programcı olmak için proje yöneticisi olmanıza gerek yok.

Özel durumunuz için, şirketin neye ihtiyacı olduğu kadar yapmaktan zevk aldığınız şey hakkında daha objektif olmaya çalışın. Sorunuza biraz fazla ego yansıdı ve bu da bu duruma bakma becerinizi önyargıya dönüştürüyor. Hala hoşunuza giden şeyleri yaparken işvereninize daha fazla katkıda bulunmanın yollarını bulabilirseniz, bunları göz önünde bulundurmalı ve konuyu patronunuzla konuşmalısınız.


1

Planlama ve Bungie-Boss

Dilbert'in bungie-boss hakkında birçok şeridi var. Planlama konusundaki zorluklarımız ve beklentilerimiz liderlik krizinin hem nedeni hem de sonucu olabilir. Bir Fortune 100 şirketindeki tecrübem, bir yıl içinde, projeye lider olarak başlayan herkesin çıkmasıydı. Belki de bu planlama probleminden kaynaklanıyordu. Eski liderinizin bu nedenle ayrılıp ayrılmadığından emin değilim, ancak rolünüz bir taahhütle bir plan yapmanızı gerektiriyorsa, genellikle geçmezse, genellikle son teslim tarihi ile ilgili bir sonuç ortaya çıkar.

Planlamanın Örgütsel Bağlamı

Planlamadan rahatsızsanız, çözülecek problemler belgelenmeden veya anlaşılmadan önce belki de pazarlama veya diğer paydaşlara verilen taahhütlerden sorumlu olmanızdan rahatsız olursunuz. Bu iyi bir içgüdü.

Planlama önemli bir araçtır. İhmal etmeyin. Yanlış anlamayın.

Planlama, taahhütler, hesap verebilirlik ve müzakere gücüyle bütünüyle bağlantılıdır. Çevik planlamanın birçok değeri vardır. Onun tekniklerini ve planlı metodolojilerin tekniklerini bilmelisiniz. Kuruluşunuzun kendi yaklaşımı olabilir ve tavsiye alabilir ve birçok projenin liderliğinden kurtulan biriyle çalışmak şaşırtıcı derecede yardımcı olabilir.

Basit bir Planlama Örneği - Yazılım ile ilgili olmamalı ...

Bir çatı şirketi değişim için teklif vermek için evime geldiyse, çok düşük teklif verirlerse, işten para kaybedebilirler, ancak çok yüksek teklif verirlerse, işi hiç alamazlar. Her iki durumda da, işsizler. Yeni rolünüzde, çok az ısırırsanız, hesap verebilirlik devreye girene kadar projeyi yürüteceksiniz, o zaman sorunlarınız olacak. Son teslim tarihine kadar başarıyı garantilemek için yeterli dolgulu bir projeyi tahmin ederseniz, birçoğu sadece liderlik etmek için başka birini seçer. Kicker, çatı ustası gibi olmamanızdır. Çatının ne kadar büyük olduğunu görebilir ve çatının ne kadar sürdüğüne dair tarihsel verilere sahiptir.

Daha İyi Bir Planlayıcı Olmak

Bir çeşit eğitimi düşünmek isteyebilirsiniz. Çevik metodolojilerde ve en son planlanan metodolojilerde tahmin, ekip çapında bir faaliyettir. Sonuç olarak, ekibiniz için de eğitim almayı düşünmelisiniz.

Deneyimden, size, erteleyecek ekip üyelerinden tahminler almanın sinir bozucu olabileceğini söyleyebilirim, bir gereklilik veya özellik açıklaması veya mevcut koda başvurmadan görev adına göre iki dakika içinde yaptıkları tahminleri verebilir veya listelediğiniz görevlerin birçoğunun, geçmiş projeler benzer konularda haftalar geçirmiş olsa bile günün bir kısmında yapılabileceği konusunda ısrar ediyor.

Çeşitli proje yöneticisi eğitim kursları ve sertifikaları var, ancak bağımsız olarak akredite olan birini izlerdim. Çevik ekiplerle (veya başka bir şekilde) çalışmayı düşünüyorsanız, planlı metodolojilere dayanan yaklaşımlarla onaylamayı seçmeden önce ikinci bir düşünmeye değer olabilir.

SLIM, 1970'lerde GE ve diğer şirketlerde DoD projelerinde çalıştıktan sonra Putnam tarafından icat edilen bir yöntemdir. SLIM etkilidir ve QSM şirketi yaptıkları bir araçtan akan bir sertifika sunmaktadır . Şirketinizin araçlarını benimsemesine bağlı olarak, değeri ya da değeri yüksek olabilir.

Steve McConnell (Code Complete'in yazarı) da yazılım tahmini hakkında bir kitap yazdı ve şirketi Construx , Proje Yönetimi Enstitüsü tarafından akredite edilmiş PDU kredileri için iki sınıf öğretiyor . Kitabım var ve konu hakkında sınıf eğitimi yoluyla öğrenmek isteseydim, muhtemelen Construx'u seçerdim. Ayrıca Scrum eğitimi yaparlar ve Scrum.org üzerinden akredite edilmiş çeşitli scrum değerlendirmeleri yaparlar.

Yazılım projesi tahmini hakkında büyük akademik eğitim sağlayabilecek bir diğer kaynak , NASA ve diğer büyük yüklenicilerde çok büyük projeleri tahmin etmek için kullanılan COCOMO ve COSYSMO yapıcı maliyet modelleme konusundaki kapsamlı çalışmalarına dayanarak , USC'deki Barry Boehm'in grubu olacaktır . COCOMO'ya gerçek bir inanan olduğumdan emin değilim, ancak ölçek ve maliyet sürücülerinin program süresi üzerindeki etkilerini ilişkilendirmek için yaptıkları ampirik çalışmaları seviyorum.

Ayrıca O'Reilly tarafından yayınlanan ve Watts Humphreys PROBE ve Kent Beck'in planlama oyunu da dahil olmak üzere başlıca yazılım tahmin yöntemlerini kısaca tartışan bir bölüm buldum . PROBE, mühendislerin metrikleri kendi üretkenliklerine göre takip ettikleri ve daha sonra bunları yeni projelerde kendilerine tahsis ettikleri bölümlere uyguladıkları bir kavram içerir. Planlama Oyunu, geliştiriciler ve diğer paydaşlar arasında son derece işbirliğine dayalıdı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.