February 2007 Entries etiketi ile ilgili girdiler...

Uzun zamandır ara vermişti yazılarına. Blog mlog olayından çok önce ortaya çıkmıştı. Gezilesi okunası bir site www.kavanoz.net tavsiye ederim.

Google.Code artık Subversion hizmetide vermeye başladı. Aynen Sourceforge gibi ufak tefek projelerinizi Google.Code ile sürüm kontrolüne alabilirsiniz.

Sourceforge gibi onaylama işlemleri olmadığı için proje açma işleri daha hızlı işliyor. Benim Subtext emotikonlarını Windows Live Writer ile kullanabilmek için yaptığım minik projeyi gönderdim bile. http://code.google.com/p/subtextsmilies/ adresinden bakabilir ve kodları indirebilirsiniz.

[Scott Watermasysk'in blogundan öğrendim]

Uzun zaman oldu Subtext 1.5 sürümü ile takılıyordum. Bugün artık 1.9.4 sürümüne yükselttim siteyi ve ASP.NET 2.0 ile yolumuza devam ediyoruz. Bu yeni sürümde yeni gelen özellikler

  1. Akismet Spam koruma
  2. Kategori eklentisi (artık her girdinin altında kategorilerini gösterebiliyoruz)
  3. FeedBurner desteği
  4. ve hata düzeltmeleri

var. Yeni sürüm ile birlikte yeni bir kaç tema da boy gösterdi. Temalara http://subtextskins.com/ adresinden bakabilirsiniz. Projenin Sourceforge sayfası http://sourceforge.net/projects/subtext ve derleme sunucusu http://haacked.dyndns.org/ccnet adreslerinde.

Ayrıca dökümantasyon için http://subtextproject.com/ adresine bakabilirsiniz.

Bu sitede bulunan İngilizce ve Türkçe blogumu aynı anda tek bir kaynaktan okumak isterseniz şu adresi kullanarak RSS çıktısına üye olmanız yeterli. Epeydir çalışmayan bu özelliği nihayet yeni sürümle tamir ettim.

Blogumdaki reklamları kaldırdığımı görmüşsünüzdür. Düşünceme göre; daha etimiz ne budumuz ne birde reklam koymuşuz bloga. Tabii ki herkes yapıyor diye yapmıştım zamanında fakat blogumun okuyucu sayısının artmasını istiyorsam içeriğe daha fazla önem vermem gerekir. Belki 5 sene sonra reklam almaya başlarım.

Birde reklamlar dışında http://www.sponsoredreviews.com gibi siteler var. Bu siteler firmaları ve blogcuları bir araya getiren bir site. Kayıt olduktan sonra -içerik tipinize göre- firma sahipleri yapacağınız her ürün incelemesi için ücret ödüyorlar. Bunun Türk karşılığı var mı bilmiyorum ama eğer yoksa çok iyi bir fikir. İşte size başka bir proje daha yapacak. Amazon veya Google reklamlarını koymak yerine yazacağınız ürün incelemeleri ile daha fazla gelir elde etmeniz mümkün.

Gerçi PC Labs blogunda ürün incelemeleri yer alıyor. Oldukça da kaliteli testler yapıyorlar. Başarılarının devamını diliyorum. Bu arada benim blogumu özgün içerikli bloglara örnek göstermişler. Teşekkür ediyorum.

Blog olayına günde 6-8 saat harcamadığım için herhangi bir gelir elde etme kaygım da yok ama yazacağım ürün incelemelerinden en azından hosting ücretlerini çıkarmak kulağa hoş geliyor.

Var mı http://www.sponsoredreviews.com gibi bir buluşma sitesi yapacak. Bence böyle bir siteye Türkiye'de ihtiyaç var. Hem blogunuzun tanıtımı hemde pazarlama için iyi bir yöntem.

ISV de ne yahu diyenler için hemen açıklayayım Independent Software Vendor yani Bağımsız Yazılım Firması. Genelde küçük fakat çok iyi bir fikir ile yola çıkarak ürüne dönüştürmeyi ve milyonlara satmayı hedeflemiş bir kişi tarafından en az finansal destek ile kurulan firmalara ecnebilerin verdiği isim.

Leon Bambrick, Secret Geek isimli blogunda kendi ürünleri Time Snapper'ın fikir aşamasından nasıl ürün aşamasına geldiğini ve bu yolda edindikleri deneyimleri ISV'ler için 25 kural altında açıklıyor. Ayrıca Scott Hanselman podcast'inde de Leon'a söz veriyor . Leon ilerde bu kuralların açıklamalarını bir kitap haline getireceğinden de bahsediyor fakat yeni doğan kızına daha fazla vakit ayıracak sanırım.

Benim çok hoşuma gitti bu listede yer alan kurallar ve Vezir'de yazdıklarımla örtüşüyor. Kuralları ve kendi açıklamalarımı yazayım dedim. Belki birilerinin işine yarar.

  1. Bir alan adı alın: Ben Google ve MSN Spaces bloglarımdan sonra alan adı alarak blog hayatıma devam etmek istedim. Çünkü daha profesyonel ve kayda değer işlere imza atmak istiyordum. Blogum belki bir ürün değil ama profesyonel düşüncenin bir ürünü. O zaman İngilizce aldım ismi çünkü ilk başta sadece ingilizce blog yapmayı düşünmüştüm. Ürününüzün ismine uyacak bir alan adı alın. Google'da bu kelimeleri satın alın ve aramalarda ilk sizin sitenizin çıkmasını sağlayın. Sadece ürün için bir isim alın ve firma ismini düşünmeyin.
  2. İyi bir hosting firması bulun: Kendi sunucularınızı evinizde barındırıyorsanız bir sürü teknik işle de uğraşacaksınız demektir. Bu harcayacağınız zamanı bir hosting firmasından alacağınız hizmet ile geri kazanabilirsiniz. Hem daha ucuza gelir hemde müşterileriniz için kaliteli bir hizmet sağlamış olursunuz.
  3. Kullanılabilir bir web sitesi tasarımlayın: Herhalde bu konu hakkında fazla yazmaya gerek yok. Bir yazılım ürünü alırken önce firmanın sitesinden gerekli bilgileri almaya çalışırsınız. Mehmet Doğan'ın Altı Üstü Tasarım adlı blogunda yazdığı ipuçlarına dikkat edin.
  4. Temel web sitesi içeriği: Sitenizde olması gereken temel bölümler. Ürün hakkında kısa bilgi, ürünün tüm özelliklerini anlatan yardım bölümü, ekran resimleri, sipariş bölümü, forum ve blog kısmı vb gibi. Çok fazla karışık bir site yaparsanız müşteriler korkup kaçabilir. Mümkün olduğu kadar sade yapmaya özen gösterin. Bir İçerik Yönetim Sistemi ile de gidebilirsiniz fakat statik sayfalar ile de gerekli mesajı vermek ve sade olmak mümkün.
  5. Sitenizin trafiğini kontrol edin: Site trafiğini Google Analytics ile ücretsiz kontrol edebilirsiniz. Böylece siteyi ziyaret eden kişiler hakkında genel bilgi alabilirsiniz.
  6. Sitenizde forumlar açın, geri bildirimleri destekleyin: Forumlar müşterilerin birbirlerine yardım ettiği bir ortamdır. Fakat forumları başıboş bırakmayın ve 24 saat kontrol altında olmasını sağlayın.
  7. SSS listeleri düzenleyin: Sıkça Sorulan Sorular bölümünü güncel tutun ve forumlar ile besleyin. Böylece belli sorular için hemen cevap bulabilirsiniz.
  8. En iyi ekran resimlerini kullanın: Dış görünüş ilk başta müşterileri etkileyecek unsur olduğu için alacağınız en iyi ekran resimlerini almaya çalışın. Örneğin Vista ile ekran resimlerini güncelleyin.
  9. Alan adı için e-posta düzenleyin: Alan adını aldıktan sonra e-postaları da düzenleyin. Örneğin admin@alanadı.com, destek@alanadı.com, siparis@alanadı.com vb gibi akılda kalacak e-posta adreslerini düzenleyin ve sıkça kontrol edin.
  10. Online alışveriş hesabı alın: PayPal gibi bir sistem ile online alış veriş hesabı alın. Ürünün satılmasını kolaylaştırmak ve dünya üzerinde herkesin almasını kolaylaştırmak için atacağınız en önemli adımlardan bir tanesi.
  11. Sitenizden ödeme yapılmasına izin verin: PayPal ödeme sistemini sitenize entegre ederek sitenizden direk ürünün satılması için bir bölüm yapın.
  12. Bir PAD (portable application description) dosyası hazırlayın: Bir XML dosyası ve ürün hakkında bazı bilgileri tutar ve sitenizin root dizininde bulunması gerekiyor. Bu PAD dosyası indirme siteleri tarafından kontrol edilir ve yeni sürümleri bu şekilde otomatik olarak dağıtabilirsiniz. PAD dosyasını üretmek için http://www.padgen.org/ adresindeki aracı kullanabilirsiniz.
  13. Genel indirme sitelerine kayıt olun: Ürününüz yeni sürüm çıkardığında otomatik olarak indirme sitelerinde güncellenmesini sağlayın.
  14. Ücretsiz ve profesyonel olarak iki ayrı sürüm çıkarın: Ürünün daha da fazla yayılması için bir ücretsiz sürüm çıkarın ve  profesyonel sürümden tamamen ayrı olarak yayınlayın.
  15. Uygun bir son kullanıcı lisans anlaşması düzenleyin (iki tanede olabilir): Örütbağında bulabileceğiniz pek çok örnek var. Ürününüz için uygun hale getirmek bir avukatın yardımı ile olabilir.
  16. Otomatik güncelleme fonksiyonu sunun: Otomatik güncelleme en çok aranan özelliklerden biridir. Yeni sürümler çıktığında progam otomatik olarak indirilmeli ve güncellenmelidir.
  17. Lisans aktivasyonu için bir web servisi kurun: Bu web servisi her lisansın takibini kolaylaştıracaktır. Yasadışı kullanımın da önüne bir miktar geçebilir.
  18. Lisansların yönetileceği bir otomasyon sistemi yapın: Yukarıdaki web servisi ile bir veritabanında tutulacak lisanslar size müşterileriniz ve kurulu çalışan ürünleriniz hakkında bilgi toplayabilirsiniz.
  19. İyi bir kurulum hazırlayın: Müşterilerin ürün ile ilk karşılaşmaları kurulum ile olmaktadır ve iyi bir kurulum müşterinin ürün hakkında iyi izlenimlere sahip olmasına neden olur.
  20. Assemblileri obfuscate edin: Ürünün kodunu obfuscate ederek Reflector gibi araçlardan saklayabilirsiniz.
  21. İnşa ve sürüm işlemlerini otomatize edin: Ünite testi, inşa, kurulum hazırlama gibi işlemleri otomatize ederek zamandan kazanabilirsiniz. Cruise Control, Subversion, NUnit gibi ürünlerden bahsetmeme gerek yok heralde.
  22. Zaman ve kaynaklarınızı destek ve geri bildirimler ile ilgilenmek için ayarlayın: Destek müşterilerin her zaman istediği bir şey ve geri bildirimler de ürününüze fikir olarak katkıda bulunabilir. Kesinlikle zaman ve kaynak ayırılması gerekir.
  23. Cafcaflı, kullanılabilir, yardımcı: Ürün arayüzlerinde kullanılan teknoloji kullanıcıyı yormamalı, ürünün kullanılabilirliği müşteriye ürün özelliklerini bulup kullanmak açısından yardımcı bir ürün olmalı.
  24. Promasyon stratejinizi planlayın ve işleme koyun: Nasıl reklam vereceğinizi, ve ürünün nasıl dağıtılacağını planlayın ve işleme koyun.
  25. Hepsini tekrar yapın: Tüm bu işlemleri tekrar tekrar gözden geçirin ve bu süreçteki işleri iyileştirmek için neler yapabilirsiniz kontrol edin ve uygulayın.

Bana gelen bir istek sayesinde haberdar olduğum bir site pdfdergi.com. 14. sayısını yayımladığı şu günlerde 1301 kayıtlı okuyucusu var. Çok hoşuma gitti bu proje. Bizim ofisten örütbağı bağlantısı olmadığı için e-posta ile takip edeceğim. Kaliteli ve güzel bir içerik sunuyor. Daha önce neden haberim olmamış şaşıyorum.

PDF Dergi

Söz verdiğim gibi bir gizlilik anlaşması örneğini veriyorum. Örütbağında bulduğum İngilizce bir belgeden çevirdim. Biraz değişiklikler oldu tabii.

Uyarı: Bu belgenin kullanılmasından dolayı doğacak sorunlar için sorumlu tutulamam. Bu belge tamamı ile eğitim amaçlı yayınlanmıştır.

Tavsiyem bir avukat bularak firmanızın ve ürünlerinizin özelliklerine göre bir anlaşma hazırlamanız. Bu anlaşmayı temel olarak alabilirsiniz.

Belgeyi bu linkten indirebilirsiniz.

Bu yazımda Sürüm Yönetiminin büyük bir firmada yada devlet organizasyonunda nasıl yönetileceğini ele alacağım. Sürüm yönetimi bir ürünün evrimsel gelişimi için muhakkak ele alınması ve profesyonelce yönetilmesi gereken bir konudur. Ürünün ilk analizlerinden itibaren proje ile ilgili ürünler ortaya çıkmaya başlar ve kod yazılmaya başladıktan sonra yönetim daha da karmaşık hale gelir. Konuyu iki basamakta ele alacak olursak:

    1. Üretilen belgelerin ve yazışmaların takibi
    2. Ürünün geçirdiği evrelerin ve dallanmaların takibi

Olarak özetleyebiliriz. Ben üretilen ürünün sürüm yönetimi ile ilgili yazacağım. Büyük bir firmada yada devlet organizasyonunda yazılan ürünlerin pek çok bağımlılığı vardır. Diğer iç birimlerin yazdığı modüller, başka devlet organizasyonları ile olan bağlantılar, yabancı devletlerin sistemleri ile olan veri alışverişi, özel sektör ile olan bağlantılar, üçüncü parti sistemler, kullanılan işletim sistemi ve bağımlılıkları, donanım bağımlılıkları gibi pek çok sistemin ahenk içinde çalışacağı ve yeni sürüm verdiğinizde bu bağımlılıkları kırmayacak şekilde sürüm vermeniz gerekir.

Öncelikle sürüm yönetimi konusunda bir birimin gerekliliği söz konusu. Bu birim Test birimleri ile bağlantılı çalışır ve testlerde onaylanmış olan uygulamaları sahada kullanmak üzere kurmak için gerekli işleri organize eder. Bu organize sırasında aşağıdaki birimlerden gerekli kişiler belirlenir:

  1. Proje Yöneticisi (ürünü geliştiren ekibin proje lideri)
  2. Teknik Lider (ürünü geliştiren ekibin teknik lideri)
  3. İş Lideri (ürünü kullanacak ekibin lideri)
  4. Saha Kurulum Müfettişi (Kurulumun doğru gerçekleştiğini onaylayacak ve ürünü kullanan kişilerden seçilecek bir kişi. Eğer ürün coğrafik olarak farklı yerlere kurulacaksa her ofisden bir kişi.)
  5. Kurulum Sorumlusu (ürünün kuracak olan kişi)

Hiyerarşik bir yapıda işlerin nasıl yürüdüğüne bakalım.

Adım 1. Teknik Lider olarak yapacağınız iş sürüm verme isteğinizi bir "Değişiklik İstek Formu" düzenleyerek Sürüm Yönetimi ekibine bildirmektir. Sürüm Yönetimi isteğinizi inceleyip istenen tarihte olup olamayacağına ve diğer etkilenen uygulamaların durumu ile etkilenme derecelerini araştırır. Sonuçta bir değişiklik numarası verilir ve onaylanır. Bu aşamadan sonra Teknik Lider olarak test ekibinin bulacağı hataları gidermek ve ürünü, kurulum tarihine kadar hazır etmek ile yükümlüsünüz. Ürünün son halini paketleyip bir kurulum rehberi ile beraber kararlaştırılan bir ağ dizinine kopyalayacaksınız. Teknik Lider ayrıca İş Liderini uyararak sürümün yapılacağı tarihi bildirir ve mesai yapacak çalışanların bilgilendirilmesini sağlar. Sürümün verileceği hafta sonu, uygulama erişilemez olacaktır. Bu aşamadan sonra artık Teknik Liderin işi bitmiş oluyor.

Adım 2. Sürüm zamanı yaklaştıkça sürümü yönetecek kişi (Sürüm Yönetimi ekibinden bir kişi) hangi uygulamaların sürüm vereceğini belirler. Test ekibinin onayladığı ve sürüm zamanı belirlenen uygulamalar listelenir. Test onay belgelerinde Proje Yöneticisi ve Teknik Lider hakkında bilgi vardır. Ayrıca Değişiklik İsteği Formunda da bu bilgi mevcuttur. Bu bilgi uygulamanın karşısına yazılır. Bu işlem için MS Project yada bir Excel dosyası kullanılabilir. Örnek olarak bu Excel belgesine bakabilirsiniz.

Sürüm Yöneticisi test onay belgelerini inceler ve testlerden geçememiş uygulamaları geri çevirir. Değişiklik İstek Formlarını ilgili kişilere geri göndererek sürüm tarihini güncellemesini ister. Testlerden geçen uygulamalar listede güncellenir.

Adım 3. Sürüm Yöneticisi yapılacak her işi adım adım belirleyebilmek için tüm yetkili kişilerin katılacağı bir toplantı düzenler. Bu toplantıya sürüm verecek tüm uygulamaların sorumlu kişileri ile etkilenecek fakat sürüm vermeyecek tüm uygulamaların sorumluları katılır. Sürümün hafta sonuna denk gelmesi ve kimsenin sistemleri kullanmadığı bir anda yapılması önemlidir. Zaten sistemi kullanan kullnıcılar önceden uyarılmıştır. Yapılacak işlerin listelendiği belgeye buradan bakabilirsiniz. Bu toplantılar sürüm tarihi yaklaştıkça sık aralıkta tekrarlanır.

Adım 4. Sürüm yöneticisi görev listesindeki her görevin kimin yapacağını ve kontak telefonlarını bir liste halinde yayınlar. Herkes bu listeye sahip olmalıdır ve sürüm günü bolca kullanılacaktır. Bizim burada yaptığımız bir uygulama da bir telekonferans hattı organize etmektir. Herkes bu konferans hattını arar ve 24 saat hatta kalır. Böylece olan olaylardan herkes haberdar olur. Eğer sürüm başka şehirlerdeki ofisleri de etkiliyorsa bu tür bir haberleşme işleri çok daha kolaylaştırmaktadır.

Adım 5. Mesai yapacak olan kişiler belirlenir ve görev listesinden ne zaman ofiste olacaklarını kontrol etmeleri istenir. Ayrıca mesai için izin alınması gerekiyorsa bu izinler önceden alınır. Bina girişi için özel bir güvenlik durumu söz konusu ise güvenlik birimi bu olaydan haberdar edilir.

Adım 6. Sürüm Yöneticisi, Geriye Dönüş işlemlerini de organize eder. Eğer yeni sürümler sahaya kurulduktan sonra testler sırasında bir hata çıkarsa sistem eski haline geri döndürülür. Kurulum Yönetimi ekibi sürüm günü ortaya çıkacak hatalara hazırlıklı olmak için her ürünün mevcut sürümünü hazırda bulundurur. Sürüm günü çıkan hatalardan dolayı kurulamayan yeni sürüm uygulamaların proje müdürleri durumdan haberdar edilir. Saha Kurulum Testlerinde çıkan tüm hatalar ekran resimleri ile beraber kaydedilir ve bir numara verilir. Eğer sürüm günü çözülemeyecek bir hata ile karşılaşılırsa o sürüm iptal edilir ve eski sürüm kurularak sistemin devamlılığı sağlanır.

Tüm bu adımlar sürüm gününün sancısız geçmesi için tekrar tekrar gözden geçirilir ve mümkün olduğunca görevler en ayrıntılı biçimde yazılır.

Sürüm günü uzun ve yorucu bir gün olacağından yiyecek ve içecek temini için önceden hazırlık yapın.

Sürüm günü her işlem başarı ile sonuçlanırsa gelecek 2 hafta için uygulamalar göz altında tutulur ve çıkacak hatalar gözden geçirilir.

İyi sürümler dileği ile.

Emre Bey'in attığı bir yorum üzerine bu yazıyı yazıyorum. Emre Bey'in derdi günümüzde çok yaygın olan veri ve ürün hırsızlığı ile ilgili. Yasaların yetersiz kaldığı yada uygulanmasının mümkün olmadığı durumlarda (finansal yetersizliklerden dolayı) ürün ve kaynak kodunu korumak için neler yapabilirsiniz? Yazılım firmanızı ve ürününüzü meraklı yazılım uzmanları ve hırsızlara karşı nasıl koruyacaksınız? Finansal olarak zaten küçük bir işletmesiniz ve dava açıp avukat masrafları ile uğraşmak ta istemiyorsunuz. Zaman ve nakit kaybını en aza indirerek ürününüzü ve firmanızın geleceğini korumak istiyorsunuz.

Teknik açıdan ne yaparsanız yapın elbet bir delik bulunacaktır. Ya sosyal mühendislik yolu ile yada sistemdeki bir açık yüzünden gözünüzün nuru ürününüz dışarıya sızacaktır. Gene de teknik açıdan yapılabilecek pek çok şey var. Ne kadar çok kapıyı kapatırsak o kadar sızıntıyı önlemiş oluruz. Öte yandan yazılımcıların esnekliğini kısıtlamış oluyorsunuz ve bir yazılımıc için pek iyi bir durum değil.

Yapılacak teknik kısıtlamalara bir bakalım. Uyarı: Bu yazılanları uygularsanız firmanızda Darth Wader olarak adınız çıkabilir.

1- Tüm disket ve CD sürücüleri kaldırın

Firma içinde yazılım amaçlı kullanılan ve yazılımın bulunduğu ağ dizinlerine erişebilecek her bilgisayarın disket ve CD sürücülerini kaldırın. Böylece bir kapıyı kapamış oluyoruz. Benim şu an çalıştığım departmanda CD ve disket sürücüleri bilgisayarların üzerinde fakat işletim sisteminden hiç birine erişim yok. BIOS seviyesinde kapatılmışlar.

Bazı bilgisayar kasaları vidaları sökülüp açıldığında sistem yöneticisine bildiri gönderecek şekilde dizayn edilmiştir. Bu kasaları kullanırsanız bir miktar daha koruma sağlamış olursunuz.

2- USB portlarını kapatın

USB portlarına takılacak herhangi bir araç kodun dışarıya sızmasına neden olabilir. USB portları muhakkak kapatılmalıdır. Ayrıca varsa infrared portaları da kapatılmalıdır.

3- BIOS şifrelenmeli

BIOS sistem yöneticisi tarafından bir şifre ile korunmalıdır. Böylece kimse BIOS üzerinden USB portlarını açamaz yada IDE sürücülerini etkin hale getiremez. Kasaları açıp pilleri çıkartınca pek geçerli bir koruma olmuyor ama haftalık kontroller ile denetlenebilir.

4- Tek bir sistem yöneticisi

Genel olarak bir yazılım evinde herkes sistem yöneticisi olarak tanımlanır ki herkes istediği her yere ulaşabilsin. Fakat çok yanlış bir uygulama. Ben kendi bilgisayarlarımda bile sistem yöneticisi olarak iş yapmıyorum. Biraz daha profesyonel olmak için bir domain kurun ve tek bir sistem yöneticisi atayarak kullanıcıları yönetin. Verilecek hakları ve erişimleri sıkı denetleyin.

5- Security Policy ayarları

Windows üzerindeki Security Policy ayarları ile kullanıcıların uygulama kurma ve kaldırma haklarını kapatın. Böylece bir şekilde ağınıza bir uygulama girse dahi kurulumu çok zor olacaktır. Domain kurarak bu ayarları domain bazında yapın.

6- Hiç kimse lokal admin olmamalı

Eğer COM+ geliştiriyorsanız olabilir tabii ama hiç kimse kullandığı bilgisayarda lokal admin olarak iş yapmamalı.

7- İnternet bağlantısı olmamalı

İnternet verimliliği düşüren en büyük etkenlerden biri bence. Ben kod yazarken ne Outlook nede MSN Live Messenger açıktır. Zaten gerek te yok çünkü en son sürüm MSDN kurulu makinemde.

8- Domain kurun ve kullanıcıları iyi yönetin

Her kullanıcıyı admin olarak tanımlamaktansa bir domain kurup kullanıcılara verilecek hakları belirleyin. İstisnalar olacaksa neden olacağını ve nasıl yönetileceğini de belirleyin.

9- Ağınıza bağlanacak makineleri takip edin

Linux için www.arpalert.org adresinde ArpAlert diye bir ürün mevcut. Bu ürün ile ağınıza bağlı makinelerin MAC adreslerini bir veritabanında tutuyorsunuz ve kayıtlı olmayan bir makine bağlandığında size haber veriyor. Günümüz MAC Spoof yöntemleri ile biraz geçersiz bir ürün oluyor ama hiç yoktan iyidir. Kablosuz ağlar içinde iyi sayılabilecek bir yöntem.

10- Kod deponuzu koruyun

Kod deponuz hangi ürün olursa olsun kesinlikle kilitli kapılar ardında olmalıdır. Ayrıca kullanıcıların yaptığı işlemleri takip edip uygunsuz bir işlem gördüğünüzde soruşturma yapın. Örneğin bir kullanıcı tüm kod deposunu indirmeye kalkarsa arkasında muhakkak bir çapan oğlu vardır. Her gün sonunda bir yedek alıp güvenli bir şekilde saklayın. Yedeğin bir kopyasını firma dışında bir yerde hatta farklı bir şehirde tutun.

11- Güvenilir kişiler ile çalışın

Bulması ve anlaması zor bir özellik. Kişilerin güvenilirliği çok değişken de olabilir. Haysiyetli ve helal süt emmiş yazılım uzmanları ile çalışırsanız riskiniz daha da azalacaktır. Deneme yanılma yolu ile bulacağınız bu kişiler firmanın kök ekibini oluşturabilir.

12- Log tutun ve logları inceleyin

Herkes log tutar ama bunları inceleyen çok azdır. Kilit işlemler yapılırken muhakkak log tutun ve bunları gün sonunda inceleyin. Çeşitli otomatik uyarı mekanizmaları kurup yapılan bazı işlemlerden anında haberdar olmaya bakın.

13- Dışarıya giden postaların kontrolü

Firmanızın sunucularından çıkacak her türlü e-posta incelenmeli ve onaylanmalıdır. Böylece bir yazılım uzmanı kodları zipleyip e-posta ile göndermeye kalkarsa durdurulabilir.

Kodu çalmak isteyen yazılımcı kodu yazıcıdan basabilir ve bir şekilde kodu dışarıya çıkarabilir. Teknik açıdan ne kadar kısıtlama getirirseniz getirin bir açık elbet olacaktır. Bu kadar çok kısıtlama yazılım uzmanlarını da bunaltabilir. Hani bu kadar yazdım ama ben bu tür bir firmada çalışmak istemezdim. Eğer firma sahibi beni hırsız olarak görüyorsa neden çalışayım ki... Sanırım teknik açıdan yapılacak şey çok fazla ve takibi ve teftişi için nakit ve vakit harcamanız gerekecek.

Sonuç

Sadakat kişilerin karşılıklı güvenlerinin artması sonucu doğan bir unsurdur. Eğer siz firma sahibi olarak çalışanlarınızın geleceğini garanti edebilirseniz çalışanlar da size sadık olacaktır. Yapacağınız satışlar ile firmanıza sağlayacağınız gelir akışları ve akabinde bunun herkesin çabası ile olduğunu anlatacak toplantılar veya kutlamalar yapabilirsiniz. Böylece çalışanlar kendilerini daha da fazla firmanın bir parçası olarak görürler. Gelecek vaad etmeyen bir firmada hiç kimse durmak istemez.

Firma kültürünü ve sadakati misyon haline getirseniz dahi birileri mutlaka kodu çalmak için yeltenecektir. Gizlilik anlaşması bu aşamada imdadımıza yetişebilir. Bu anlaşma kişilerin çalıştıkları ürün hakkında dışarıda konuşmalarını ve herhangi bir şekilde kaynak kodunun dışarıya sızdırılması halinde yasal işlemlerin uygulanacağını açık seçik belirten bir anlaşmadır. (bakınız Non-Disclosure Aggrement yada Confidentiality Aggreement). En iyi çözüm bir gizlilik anlaşması imzalatmak ve güvenilir kişiler ile çalışmak. Yapılan her işlem için log da tutabilirsiniz. Anlaşmayı imzalayan ve her işlem için log tutulduğunu bilen yazılım uzmanları kodu çalmaya yeltenmeyecektir (en azından ben öyle umuyorum). Bu iki anlaşma örneğini yakında blogumda vereceğim.

Bazı anlaşmalarda ayrılan kişilerin rakip firmalarda çalışmasını önleyecek maddeler bulunur. Örneğin A firmasından ayrılıp aynı tür ürün geliştiren B firmasına geçip çalışmamız engellenmek istenebilir. Bu hayatımda gördüğüm en rezil uygulama. Zaten yasal bir dayanağı da yok. Ben kendi bildiğim işleri yapmak ve kariyerimde ilerlemek için tabii ki aynı işi yapan daha büyük bir firmaya geçicem. Bu kaçınılmaz.

Karşılıklı güven ve sadakatin gelişmesi için sağlanacak ortamın yaratılması ve kişilerin özveri ile çalıştığı bir firmada bu tür yaptırımlara gerek kalmaması lazım. Uygulanacak her türlü yaptırım, yazılım uzmanlarının çalışma şartlarını bozar. Kodun kalitesini dahi düşürebilir. Kontrolün dozajını iyi ayarlayıp çalışanları tiksindirmeden bu işi halletmek gerekiyor. Firmada çalışan herkes istisnasız bu anlaşmaları imzalamadır. İstisna yapmaya başlarsanız diğer çalışanlar bu durumdan rahatsız olabilir.

Diğer bir yöntem yazılım ve şirket genel ağlarını birbirinden fiziksel olarak ayırmak. Hatta her bir test seviyesi için birer ağ kurmak iyi olabilir. Örneğin benim çalıştığım departmanda Geliştirme, Fonksiyon Testleri, Kullanıcı Kabul Testleri, Entegrasyon Testleri, Performans Testleri için birer ağ mevcut. Bu ağlar birbirinin hemen hemen aynısı. Fakat domain olarak ayrılar. Aralarında fiziksel olarak bağlantı var fakat firewall bunları denetliyor. Masraflı ama günümüzün Virtual PC imkanlarını düşünecek olursanız aslında uygulaması o kadar da maliyetli değil. Benim çalıştığım yerde Performans testlerine kadar olan tüm ağlar ve bilgisayarlar sanal. Yönetimi de çok kolay oluyor. Bir temel "image" hazırlayıp her kurulumda bunu kullanabilirsiniz.

Kod çalınırsa yada kaçak olarak yerlerde satılmaya başlarsa yapacağınız en mantıklı hareket, ürünün bir sonraki sürümünde ekleyeceğiniz özellikleri geliştirmektir. Öyle ki müşteriler yerlerde satılan eski sürüm yerine yeni sürüm için aşersinler. Arayüzlerde yapılacak yenilikler veya sistemde temelden yapılacak değişiklikler buna neden olabilir. Evet masraflı ama pazarda kalabilmenin ve hırsızlarla mücadele etmenin başka bir yolu.

Umarım yararlı bir yazı olmuştur.

Arama



Hakkımda

Merhaba, ben Gürkan Yeniçeri. 10 yılı aşkın süredir özel sektör ve hükümet iştiraklerinde yazılım mühendisliği yapıyorum. Bu sitede 2005 Mart ayından beri genelde yazılım mühendisliği ve hobilerim hakkında yazmaktayım. Profesyonel iş geçmişim hakkında daha fazla bilgiyi aşağıdaki Linkedin.com linkinden alabilirsiniz.
Gürkan Yeniçeri'nin profilini görmek için tıklayın

Kontak

Soru sormak veya öneride bulunmak isterseniz buradaki kontak formunu kullanın. Mesajlarınıza en kısa zaman içinde cevap vermeye çalışacağım. Ayrıca Windows Live Messenger kullanarak gyeniceri {AT} hotmail {DOT} com adresinden bana ulaşabilirsiniz.

Eğer İngilizce blogumu okumak isterseniz buraya buyrun.
Blogumu RSS Bandit gibi bir RSS okuyucusu ile de takip etmek için kullanın.
Ayrıca aşağıdaki linklerden hakkımda ayrıtılı bilgi alabilirsiniz.
Twitter
Friendfeed
Facebook

RSS 2.0

Reklamlar


Vezir

Vezir Proje Danışmanı
Sitede birde Vezir isminde wikimiz var. Bu wikiyi yazmayı düşündüğüm bir kitap için oluşturmuştum daha sonra herkese açmaya karar verdim. Vezir yazılım firması kurmak isteyenlere tavsiyeler vermek için hazırlandı. Ayrıca UML ve Modül Tabanlı Geliştirme hakkında da bilgiler mevcut. Vakit buldukça yeni eklemeler yapıyorum. Değişikliklerden haberdar olmak için RSS çıktısına üye olabilirsiniz.

Tag Bulutu

Tüm taglar...
www.flickr.com
This is a Flickr badge showing public photos from gurkanyeniceri. Make your own badge here.
Bu blogda 265 yazı ve 509 yorum var. Diğer sitelerden 26 adet link gelmiş.

Reklamlar