it-swarm-tr.com

Programcının aynı anda birden fazla proje üzerinde çalışması normal mi?

Mevcut bir işte üzerinde çalışacağım iki proje var. Birincisi çok büyük bir sistem ve ikincisi daha küçük ama aynı zamanda büyük (ilk proje 12 yıldır, ikincisi 4 yıldır geliştiriliyor).

İlk başta sadece ilk projede çalışıyordum ve buna alışmaya çalışıyordum. Sonra ikinci projeye taşındım ve orada denedim, böylece ilk proje hakkındaki bilgilerim gölgede kaldı. Şimdi aynı anda her iki proje üzerinde de çalışmalıyım.

Benim için çok zor çünkü her ikisi de Java kullanmasına rağmen, farklı çerçeveler kullanıyorlar ve anlamak için kod ve iş mantığı miktarı çok büyük, bu yüzden her iki projeyi de kafamda tutamıyorum.

Bu normal mi ve buna alışmalıyım, uzmanlığım çok zorlaşmasına rağmen, sadece tek bir projede çalışacak olsam ne olmayacak? Veya bir endişe duymalı mıyım yoksa işvereni değiştirmeli miyim?

40
user1449

İnsanlar "evet, çoklu görev normal" dediğinde tamamen katılmıyorum

normal değil ! Hiç de değil, bir geliştiricinin birkaç projede çok görevli olması çok doğal değil (daha sonra açıklayacağım). Diğer yandan, çoklu görevler geliştiriciler arasında çok yaygındır . Bu kesinlikle alışmanız gereken bir şey. Yani sorunuzun gerçek cevabı: çoklu görev nasıl yapılır?

Her şeyden önce, kaderinizi kabul etmemelisiniz çünkü "siz çok iyi bir çalışansınız" ve bu da yapabileceğinizden daha fazla görev almanız gerektiği anlamına gelir. Hiç de değil. Bazen insanlara birden fazla görev verilir çünkü başka kimse yoktur. Bazen yöneticiler işlerini idare edemezler, böylece takımlarına çoklu görevler uygularlar, çünkü onlar proje çizelgelerini düzgün işleyemezler. Bu yüzden, kesinlikle çoklu görev yapmanız istenip istenmediğini belirlemeye çalışmalısınız çünkü işinizin bir parçası veya diğer insanlar beceriksiz. Her iki durumda da, kabul edilebilir olup olmadığına kendiniz karar verebilirsiniz. Eğer [işinizle] rahat değilseniz, iş bulabileceğiniz başka yerler de vardır. [Siz geliştirici olarak metasınız. İşverenler bunu biliyor ve asla farkına varmamanız için dua ediyorlar.]

Şimdi çoklu görev hakkında, insanlar "evet, sadece ileri geri geçin ve her projede aynı miktarı yaptığınızdan emin olun" dediğinde% 100 katılmıyorum. Üzgünüm ama bu çok kötü bir tavsiye.

Öncelikle, bir yazılım geliştirirken beyninizin nasıl çalıştığını anlamalısınız (başka görevler olduğunu biliyorum, ancak buna odaklanalım). Öncelikle “kablolu” olmanız gerekir, yani çok konsantre olmanız ve zihninizi kafanızda her şeyin eşleştirildiği bir konumda tutmanız gerekir. Tüm değişken ve yöntem adları, kodunuzun iş akışı, nesne modeli, iş parçacıkları yan yana gidiyor, her şey. Genellikle "bölgede" almak için 15 belki 20 dakika sürer.

Bu duruma geldiğinizde gerçekten uçuyor ve bisiklete biniyormuşsunuz gibi kod yazıyorsunuz. Araya girdiğiniz anda hepsini kaybedebilirsiniz. Kesinti yeterince uzunsa (5, 10 belki 30 dakika) bu ruh halinizi kaybedersiniz ve baştan başlamak zorunda kalırsınız.

Bu yüzden çoklu görevler korkunçtur çünkü sizi "bölgeden" ayrılmaya ve başka bir şeye geçmeye zorlar. Sürekli olarak geçiş yapıyorsanız, üretken olmadığınız anlamına gelir, çünkü yeni bir göreve/projeye her değiştiğinizde, bölgeye tekrar girmek için bu 15-20 dakikayı kaybetmeniz gerekir (bahsetmemek beyninizi yavaşça eritir).

Bu çok iş parçacığı gibi: bir noktada iş parçacığı bağlamını değiştirmenin maliyeti her çift döngüde çok yüksektir, böylece CPU, gerçek görevleri yerine getirmekten daha fazla zaman geçirmek için bağlam harcar.

Bu konuda Joel Spolsky'den bir makale okumanızı şiddetle tavsiye ederim:

http://www.joelonsoftware.com/articles/fog0000000022.html

