Başka birinin kodunu öğrenme sürecini nasıl tanımlamalıyım? (Faturalandırma durumunda.) [Kapalı]


16

Edit: Justin Cave alıntı bu tür iletişim tırnak / tahminleri önünde olması gerektiğini iyi bir noktaya geldi. Bu durumda, insanların 'mevcut kod öğrenme' etkinliklerini tanımlamak için ne tür bir dil kullandıklarını bilmek istiyorum. Özellikle yazılım yüklenicileriyle daha önce ilgilenmemiş bir şirket için. Düzenlemeyi bitir

Büyük bir şirket için bazı şirket içi yazılımları yükseltme sözleşmem var. Şirket birden fazla özellik eklemesi ve birkaç hata düzeltmesi istedi. Bu benim ilk serbest stil işim.

İlk olarak, uygulamanın nasıl çalıştığına aşina olmalıydım - bir kullanıcıymışım gibi öğrendim.

Sonra, yazılımın nasıl çalıştığını öğrenmek zorunda kaldım. Geniş konseptlerle başladım ve daha sonra her hata düzeltme ve özelliği üzerinde çalışmadan önce gerekli ayrıntılara daldım.

En azından projenin başlangıcında, mevcut kodu öğrenmek, ek özellikleri yazmaktan çok daha uzun sürdü.

Faturadaki mevcut kodu öğrenme sürecini nasıl tanımlayabilirim? (Şirketin bu kısmı genellikle şirket içinde bir şeyler yapar, bu yüzden benim gibi yazılım yüklenicileriyle uğraşmak için çok fazla deneyime sahip değildir ve korkarım ki başka birinin kodunu öğrenme yükünü anlayamayabilirler). Öğrenim zamanını gerçek özellik yükseltmesine bağlamak istemiyorum, çünkü bazı durumlarda bu çok basit bir görev gibi görünüyordu, bu beni çok uzun sürdü. Faturayı ilgili adımlara bölmek istiyorum ve kendi kodumu eklemeden önce başkasının kodunu öğrenmenin büyük yükü için ücret aldığımı bildiriyorum.

Bir iş için faturalandırma yaparken bu tür etkinlikleri tanımlamanın standart bir yolu var mı?


güzel soru! öyle neredeyse gibi üstlenmeden ama ima hiçbir düzenleme yoktur, çünkü değil.
ZJR

2
Ayrıntılı bir arıza sağlamanız bekleniyorsa / daha sonra bir dizi özellik ve düzeltmeye sahip olduğunuz ve tümünün kod tabanının farklı bir dereceye kadar anlaşılmasını gerektirdiği göz önüne alındığında , kod tabanını her birinin üzerinde anlama maliyetini amorti edeceğim görevler, o görev için harcanan zamanla orantılı olarak.
Mark Booth

Yanıtlar:


4

"Mevcut işlevselliği gözden geçir" ve / veya "Mevcut kodu gözden geçir" gibi görevleri faturalayabilirim. Yeni özelliklerin karmaşıklığına bağlı olarak, mevcut koda entegrasyon noktalarını bulmak için harcadığım zamanı içerecek bir "Tasarım xxx" görevi ekleyeceğim.

Müşteriye, yeni bir danışmanı hızlandırmanın bazı yükleri olduğunu ve sonuçtan memnunlarsa, aynı danışmanla çalışmaya devam etmenin muhtemelen kurtaracağını açıkça belirtmek iyi bir fikirdir. para.


Herhangi bir sorun olmadan faturalara "Mevcut kodu öğren" gibi görevler ekledim.
tcrosley

13

Sorun Teşhisi.

Bu, tanıdık bir terimdir, otomatik olarak sabitlenir veya doktora giderseniz, teşhis neyin yanlış olduğunu bulmak için yaygın bir terimdir. Aynı zamanda doğrudur, kaputun altına girmeniz ve neyin çalışmadığını anlamak için her şeyin nasıl bağlandığını görmeniz gerekir. Bu kılavuz olmadan bir motor üzerinde çalışmaya gerçekten benziyor ve şirket daha önce başka bir motora bakmadan motoru yaptı ve muhtemelen benzersizdi.

Uzun soluklu veya garip olarak ifade edilen bir satır öğesi, gerçekten istemediğiniz daha fazla soru alır. "Sorun teşhisi" az çok evrensel olarak anlaşılmış bir kavramdır.


Teşekkürler anon. Evet, sanırım uzun sargılı bir ip tarafından yarı gizli olmak yerine net ve ön tarafta olması gerekiyor.
MattyG

6

Müşteriye faturada hiçbir şey müşteri için sürpriz olmamalıdır. Bunu göz önünde bulundurarak, müşteri ile zamanınızın önemli bir kısmının başlangıçta hem bir kullanıcı perspektifinden hem de bir geliştirici perspektifinden uygulamaya alışmak için harcanacağını umduğunuzu umuyorum. Ve ilk birkaç özellik için yaptığınız tahminler, umarım kodu tanımak için yeterli bir süre içerdiklerini belirtmiştir.

