“Yazılım geliştirici” rolünü tanımlayan nedir


10

Genç bir yazılım geliştiricisiyim ve bir yıldan az bir şirkette çalışıyorum.

Her zaman bir yazılım geliştiricisi olmanın yazılım geliştirmek ve bir şey KOD yapmak anlamına geldiğini düşünürken, görevlerim daha çok yönetim tipi işlerde, örneğin Jenkins, SQL Replication vb.

Bu tür işler bir Geliştirici rolüne dahil mi, yoksa bir geliştirici yalnızca yazılım mı geliştiriyor? Bu konuda müdürümle konuşmalı mıyım? Bu, şirketlerin "geliştirme" becerilerini değerlendirmelerinin ortak bir yolu mudur?


9
Sivri saçlı patronunuzun kim olduğuna bağlıdır.
Neil

Her şirket rolleri biraz farklı tanımlayacaktır. Rolünüzün hangi sorumlulukları ve beklentileri kapsadığını yöneticinize sorun.
Bernard

4
Marangozların kereste, el arabası vb. Yüklemek zorunda oldukları zamanlar vardır. Bunların hepsi işin bir parçasıdır. Deneyimsiz bir marangoz iseniz, muhtemelen üst düzey bir marangozdan çok daha fazlasını yapıyorsunuzdur.
Bryan Oakley

1
Yazılım geliştirme> kod yazma. Bir yazılım geliştiricisi Jenkins'in nasıl kurulacağını / kullanılacağını ve / veya (örneğin bir araç gibi) değerini bilmiyorsa, tanımı gereği (çok) küçük bir yazılım geliştiricisi olacaktır. İş başında eğitim olarak düşünün ve kendi CI sunucunuzu kendi VM'nizde kendi zamanınızda tuttuğunuz bir ortamda çalışmadığınız için şanslı sayın. ancak pratikte bu tür araçların (çoğunlukla manuel) "süreçlerinde" izin verilmemesi durumunda cesaretiniz kırılmıştır.
michael

Yanıtlar:


11

Bana bir yetişkini tuttular gibi geliyor, çünkü aslında bir yetişkini istedikleri için değil (bir kıdemli olana kadar yatırım yapabilecekleri ve mentorluk yapabilecekleri). Bu kararı almış olan ve daha iyi bilmeyen yöneticiler tarafından zorlanan bir takımı yönettim.

Kullanıcılar için eğitim videoları oluşturmak gibi talihsiz işlerle sonuçlandı ve şu anda hala suçlu hissediyorum, ancak teslim etmek için baskı altındaydım ve beklenti, geliştirme odasına bir kafa eklemenin sadece işleri hızlandırmasıydı. .

Bu talihsiz bir durum, çünkü sizi ve patronunuzu zor pozisyonlara sokuyor.

Muhtemelen bir yetişkine güvenebileceği herhangi bir işi yoktur ve sahip olabileceği herhangi bir yaşlı, günlük yaşamından uzaklaşamaz. Kolay çıkış yolu, gençlere birçok üst düzey geliştiricinin zamanını boşa harcamak istemediği birçok geliştirme dışı görev vermektir.

Ancak bundan birkaç sorun ortaya çıkıyor.

Birincisi, size verdiği işleri gerçekten üst düzey bir geliştiriciye ihtiyaç duyuyor. Özellikle, bir derleme sunucusu, yazılımı oluşturan ve acı noktalarının nerede olduğunu bilen biri tarafından kurulmalıdır.

İkincisi, çocuk daha kullanışlı hale gelmiyor. Bundan beş yıl sonra, aynı görevleri yerine getirmeye devam edersiniz, çünkü fiili geliştirme çalışmalarıyla hala güvenilemezdiniz.

Üçüncüsü, çocuk sonunda (sizin gibi) kendi kariyerlerine yardım etmediklerini fark edecektir. Gençlerin, düşük deneyim (ve arama deneyimi) yerine düşük kaliteli olduğu varsayımı, bu sektörde korkunç, ancak çok yaygın bir hatadır.