Benim tavsiyem şudur: Çok görevli olmayı (yapmamayı) öğrenmeye çalışın çünkü gerçekten yaygındır. Ancak bunu yaparken rahat olduğunuzdan emin olun. Bazı insanlar konsantre olmak için daha fazla zaman alabilir ve çoklu görev yaparken diğerlerinden daha fazla acı çeker; ve bu da iyi. Bu normal kabul edilmesi yaygın olduğu için değil.

Joel söylediğinde iyi koydu:

Aslında, tüm bu gerçek ders, insanların aynı anda birden fazla şey üzerinde çalışmasına asla izin vermemenizdir. Ne olduğunu bildiklerinden emin ol. İyi yöneticiler, insanların bir şeye odaklanabilmeleri ve gerçekten başarabilmeleri için sorumluluklarını engelleri kaldırmak olarak görürler.

54
Alex

Evet, beklenebilir. Ve memnuniyetle karşılandı.

Buna bakmanın birkaç yolu vardır:

  1. Çok görevli olmanız bekleniyor ve odaklanmak neredeyse imkansız. Bu, optimal olmayan mühendislik süreçleri, ileri geri geçişte ara sıra karışıklık, sömürülme hissi, hayal kırıklığı, stres vb. İle sonuçlanır. ancak,

  2. Ürettiğiniz sonuçlara ve işvereninizin yeteneklerinize duyduğu güveye iyi yansıyan birden fazla projeye güveniyorsunuz. Onlara güvenin garanti edildiğini göstermek için bir fırsat.

Benim tavsiyem ayık yargı geliştirmek hangi görevlerin derhal ilgilenilmesini ve hangilerinin beklemesini gerektirir. Bazen cevap, ikisinin de bekleyemeyeceği ve sonuçların sağlanması için yaratıcı bir yaklaşım benimsemenizdir (A projesi için biraz, sonra B projesi için biraz, sonra durulayın ve tekrarlayın). Bu tür bir durumda gelişmek için gereken becerileri geliştirin.

Normalde (her zaman olmasa da), bu daha fazla sorumluluk, daha fazla övünme projesi ve daha fazla beklentiyle ödüllendirilecektir. Bir noktada bu çalışmanın bir kısmını devredebileceksiniz. Bu bir başarı ölçüsüdür.

Dolayısıyla, büyüyen hokkabazlık becerileriniz sadece mevcut şirketiniz tarafından kullanılsa bile, bunlar sahip olmak için iyi becerilerdir ve kariyerinizde size iyi hizmet edecektir.

Değer için, genellikle büyük bir proje, daha küçük bir proje, eski projelerin bakımı ve desteği üzerinde çalışıyorum ve en az bir tane daha yönetiyorum. Sinir bozucu, kafa karıştırıcı, yorucu ve çok minnettarım.

33
b w

Evet! Bir servis şirketi xD ​​üzerinde çalışırken bu tamamen "normal"/olağan

Ayrıca açık kaynaklı projelerle işbirliği yapıyorsanız, bu kural

Belki ideal ve ideal bir durum değildir, ama hergünün ekmeğidir.

15
yeradis

Bu yaygın. Ama ana hatlarıyla belirttiğiniz nedenlerden dolayı bu iyi değil. Bağlamı değiştirmek üretkenliğe dönüşür, bu nedenle mümkünse, büyük bir süre boyunca bir proje üzerinde çalışmaya çalışın, ör. bir gün.

12
Anthony

Her gün 2 ila 3 farklı projede aktif olarak çalışıyorum. Ve birkaç düzine daha devam edin. Bazı haftalar biraz ezici oluyor. Bazı projeler çok büyük, bazıları o kadar küçük ki birkaç gün içinde kodlanmışlar ve nadiren değişikliklere ihtiyaç duyuyorlar. Değişir, ancak farklı düşünme, çözme ve farklı problemlere, farklı teknolojilere ve iş alanlarına maruz kalmamı sağlar. Zevk aldım.

Yani, sorunuzu cevaplamak için, evet, çok yaygın.

9
CaffGeek

Çoklu Görev Daha Sonra Oraya Gidiyor adlı makaleye göz atın. Bu grafik hikayeyi anlatıyor:

enter image description here

Başka bir deyişle, şirket programcılarının bir seferde birden fazla proje üzerinde çalışmasını sağlayarak zaman kaybediyor. Sadece üç proje ile atık% 40! Geri kalan süre üç projeye ayrılmıştır.

Çoklu görevlerin nedeni genellikle "daha fazla iş yapılması" olarak ifade edilir. Ancak bu hatalı bir akıl yürütmedir. Çoklu görev yalnızca tüm sürümlerin gecikmesine neden olur. Bu görüntü, ikili görevin bir seferde bir projeyi bitirmeye karşı etkisini gösterir:

enter image description here