Müşteri ile ilk faturadaki zamanın çoğunun uygulamaya alışmak için harcanacağı beklentisini zaten belirlediyseniz, faturada nasıl listelediğinizin çok fazla önemi yoktur. Tahminleri verirken ve beklentileri ayarlarken kullandığınız dili kullanın. Bunu yalnızca şimdi iletmeye çalışıyorsanız, bir sorununuz var.


Teşekkürler Justin, orada iyi noktalar. İş teklifi aşamasında ne tür bir dil kullanırsınız?
MattyG

3

Serbest çalışan olarak kapasitemde, bunu genel anlamda "Bilgi Asimilasyonu" gibi bir terim olarak ifade ederdim. Ve bu, başlangıçta müşteriye sunulan herhangi bir tahmine dahil edilirdi.

Burada size yardımcı olmayabilir, ancak ileride başvurmak için, bunu gelecekte daha aktif bir görev haline getirmenizi öneririm. Örneğin, müşterinizi geçirdiğiniz süre boyunca faturalandırın ve yorumlanmamış koda yorum ekleme, test edilmemiş koda birim testleri ekleme vb. Bunlar, kod tabanını daha iyi anlamanıza yardımcı olurken en az biraz değer katan görevlere örnektir. .

Belgeleme sırasında okuma ve okuma arasında çok fazla fark olmasa bile, müşterinizin bu daha 'aktif' görevler için muhtemelen küçük bir psikolojik tercihi olacaktır. Ve aslında bir başkasının kodunu basitçe okuyarak belgelendirerek daha fazla bilgi edinebilirsiniz. ( Kodlarına karşı testler yazarsanız bu kesinlikle geçerli olacaktır).

Bunu yaparsanız, "Bilgi Asimilasyonu ve Eski Kod Test / Dokümantasyon" gibi bir şey söyleyen bir fatura satır öğeniz olabilir.

Düzenleme: Açıklandığı gibi durumunuzda, dürüstçe muhtemelen bu faaliyetin maliyetini yemek istiyorum. Finansal durumunuzla konuşamıyorum ve tahmin etmek istemiyorum, ancak başladığınızda, referansları ve memnun müşterileri bir kaç saatlik faturalandırmaya göre daha yüksek bir değere koyardım. Bu, başlangıçta etkili bir düşük oran anlamına gelirse, iyi bir yatırım olabilir. Uzun vadede bazı faturalandırılabilir saatler yemek, muhtemelen adil bir sarsıntı olduğunu düşünen memnun bir müşteri için ödemek için küçük bir fiyattır.


Teşekkürler Erik. Kod yorumlama hakkında büyük nokta; sıfır mevcuttu, bu yüzden bunu yol boyunca yapıyorum. Evet, katılıyorum, 'bilgi asimilasyonu' saatlerinin yaklaşık yarısını kendim yedim ve sadece geri kalan yarısı için faturalandırma yapacağım.
MattyG

2

Bir hatayı düzeltme: temel neden analizi.

Yeni özellik: analiz, tasarım, entegrasyon ve test.

Yeni hatalar: iş güvenliği. :)


Kök neden analizi için +1, ancak cevabın geri kalanı için -1 ayrıntıda biraz hafiftir.
Mark Booth

1

İşlerin nasıl çalıştığını anlamayı seven ve rüya gibi gözlerle beni dinleyen bir müşteriyle, bir düz ile giderdim Codebase Familiarization. Ona beni ne kadar acı çektiğini ve daha fazla yükseltme için bana gelmenin avantajını daha önce açıklamıştım.

Diğer müşteri türüyle ... (aynı muamele, ama açıkça söylediğim tek bir kelimeyi dinlemiyor ) Şu satırlarda bir şeylerle giderdim:

  • Planning Phase
  • Intervention Planning

    (Aslında bunu kullanırdım, ama İtalyanca olarak yazardım, kulağa daha iyi geliyor)

  • O zaman belki... Solution Planning

Önerinin bir Diagnosiskısmını beğendim , ama bu bana doğru gelmiyor. Hafif, önyargılı, cahil ve yüzeysel eleştirilere açık olabilir ... geride kötü bir tat bırakabilir.Problem DiagnosisanonProblem

Bilirsiniz, herkes dış danışmana bir dart atmak ister ve yaparlar. (... onlarla konuşurken sorunun kökenini anlayacak kadar iyi değilmiş gibi ve clueless'ini faturalamak zorunda kaldı ya da tanrı ne biliyorsa)


1

Benim tamirci bana bir fatura gönderir "Yağ değiştirme, kıvılcım artı, filtreleri kontrol, lastik rotasyonları. Motor çıngırak, yol testi tamir .....

Parçalar (ayrıntılı),

Emek x @ $ y / saat = z)

Emeği parçalamıyor, sen de yapmamalısın. Toplam saat faturalandırın ve ne yaptığınızı açıklayın.

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.