Evet, patronunla otur. Ama içinde bulunduğu durumu anlayın. Herkesin problemlerini çözen bir düzenlemeye gelip gelemeyeceğinize bakın. Kıdemli bir mentora ihtiyacınız olacak ve mevcut görevlerinizin bir kısmının bir kıdemli personele aktarılması gerekecektir. Bu projeyi yavaşlatacak, ancak uzun vadede ödeyecek. Patronunuza ve muhtemelen patronlarına ulaşmanız gereken nokta budur. Ayrıca, maliyetleri azaltmak için sunabileceğiniz bir şey bulup bulamayacağınıza bakın.

Yapamıyorsanız, başka bir yere bakmak isteyebilirsiniz.


Bunlar "kıdemli geliştirici" görevleri DEĞİLDİR. Bu (jenkins) sadece talimatları takip ediyor. Senior dev'in yolu (deneyimden) karar verir, junior dev'in yolu takip eder. Küçük bir geliştirici jenkin kurmaktan şikayet ederse, başka bir küçük geliştirici ararım; ayarlamak için gereken süre, bu soruyu gönderme ve yanıtları okuma zamanından daha azdır. (Biliyorum, çünkü birçok kez hudson / jenkins kurdum. Ve veritabanı çoğaltma. Sooo birçok kez.) "Sadece yap," sonra nasıl yapacağını bileceksin. Hiçbir şeyi nasıl yapacağınızı asla öğrenmezseniz ve liderlik etmeyi beklerseniz, eğitimde PHB'den başka bir şeysiniz.
michael

@michael_n: Tamamen katılmıyorum. Jenkins'i kurmak ve tüm inşa ortamını güvenli, tek tıklamayla dağıtımlara vb. İzin verirken çabaları azaltacak şekilde ayarlamak arasında bir fark vardır. ve bir yapı sunucusu kurmanız istendiğinde bir Kıdemli'in size ne vereceği.
pdr

... ve yine de size katılıyorum: "Jenkins'i kurmakla tüm inşa ortamını kurmak arasında bir fark var." Kesinlikle. Yani, sanırım soruyu tam anlamıyla yorumlamanız size bağlıdır (yaptım). Cenkins kurmak bir öğleden sonradır; make / ant / maven derlemenizi kurmak günler alır ve kolayca haftalara dönüşebilir ve doğru yapılması gerekir. İyi yöneticiler işleri bozabilir ve deneyime dayanarak yetki verebilir (bu bağlamda, geçmişte kötü bir yönetici oldum, sadece daha hızlı olacağı için her şeyi kendim yapmayı seçtim. Ama bu ölçeklenmiyor ve " takım "gelişmez.)
michael

@michael_n: Ne demek istediğine bak. Sanırım bir müdürden beklentilerim daha düşük. Özellikle gelecek planlamasından ziyade finansal nedenlerle bir çocuğu işe alan kişi.
pdr

7

"Yazılım Geliştirici" terimini "Programcı" ile eşanlamlı buluyorum. Dolayısıyla, bir yazılım geliştiricisi birincil sorumluluğu kod yazmak olan bir kişidir. İlk işimde başlığım "Geliştirici" idi ve temel sorumluluğum yazılım tasarlamak ve kodlamaktı. Fakat terimin kesin bir tanımı olmadığını düşünüyorum. Farklı insanlar tarafından farklı şekilde kullanılır, böylece anlam bulanıklaşır.

Ancak bir geliştirme ekibinin verimli bir şekilde çalışması için, bu şeyleri ayarlamanız gerekir, CI sunucuları, SQL çoğaltması, Test sunucularına dağıtım, test sunucularının izlenmesi, yapıların arşivlenmesi, vb. .

Bu görevler bir projenin ilk aşamasında çok zaman alacaktır, ancak iyi bir kurulumunuz olduğunda daha az zaman alacaktır.

Ne yazık ki, geliştiriciler kodları derlemek istemiyorlar. Bu nedenle, sık sık bu sıkıcı görevler, üst düzey geliştiricilerin daha önemli görevleri olduğu için genç geliştiricilerin ellerine düşer.

Bu görevleri becerilerini değerlendirmek için kullanan herhangi bir şirket yaşamadım.

