• turkiyede yazılım mühendisliğinin sonucu olarak ortaya çıkmış gayriresmi standartlardır.
    herhangi bir yazılı kaynak olmamasına rağmen piyasa* tarafından kabul görmüş ve hayata geçirilmiştir.nedir efendim bu standartlar inceleyelim.
    öncelikle program ister stok,ister balistik füze takip programı olsun mdi frame de mutlaka programı yazan kurum ya da kişinin* transparan logosu bulunur.
    bu logo mutlaka bmp formatında olmalıdır ki,exenin boyu gereksiz yere arttırılabilirsin.
    eğer programımız database ile bağlantı çalışıyorsa,dbserver ve çalıştığı platformdan bağımsız olarak native driver yerine internetten bulunmuş odbc componentler üzerinden bağlantı kurulmalıdır.
    programın içinde veya beraberinde herhangi bir yardım ya da kurulum dökümanı hazırlanıp verilmemelidir ki en ufak bir sorun,değişiklik talebinde teknik destek adı altında müşteriden para sızdırılabilsin.
    web tabanlı program ise söz konusu olan,illaki abuk subuk bir cursor kullanılmalı,mümkünse bu cursor programın ya da şirketin logosu şeklinde olmalıdır*.
    (bkz: seni kiniyorum ve sana laflar hazirladim)
  • geliştirme aşamasındaki standartlar ise şu şekildedir.
    işe başlarken afilli proje planları yapılıp a3 boyutunda kağıtlara basılarak ofisin en boş duvarına asılmalı,gelen müşterilere "süper sistematik bi şirketiz biz,nasa bok yemiş yanımızda" intibağsı bırakılmalıdır.
    dökümantasyon formatları proje başında belirlenir fakat hiç uygulanmaz,proje bittikten sonra herhangi bir ihaleye girmek,teklif vermek için gerekirse stajyerlerden birisine bu iş kakalanır.
    analist,yazılım mimarı,dba,tasarımcı gibi ayrımcı-anarşik yapılanmanın türk toplumunda yeri yoktur.bütün işler imece usulü herkes tarafından yapılır.
    yumurta göte dayandığında,çalışanlara moral vermek ve mesai saatlerinin günde 12 saate çıktığını açıklamak üzere mutlaka şirket tarafından içkili akşam yemeği organize edilir.
  • tasarlanan ekranlarda veri girişi,veri izleme,butonlar herhangi bir düzen içerisinde sıralanmamalı yazılımcının/tasarımcının kafasına göre ekrana dağıtılmalıdır.
    ayrıca tab orderlar da objelerin ekrandaki dizilişlerinden bağımsız olarak değişik yerlere gitmeli.mümkünse her adım birleştirildiğinde nokta birleştirme bulmacaları mantığı ile şirket logosunun ortaya çıktığı bir easter egg programa dahil edilmelidir.
  • program debug etmek için debug mode açılmaya üşenmeli,hata olduğu tahmin edilen değişkenin değeri alert,message box gibi atraksiyonlar ile ön yüzden takip edilmelidir.
  • değişken,fonksiyon isimlerinde herhangi bir standart olmamalı isimleri yaptıkları işten bağımsız olarak dinlenilen şarkıda* geçen sözler gibi alakasız isimler* verilmelidir ki kendinden sonra gelenler hiçbirşey anlamasın.
  • yazılan programın alpha,beta,rc gibi versiyonları olmaz.uzatılmış deadlinea kadar ne yapılmışsa test edilmeden release çıkarılır.
  • - fontlar bold ve italik olsun
    - pencere ekrana gelirken boyle yoktan varolur gibi gelsin resim falan ciksin
    - onay butonu ye$il vazgec kirmizi olsun ki kullanici hangisi hangisi ayirdedebilsin
    - skin destegi olsun muhasebe programi da olsa
    - boyle sihirbaz gibi bi$ey yapalim kullanici programi kolay kullansin
    - mouse'la butonun ustune gelince ustune geldigimizi anlayabilelim rengi degi$sin etrafindan kirmizi i$iklar sacsin
    - minimum pencere ebadi 1024x768 olsun zaten daha du$uk cozunurluk kullanan yok bizim mu$terilerde
    - acilir acilmaz ekrani kaplasin millet ba$ka $eylerle ilgilenip dikkati dagilmasin
    - enter'a basinca sonraki giri$ alanina gecsin dos'ta oyle gorduk biz cobol'cuyum ben
    - butonlar buyuk harfle yazilsin kucuk harfli olunca muhasebecimiz hilmi bey okuyamiyor
    - $oyle resimler koyalim internet explorer'daki gibi toolbar olsun kolay fonksiyonlara ordan eri$im saglansin
    - hakkinda penceresinde ismimiz kaysin
    - demirdokum logosu ekranda ortalansin bi de sag altta koc amblemi olsun sayfa acilir gibi kurumsal standart bu
    - kendi icinde hesap makinesi olsun hesap makinesi acmak zorunda kalmayalim
    - kendi icinde muzik calabilsin muzik calmak icin kullanici programdan cikmak zorunda kalmasin
    - kendi icinde internet tarayicisi olsun boylece programi kullanirken interneti gezebilsin
    - kopyalanamasin ozel disket istesin 2 yil sonra disket bozulunca kapimiza dayansin para teklif etsin
    - kullanici ekran renklerini degi$tirse bile bizim program kurumsal renklerimizi kullansin degi$tirilemesin
    - ekranlar kagittaki formun aynisi olsun elemanlarimiz o forma ali$ik
    - esc'e basinca program kapansin direk
    - programin icine oyun gibi bi$ey koyalim muhasebeci cani sikilinca oyun oynayabilsin cok ho$ olur
    - hizli her tur kritere gore arama olsun. kullanici her $eyi arayabilsin.
    - 1 yil cali$tiktan sonra program kendini kitlesin $ifre istesin
    - ozel bir $ifreyle biz istedigimiz zaman mu$terideki programa girebilelim
  • müşterinin abuk talepleri karşısında yorgun düşmüş programcının elinden gelendir. *

    tüm bu eleştirilere konu olan arkadaşlar vardır ve gui design utanç tablosunu yalayarak temizlemeleri beklenmelidir. ancak; kullanıcılar da böyle saçma sapan aksionlara insanları itmekte ve hatta "parası ile değil mi kardeşim" tarzında tacizlerde bulunmaktadır.

    - ekranın ortasında düğme
    - mdi form arkasında "sahil animasyonu" (boş duruyor ya.)
    - "bir şifre yazınca tüm bilgiler gitsin" hadisesi (maliye baskınına karşı)
    - takım renklerinde ekranlar. (yaptım. acaip beğendi)
    - iptal ile onayın arasının açılması (yakınmış checkboxlar, kafası karışıyormuş)
    - enter ile sahadan sahaya zıplama (windows ortamında dos uyumlu yazılım arzusu)
    - kayıt ettikten sonra programın mesaj box çıkartması (kayıt ettim. sildim. sona geldim. baştayım. ekrandaki olayları anlama özürlüler için zeka yaması)

    ve muhasebe bilen arkadaşlar için bonus:

    depoya eksi giriş yapmak...

    hayır. çıkış yapmak değil.

    depoya eksi giriş yapabilen program istiyorlar. maliyetleri düzeltmek içinmiş...

    üç kuruşa program sahibi olmak için yetmiyor, programcının annesinin de olaya katkısın arzuluyor kullanıcılarımız.
  • - değişken isimlerini kafanıza göre veriyorsanız, ( @a1,@a2, @elma, @armut)
    - @tutar değişkeni içerisinde ürün kodu yolluyorsanız ,
    - @tutar değişkeni içerisinde şirket kodu yolluyorsanız,
    - @tutar değişkeni içerisinde bu seferde başka bir şey yolluyorsanız,
    - ayni işi yapan birden fazla fonksiyonunuz veya prosedürünüz varsa,
    - işin mantığını 41 değişik fonksiyona dağıtabiliyorsanız (bu 5 puanlık bir özellik),
    - bir fonksiyon ismi olarak ferhat size de anlamli geliyor ise,
    - moduler yapının ne demek olduğunu anlamadıysanız,
    - aramaya/sormaya inanmadıysanız

    yukarıdaki şartlardan en az birkaçını yapabiliyorsanız, sizinde hakim olduğunuz standartlar olarak belirtebileceğimiz standartlardır.

    yok bunların hepsine hakim iseniz bir yerlerden adınızı biliyorumdur elbet
  • aslinda iki grupda degerlendirmek gerekirse,

    calisma hayati ile ilgili standartlar

    1) yazilim bir surec degil programciya sokuldugu anda hemen bitmesi gereken bir istir bu sebepden ilk etapda calisma saati kavrami yoktur, yazilimlar proje usuludur ve yazilimci uc kurus para icin 7/24 calismalidir. ve bu ac kalmamak icin hayat standardi olur.
    2) gelistirilecek yazilimin hizli, esnek ve kullanici dostu olmasi degil bir an once bitmesi ve calismasi gereklidir.
    3) musteriye calismiyorsada bir ekran gosterilmeli, musteri is yapildigini anlamalidir, cikan hatalar yazilim calismaya basladigi andan sonra bir sekilde duzeltilir.
    4) programin gelecek surumlerinde ve olabilecek mevzuat degisikliklerinde ilgili modullerin yeniden yazilabilmesi icin programcinin anlayamacagi sekilde analizler hazirlanmalidir.
    5) altyapi dedigin artik gereksiz bir istir her zaman oldugu gibi, ilgili arac acilmali tablo hazirlanmali, form acilip uzerinde edit ler gridler tasinmalidir.(analitik dusunme is ilaninda seksi duruyorda)
    6) herseye ragmen programci gelistirdigi altyapiyi analist ve patrona gosterse bile ilk sorulan soru mahsup fisinin nerde oldugudur, hadi bir fatura keselim yevmiye maddelerini gorelim pesinden kacmaz bile.
    7) ticari program degil bir sistem yazilimi olsa bile programcinin yaptigi, onune butun engeller konulmalidirki boyle hayati deger sahip yazilimlara verilecek servis maliyeti programciya yuklensin.
    8) programci is saati icinde sadece ilgili kod yazsin, yeni teknolojiler uzerinde arastirma ve gelistirme yapmasin cunku bu bos bir istir ha yapacaksa gitsin evinde yapsin.
    10) bir yazilimci maliyet muhasebesi, butce ve uretim sureclerine hakim oldugu anda isinde uzmanlasmis demektir. networku inceleyen programciya o anda maliyetlerin hangi hesaba alacak islenmesi gerektigi sorulmalidir ve cevaplayamazsa yetersiz oldugu icin isine son verilmelidir.
    11) proje icin bilgisi ve tecrubesi olan, en zor projelerin altindan bile kalkan ve donanimi ve yazilimi cok iyi sindirmis, bir problem oldugunda assembly view da bile yazilimi debug edebilecek bir alayli alinmali, uc kurus paraya gece gunduz calistirilip vaat destegiyle proje yaptirilmali ve kicina tekme vurulup yerine sql server uzerinde transaction dan habersiz bir muhendis alinmaliki musteri sordugunda biz bu isi bilenlere yaptiriyoruz denilebilsin.
    12) isi bilen ve emegi gecen yazilimcilara psikolojik savas acilmaliki istifa etsinler yerlerine yeni mezun emmeye gommeye gelecek adamlar alinsin.

    teknik acidan
    1)90 larda dbase vardi 2000 lerde sql. bu yuzden isam programlar gibi sql server programlamali.
    2)set tabanli sql serverda mumkunse tablodaki butun kayitlar acilmali hatta her seferinde yerel pc ye indirilmelidir ki network bi ise yarasin.
    3) pencere acildiginda sql server uzerinde transaction baslamali ve kapandiginda bitmelidir ki bir kullanici calisirken digerleri beklemeli.
    4) tek programcinin calistigi projelerde gelistirme suresi uzamamasi icin structural programlama yapilmali, programci sayisi artinca object orient olayina girilmeli.
    5) firebird, max db, postgre sql yerine teknik riskleri minimize etmesi acisindan sql server(kasit mssql, yalarim ms senden ote pazarlamaci yok) kullanilmali olmadi masrafli geliyorsa access kullanilmali.
    6) component gelistirme isi amerikalilarindir bu yuzden yazilmasi neysede ogrenilmesi bile gereksizdir. essek gibi kurumsal firmalarda bile crack sitelerden cekilmis componentler kullanilmalidir.
    7) programin kullanici dostu olmasi kullanilan componentlerin cesidiyle saglanir. ayni form uzerinde birbirinden farkli ayni isi goren editbox lar kullanilmalidir ki daha sonra proje karissin. igrenc bir mavi renk uzerine kirmizili sekli yamuk componentler serpilmelidirki eye candy olayi saglanabilsin.
    8) yazilim parametrik olmasin bunun yerine her musteri icin ayri executable lar yapilsin(ayri olmasinin nedeni project klasorlerinin ayri olmasindan kaynaklanmali). programci yeni bir kodu ayni isi yapan otuz ayri kaynak dosyada yapmali.
    9)bilgi giris formlari uzerindeki editler datasource baglanip cachede kontrol edilmemeli bunun yerine manual olarak editlerden datasource a assign yapilmaliki security saglanabilsin.
    10)dot matrix yazicilara grafik raporlar veya ayni matbu formlar dokulmeliki cok uzun sursun olmadi bu isi yapan componentler aransin.
    11)merkez sube arasi konsolidasyon yapan bir yazilimda exception handling kullanilmamali ki hayati degeri olan bir dosya transfer edilirken hata cikarsa finally'de o dosyalar delete edilebilsin.
    12) ayni isi yapan kodlar procedure icine alinmasin bunun yerine yazilip kod sisirilsin.
    13) bilgisayar deterministik bir cihaz degildir, connection bir kere kurulur disconnet edilirse daha sonra baglantilar daha hizli olur ve kod buna gore yazilmalidir ki pos yazilimlari musteriyi on dakika kasada kilitlesin.
    14)xml icin parser ne olaki onun yerine kafadan yaz gitsin ki bir sonraki programci yeni bir node ve attribute ekleyecegi zaman anneni ansin.
    .
    .
    .
    daha uzar bu.
hesabın var mı? giriş yap