(Görüntü tamamen ek yükü yok sayar. Gerçekte boşa harcanan zaman her iki projeyi de% 20 sonra yapacaktır.)

8
Martin Wickman

Evet, tecrübelerime göre bu normal (bazı 'projeler' benzer olsa bile, örneğin aynı ürün üzerinde bir bakım ve özellik projesi). Çatışmalardan ve gerçekçi olmayan beklentilerden kaçınmak için, proje yöneticileri ve yöneticinizle zamanınızın belirli kısımlarını her bir projeye tahsis etmeyi kabul edin (örneğin X projesinde üç gün, haftada Y projesinde iki tane). Daha sonra bu tahsisleri istediğiniz gibi dağıtabilirsiniz, ör. Pzt-Çar X üzerinde, Per-Cum Y üzerinde.

Bazen bir projenin "bir istisna attığı" ve üzerinde çalışılması gereken zamanlar olacaktır şimdi. Burada yapılacak iki şey vardır:

  1. sadece saldırgan bir proje yöneticisi değil, gerçekten de bir istisna olduğundan emin olun: İkinci durumda geri itin.
  2. zaman tahsislerinizi değiştirin, böylece her bir projede aynı kesri kullanabilirsiniz.
4
user4051

Şirkete bağlıdır. IMO çoğunlukla sadece bir projede çalışmak istemektedir, ancak bu özellikle küçük şirketler için mümkün değildir.

Tabii ki, hata düzeltmeleri vb. Her zaman her projede olabilir.

4
user281377

Bir projenin çerçevesine veya iş mantığına geri döndüğünüzde hızlanmayı zor buluyorsanız, üzerinde çalışırken mümkün olduğunca fazla belge yazma fırsatını kullanmalısınız. Karmaşık bir sistemin nasıl çalıştığını detaylandırmak, kendi ifadelerinizle, daha sonra projeye geri dönmeyi çok daha kolay hale getirecektir. Ayrıca, bu belgelere yardımcı olmaları gerekirse iş arkadaşlarınıza yardımcı olabilir.

Projenin teknik dokümantasyon kapsamı zaten iyi ise, karmaşık alanlarda çalışırken düşüncelerinizi yazmanız yine de yararlı olabilir. Bu şekilde, bir sonraki geçişinizde düşünce sürecinizi başarabilirsiniz.

3
Matt G

Normal olmamalı ama şu anki işverenimde omuzlarım üzerinde birçok projem var. Kabul etmek biraz zaman alıyor. Verebileceğim en önemli ipucu, çalışmanıza her zaman öncelik vermektir. Patronunuzu size öncelikli görevin ne olduğunu söylemeye zorlayın ve sadece bunun üzerinde çalışın. Diğer projeleriniz hakkında şikayet edenlerden baskı yapmayın. Özgeçmişinizi henüz güncellemeniz gerekmez, ancak yükün makul bir şekilde ele alabileceğiniz bir şeyin ötesine geçmediğinden emin olun.

2
ChaosPandion

Bence normal. İşimin şu andaki şekli (40'a yakın geliştirici, toplam şirket büyüklüğü yaklaşık 700 olan bir şirketteyim). Ve genellikle ortaya çıkan birçok küçük bilet/kusur içeren bir "uzun vadeli" projem var, bu yüzden genellikle% 50 küçük bilet ve% 50 uzun vadeli projede çalışıyor. Zor olan, sürekli kesintinin uzun vadeli projeyi yavaşlatabilmesi ve raydan çıkarabilmesidir.

0
Bmw

Birden fazla proje üzerinde çalışmanın normal olduğunu düşünüyorum. Anahtar, başlangıçta sistemin genel resmi açısından bir belirsizliğe maruz kalacağınızı kabul etmektir.

Daha büyük resmi elde etmeye çalışırsanız, netlik kazanacak ve sistemdeki hareketli/sabit parçaları ve değişikliklerin sistemi nasıl etkilediğini tespit edebileceksiniz.

Bir süre boyunca üzerinde çalıştığınız çeşitli sistemlerde ortak kalıplar bulmayı öğreneceksiniz. Bunlar, bir anda kafanızda tutmanız gereken ayrıntılı bilgi miktarını azaltacak diğer projelerinize başvurabilirsiniz.

0
Pradeep

Önemsiz herhangi bir projede, kendisine atanmış birden fazla kişi vardır. Bu, başkalarıyla işbirliği yapmanız ve işlerini yapmasını beklemenin yanı sıra sizi beklemeleri gerektiği anlamına gelir.

İnsanları boşta oturmak yerine, birden fazla projenin aktif olması yaygındır, böylece gerekirse her zaman açık bir görev vardır.

Yine de her bir projede büyük parçalar halinde çalışmalısınız, böylece "bölgede" olabilir ve üretken olabilirsiniz.

0
user1249