Mevcut sorumluluklarınızdan memnun değilseniz, meseleyi bölüm müdürünüze götürmenizi öneririm.


1
Göre terimler arasında bir fark vardır bu .
Bernard

1
Ayrıca göre bu
smp7d

2

Değişir. Farklı şirketler bunu farklı tanımlamaktadır ve bazıları için bir dizi teknik işlev için bir şemsiye terimdir. Bazıları için sadece bir başlık. Daha önce aynı soruyu sorduğumda, "Sadece geliştiriciler bunu kuruluşumuzda yapabilme yeteneğine sahiptir" diye bir cevap aldım, belki diyebilirim, ama bu gelişmeyi gerektirmez).

Teorik cevap, bir geliştiricinin (kodlayıcı / programcı ile karşılaştırıldığında) "bir şeyi kodlamak" ile ilgili olmasa bile "sorunları çözen" bir kişidir.

Daha fazla kod yazmak istiyorsunuz, bu yüzden yöneticinizden daha fazla kodlama görevi isteyin ya da kodlama ile yaptığınız bazı şeyleri yapsın. Operasyonel şeylerden bahsettiniz, bu nedenle bazıları DevOps çerçeveleri ( şefi ve kuklayı kontrol et) tarafından yapılabilir , bu da işlevleri daha verimli hale getirir ve gelişime yakındır.


2

Bir Geliştiricinin bazı sistem yönetimi becerilerine sahip olması beklenmez . Kıdemli bir geliştirici olarak, zamanımın yaklaşık% 5'inin bu tür görevlere harcandığını tahmin ediyorum.

Ancak, herhangi bir kodlama yapmıyorsanız , muhtemelen yöneticinizle kodlama görevleri hakkında konuşmalısınız. Sonuçta, kodlama deneyimi oluşturmak istiyorsunuz. Programcı olarak sistem yöneticisi olmaktan daha değerlisiniz.


1

Kod, bir uygulamaya düzgün şekilde yerleştirilmezse veya doğru verilere erişmezse çok kullanışlı değildir, bu nedenle listelediğiniz etkinlikler bir geliştiricinin yaptığı ile çok benzer görünür. Yazılım geliştiricilerin de belgeleme ve test konusunda da çok karışık olduklarını eklemeliyim. Bunlar yazılım üretiminde gerekli faaliyetlerdir.

Şirketinizde bu işleri sizin için yapabilen uzmanlar varsa harika, ancak değilse, yazılım geliştiricileri bir uygulamayı üretime dağıtmaya ve orada desteklemeye kadar (ve muhtemelen dahil) her şeyden sorumludur.


0

Küçük ve orta ölçekli bir şirketteki geliştiricinin bazı sunucu yöneticisi / DBA / genel yapılandırma görevlerini üstlenmesi oldukça yaygındır.

Ancak, bu görevler sorumluluklarınızın çoğunluğu haline gelmeye başlarsa, kariyer hedeflerinize bağlı olarak endişelenmeniz gereken bir şey olabilir. Muhtemelen genel bir teknoloji uzmanı olarak belirli şirketler içinde gelişebilseniz de, yeni bir şirkete taşınmanız gerektiğinde geçişinizde birçok soruna neden olabilir. Geleneksel bir gelişme yapmıyorsanız, özgeçmişinizde bunu açıkça belirttiğinizden emin olmanız gerekir. Açıkladığınız gibi bir işteki bir ipliğin ardından düz gelişimde bir iş bulmak istiyorsanız, sektördeki yıllara dayanarak "fazla niteliklendirdiğiniz" bir şeyi kabul etmeniz gerekebilir.

Öte yandan, farklı becerilere sahip geliştiriciler arayan şirketler olabilir. Ancak röportajlarda mevcut kod yazma eğilimi ile, iş girdiğinizde az kod gerektirse bile, birinci sınıf kodlama becerilerine sahip olmanız gerekecektir.

Eğer şu anki pozisyonunuzda sıkışıp kalmak istemiyorsanız, durumu yakında düzeltmeye çalışacağım.

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.