[]
Remote olarak insan çalıştırmak (yazılım)
işlerimi remote olarak dağıtmak istiyorum. ancak bu süreçte, hem işin verimli olması, hem zarar etememem için bu remote insan çalıştırmanın usullerini öğrenmek istiyorum.
not: yazılımcıyım. ama artık kendimi eskisi kadar güçlü, hızlı, pratik hissetmiyorum. konsantrasyonumu yitirdiğim zamanlarda para kaybediyorum, çünkü işlerin devamlılığını sağlayacak ikinci bir kişi yok. türkiye'de insan bulmak imkansız hale geldi, aylarca aradım, yetkinliğe sahip, verdiğim projeyi tammalayabilecek neredeyse kimseyi bulamadım. bulabildiklerim de, benim o iş için aldığım bütçeden fazlasını istediği için çalışamadım. (ölücü vs. değilim, yanlış anlaşılmasın. diğer arkadaşlar da pahalıcı değildi. sadece şartlar karşılıklı uyuşmamış oldu)
örneğin şunu merak ediyorum: bir projem var, ve ben bu projeyi tamamlatmak için olmasa da, ayağa kaldırmak için bir hindistanlı ile anlaşmak istiyorum. ona bu işi ne tür koşullarda teslim etmem gerekiyor? E/R diyagramları, class model yapısı vs. tümünü diyagramlarla çizip eksiksiz mi teslim etmem gerekiyor, yoksa projeyi anlayıp yalnızca e-r diyagramları hazırlaıyp vermem mi gerekiyor? işin takibini nasıl yapıyoruz? ylanıca issue bazlı bir takip yeterli oluyor mu?
bu işin gerçekten, en ince detayına kadar püf noktaları neler? bir hindistanlıdan veya ukraynalıdan veya başka remote birinden, projeyi en doğru düzgün şekilde alabilmek için kendi tarafımda nasıl bir yapı kurmam gerekiyor? kendimi nasıl hazırlamam, projemi nasıl şekillendirip teslim etmem gerekiyor?
buna dair bir ders, kitap vs. var mıdır?
veya sizin bildiğiniz yöntemler varsa anlatır mısınız?
not: yazılımcıyım. ama artık kendimi eskisi kadar güçlü, hızlı, pratik hissetmiyorum. konsantrasyonumu yitirdiğim zamanlarda para kaybediyorum, çünkü işlerin devamlılığını sağlayacak ikinci bir kişi yok. türkiye'de insan bulmak imkansız hale geldi, aylarca aradım, yetkinliğe sahip, verdiğim projeyi tammalayabilecek neredeyse kimseyi bulamadım. bulabildiklerim de, benim o iş için aldığım bütçeden fazlasını istediği için çalışamadım. (ölücü vs. değilim, yanlış anlaşılmasın. diğer arkadaşlar da pahalıcı değildi. sadece şartlar karşılıklı uyuşmamış oldu)
örneğin şunu merak ediyorum: bir projem var, ve ben bu projeyi tamamlatmak için olmasa da, ayağa kaldırmak için bir hindistanlı ile anlaşmak istiyorum. ona bu işi ne tür koşullarda teslim etmem gerekiyor? E/R diyagramları, class model yapısı vs. tümünü diyagramlarla çizip eksiksiz mi teslim etmem gerekiyor, yoksa projeyi anlayıp yalnızca e-r diyagramları hazırlaıyp vermem mi gerekiyor? işin takibini nasıl yapıyoruz? ylanıca issue bazlı bir takip yeterli oluyor mu?
bu işin gerçekten, en ince detayına kadar püf noktaları neler? bir hindistanlıdan veya ukraynalıdan veya başka remote birinden, projeyi en doğru düzgün şekilde alabilmek için kendi tarafımda nasıl bir yapı kurmam gerekiyor? kendimi nasıl hazırlamam, projemi nasıl şekillendirip teslim etmem gerekiyor?
buna dair bir ders, kitap vs. var mıdır?
veya sizin bildiğiniz yöntemler varsa anlatır mısınız?
Freelancer gibi sitelerden hindistanlı, pakistanlı, çinli birilerini bulup iş yaptırmayı düşünüyorsan vazgeç, paranla rezil olursun. Eğer işini adam gibi özenerek yapacak birisini arıyorsan ruslara bakmanı öneririm.
Karşındaki adam zekiyse ve kodlamaya hakimse e/r yeterli olur ama ben net olarak bu yapıyı istiyorum diyorsan flowchart'a kadar vermen gerekir. (belki başka bir sistemle ortak çalışacaktır, ilerde geliştirmeye açık olmasını istiyorsundur, devreye almayacağın özelliklerin hazır olmasını istiyorsundur vs)
Freelancer gibi sitelerde projeyi belli parçalara bölebiliyorsun (milestone), bu sayede işi parça parça yapıp hem yönetilmesi kolay hale getiriyorsun, hem karşı taraf emeğinin karşılığını alacağını görüyor.
Tekrar etmekte fayda görüyorum, karaktersiz pakistanlı, hindistanlı ve çinlilerden uzak dur, alayı dolandırıcı, çöp işler çıkarıyorlar. Projenin kolay kısmını "bitirip" kaçıyorlar.
Karşındaki adam zekiyse ve kodlamaya hakimse e/r yeterli olur ama ben net olarak bu yapıyı istiyorum diyorsan flowchart'a kadar vermen gerekir. (belki başka bir sistemle ortak çalışacaktır, ilerde geliştirmeye açık olmasını istiyorsundur, devreye almayacağın özelliklerin hazır olmasını istiyorsundur vs)
Freelancer gibi sitelerde projeyi belli parçalara bölebiliyorsun (milestone), bu sayede işi parça parça yapıp hem yönetilmesi kolay hale getiriyorsun, hem karşı taraf emeğinin karşılığını alacağını görüyor.
Tekrar etmekte fayda görüyorum, karaktersiz pakistanlı, hindistanlı ve çinlilerden uzak dur, alayı dolandırıcı, çöp işler çıkarıyorlar. Projenin kolay kısmını "bitirip" kaçıyorlar.
- kimlanbu (17.08.20 11:10:12)
aynen aslında ona dair de tavsiye gerekiyordu.
kimlere, hangi sitelerden teklif yollamalıyım. nerden nasıl bakmalıyım vs. gibisinden.
peki sistemin işleyişi nasıl sürüyor?
ben adama projeyi tanıtıp e/r diyagramlarını gösteriyorum, o fiyat atıyor ardından işe mi başlıyoruz? ödeme vs. gibi durumların süreçleri nasıl yürüyor?
bitmeyen işin parası cepten çıkıyor mu?
kimlere, hangi sitelerden teklif yollamalıyım. nerden nasıl bakmalıyım vs. gibisinden.
peki sistemin işleyişi nasıl sürüyor?
ben adama projeyi tanıtıp e/r diyagramlarını gösteriyorum, o fiyat atıyor ardından işe mi başlıyoruz? ödeme vs. gibi durumların süreçleri nasıl yürüyor?
bitmeyen işin parası cepten çıkıyor mu?
- tchuck (17.08.20 11:13:52)
Bir yıl kadar remote takım yönettim. Şu anda da remote bir ekipte çalışıyorum.
Öncelikle şu kitabı bir okuyun: basecamp.com
Sonrasında:
1- İşe alacağınız kişiyi iyi seçmeniz gerekiyor. Remote çalışmak kolay değil, kendi kendine o disiplini sağlayabilecek, kalite algısı olan birini bulmanız lazım. Daha önceden remote çalışmış biri, o olmazsa kendi projeleri, düzgün github'ı falan olan birini bulmaya çalışın.
2- İşi baştan anlatıp, sonra hazır teslim almak diye bir şey yok. Haftalık sprint yapın. Her hafta için yapılması gereken işi detaylıca anlatın. İş bitince code review'ı siz yapın. Code review'ı geçen iş başına ödeme yapın. Bu süreç için haftada 1 saatlik bir toplantı genelde yeterli oluyor.
3- Mümkünse işe tek bir kişi almayın. Birden fazla kişi olsun. Birisi bırakıp gittiğinde yeni birini bulana kadar proje durmasın. Ayrıca takıldıkları yerlerde size gelmeden kendi aralarında yardımlaşabilsinler.
4- Hatırladığım kadarıyla PHP yazıyordunuz. Bence dili değiştirmeyi düşünebilirsiniz, çünkü kaliteli PHP dev. bulmak zor. PHP öğrenmesi ve başlaması kolay bir dil olduğu için çok fazla kötü PHP dev. var.
5- Hintli veya Ukrain diye eleman çok ucuz olmayacak bu arada. Yani isterseniz çok ucuza da eleman bulursunuz ama onun astarı yüzünden pahalıya gelir, code review'da çok daha fazla zaman harcarsınız vs. ABD'de olsa 100k alacak adamı 50k'ya çalıştırabildiğiniz için Hintli normalde ucuza geliyor, ama projenin öyle bir bütçesi yoksa, zaten düşük ücretlere çalıştıracaksanız çok umutlanmayın.
6- Kendinize bir çalışma stili oluşturun. Hangi durumda ne yapılması gerektiği belli olsun. Örneğin acil bir feature lazım, ama o kadar zaman yok? Kod kalitesi mi feda edeceksiniz, gereksiz özellikleri mi çıkaracaksınız, tasarımdan mı fedakarlık edeceksiniz vs. öncelikleriniz belli olsun. Yanyana olmadığınız için bu konularda nasıl bir aksiyon alınacağı belli olmazsa çok vakit kaybı olur. Ekip buna alışana kadar 1-2 ay geçer, o normal. Çalışma stilinizi iyi anlatmanız lazım, bir kere söyleyince anlaşılmayacak muhtemelen, o da normal. Gerilmeyin.
7- İyi commit mesajı yazma eğitimi verin gelenlere. Comment falan çok önemli değil ama bir değişikliği kim, ne zaman ve neden yapmış bulabilmek çok önemli olacak. Aynı ofiste olmadığınız için gidip sormadan bu soruların cevabını alabilmeniz lazım. Aynı şekilde güzel bir CI/CD process'i kurun, ticket'lar ile commit'ler bağlantılı olsun. Birine sormadan history takibi yapılabilsin.
8- Yanıbaşında hemen sorabilecek birisi olmayacağı için iyi SO rep'i olan birini işe alın. Kendi kendine bir sorunun çözümünü bulabilmek, bulamazsa düzgünce sorup cevap alabilmek remote çalışanın en önemli özelliklerinden biri.
Aklıma gelenler bunlar. Varsa sorunuz cevaplamaya çalışabilirim.
Öncelikle şu kitabı bir okuyun: basecamp.com
Sonrasında:
1- İşe alacağınız kişiyi iyi seçmeniz gerekiyor. Remote çalışmak kolay değil, kendi kendine o disiplini sağlayabilecek, kalite algısı olan birini bulmanız lazım. Daha önceden remote çalışmış biri, o olmazsa kendi projeleri, düzgün github'ı falan olan birini bulmaya çalışın.
2- İşi baştan anlatıp, sonra hazır teslim almak diye bir şey yok. Haftalık sprint yapın. Her hafta için yapılması gereken işi detaylıca anlatın. İş bitince code review'ı siz yapın. Code review'ı geçen iş başına ödeme yapın. Bu süreç için haftada 1 saatlik bir toplantı genelde yeterli oluyor.
3- Mümkünse işe tek bir kişi almayın. Birden fazla kişi olsun. Birisi bırakıp gittiğinde yeni birini bulana kadar proje durmasın. Ayrıca takıldıkları yerlerde size gelmeden kendi aralarında yardımlaşabilsinler.
4- Hatırladığım kadarıyla PHP yazıyordunuz. Bence dili değiştirmeyi düşünebilirsiniz, çünkü kaliteli PHP dev. bulmak zor. PHP öğrenmesi ve başlaması kolay bir dil olduğu için çok fazla kötü PHP dev. var.
5- Hintli veya Ukrain diye eleman çok ucuz olmayacak bu arada. Yani isterseniz çok ucuza da eleman bulursunuz ama onun astarı yüzünden pahalıya gelir, code review'da çok daha fazla zaman harcarsınız vs. ABD'de olsa 100k alacak adamı 50k'ya çalıştırabildiğiniz için Hintli normalde ucuza geliyor, ama projenin öyle bir bütçesi yoksa, zaten düşük ücretlere çalıştıracaksanız çok umutlanmayın.
6- Kendinize bir çalışma stili oluşturun. Hangi durumda ne yapılması gerektiği belli olsun. Örneğin acil bir feature lazım, ama o kadar zaman yok? Kod kalitesi mi feda edeceksiniz, gereksiz özellikleri mi çıkaracaksınız, tasarımdan mı fedakarlık edeceksiniz vs. öncelikleriniz belli olsun. Yanyana olmadığınız için bu konularda nasıl bir aksiyon alınacağı belli olmazsa çok vakit kaybı olur. Ekip buna alışana kadar 1-2 ay geçer, o normal. Çalışma stilinizi iyi anlatmanız lazım, bir kere söyleyince anlaşılmayacak muhtemelen, o da normal. Gerilmeyin.
7- İyi commit mesajı yazma eğitimi verin gelenlere. Comment falan çok önemli değil ama bir değişikliği kim, ne zaman ve neden yapmış bulabilmek çok önemli olacak. Aynı ofiste olmadığınız için gidip sormadan bu soruların cevabını alabilmeniz lazım. Aynı şekilde güzel bir CI/CD process'i kurun, ticket'lar ile commit'ler bağlantılı olsun. Birine sormadan history takibi yapılabilsin.
8- Yanıbaşında hemen sorabilecek birisi olmayacağı için iyi SO rep'i olan birini işe alın. Kendi kendine bir sorunun çözümünü bulabilmek, bulamazsa düzgünce sorup cevap alabilmek remote çalışanın en önemli özelliklerinden biri.
Aklıma gelenler bunlar. Varsa sorunuz cevaplamaya çalışabilirim.
- plutongezegendegilmi (17.08.20 11:26:35)
@pluton,
2. maddeye bir cevap vereyim. evet php yazıyorum. aslında değiştirmeyi düşnüüyorum, python faalan da olur, benim içn yazan kişnin ne yazdığının önemi yok. biri projeyi python yazarsa onu da review edebilriim.
ama bir yandan da laravel'i proje çıkarmak için çok uygun görüyorum. ben büyük çaplı projeler yapmıyorum, orta ölçek projeler yapıyorum. laravel bence piyasadaki en iyi framework bu çapta projeler için. hem kontrolü kolay, hem hatalı kod yazmına karşı inanılmaz hassas.
2. maddeye bir cevap vereyim. evet php yazıyorum. aslında değiştirmeyi düşnüüyorum, python faalan da olur, benim içn yazan kişnin ne yazdığının önemi yok. biri projeyi python yazarsa onu da review edebilriim.
ama bir yandan da laravel'i proje çıkarmak için çok uygun görüyorum. ben büyük çaplı projeler yapmıyorum, orta ölçek projeler yapıyorum. laravel bence piyasadaki en iyi framework bu çapta projeler için. hem kontrolü kolay, hem hatalı kod yazmına karşı inanılmaz hassas.
- tchuck (17.08.20 11:31:28)
Laravel bilmiyorum. Geçen sene iş alımı zamanında onlarca dev. ile görüştüm. Biz Go yazıyoruz, niye bilmiyorum PHP dev'ler Go ilanlarına da başvuruyor. Neyse, 20-30 kişi arasından sadece bir tane iyi PHP dev denk geldi. O eleman da çok iyiydi, bize gelmek yerine automattic'e gitti zaten :(
Ama mesela JS ilanı da açtık. Ona başvuran herkes iyiydi, aşırı rahat bir hiring süreci geçirdik. Python değil de isterseniz ExpressJS deneyebilirsiniz, fena bir framework değil, zaten frontend için JS/Vue bilen birilerini de arayacaksınız muhtemelen.
Ama mesela JS ilanı da açtık. Ona başvuran herkes iyiydi, aşırı rahat bir hiring süreci geçirdik. Python değil de isterseniz ExpressJS deneyebilirsiniz, fena bir framework değil, zaten frontend için JS/Vue bilen birilerini de arayacaksınız muhtemelen.
- plutongezegendegilmi (17.08.20 11:52:03)
Size özelden bir mesaj gönderdim.
- 2006 (17.08.20 16:12:53)
1