• - 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.
  • çalışma ekibi için donanim gereksinimleri belirlenirken fantastik çalışmalar da gözlenmektedir.

    proje yöneticisi/müdür için sadece word, excel, ms project hadi bilemedin veri tabanına bağlanabileceği bir kaç client toolun yükleneceği laptop alınmalıdır.fakat bu alet en az 2000$ değerinde 1680*1050 çözünürlükte ekranı olan, 2 gb ram ve harici 512mb ekran kartına sahip olmalıdır ki kapasitenin %30 dan fazlasını zorlamasın yapılması gereken işler.
    veritabanı mysql,mssql ya da oracle olması, kaç userın bağlanacağı önemli değildir, para bastırılır en az çift işlemcili, scsi arrayli, bilmem kaç gb ramli hayvani makine alınır ve üzerinden 1 instance çalıştırılır ki müşterinin production ortamındaki yazılımda performans problemleri ortaya çıktığında "ama bizde doğru düzgün çalışıyo ilginç" denilebilsin.
    sıra developerlara geldiğinde ise gazete promosyonu kılıklı standart orta karar makine alınmalıdır.bu makinelerle beraber en sikik klavye/mouse kombinasyonu da bundle gelmelidir günde 12 saatini makinenin başında geçirenlere eziyet olsun.harddisk leri ise maliyetten kısmak için özellikle düşük hızlarda çalışanlardan seçilmesi şarttır.monitörler 1024*768 hadi şanslı olanlar için 1280*1024 çözünürlükte olmalı developer kod yazarken menüleri toolbarları ayarladıktan sonra kendisine kod yazarken 10*10 cm lik ekran görüntüsü kalmalıdır.bu görüntüye odaklanmak zorunda kalan coder başka hiçbirşeye dikkatini veremediği için işini süper verimli yapacaktır.dual monitör talebine sanki kendisinden göt istenmiş gibi gözlerini patlatarak codera bakan patron/müdürler, coder parasını cebinden ödeyerek 2. monitörü alamasın diye tek ekran çıkışı olan onboard ekran kartlı makine alacak kadar vizyon sahibidirler.

    ayrıca ekibin internete erişimi mümkün olduğu kadar kısıtlanmalı ve denetlenmeli, hatta örnek kuruluş turk telekom feyz alınarak kota uygulanmalıdır.coderın eğer kendini geliştirmesi, sorunlarına intertten çözüm araması gerekliyorsa bunu evde yapmalı, ofis içerisinde başkalarına sorarak onların işlerini de bölerek sinerji yaratmalıdır.yeni çıkan ürünleri, versiyonları deneyerek ortalığı karıştırmaması için ise exe,rar extensionlı bütün dosyalara filtre konmalıdır.hatta işi abartıp sitelerdeki javascript kodlarının çalışması da engellenmeli web teknolojisinin ne kadar gelişmiş olduğunu anlayamayan yazılımcılar, kendi yazdıkları dos uygulaması gibi gözüken web uygulamasını dünyanın en şahane yazılımı zannedebilsinler.
  • 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.
  • - 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
  • not et bunlari hasan

    - degisken isimleri mumkunse anlamsiz olsun ki senden baska kodu okuyan anlamasin. hatta sen bile anlama o derece yani. bunun icin temp ismi mukemmeldir (temp1, temp2, vs...).
    - optimize kod yazmakla ugrasma sittir et, program kazinsin, cpu nun ebesine selam etsin. dongu icinde dongu mesela, ohhh yeah.
    - program hizli calisiyorsa bir terslik vardir, musteriyi de alistirmamak lazim hiza bir taraftan, koy soyle bos donguler programin calistigi anlasilsin.
    - gereksinim analizini de sittir et, musteri cok zekidir ne istedigini iyi bilir, onlar soyler sen yazarsin, kesinlikle sonradan fikir degistirmezler.
    - butun dosyalari ayni klasor icinde tut. ne geregi var bir ton klasore, hepsi gozunun onunde olsun. ayni isimli dosyalar olursa yanina sayi eklersin.
    - object oriented da neymis, bos ver responsibility assignment i, yap bir sinif koy butun fonksiyonlari oraya.
    - oo kullaniyorsan property yapmana gerek yok, butun degiskenlerin public olsun yeter.
    - testi canli sistemde yap. hatta musteriyle beraber yap ki gulup eglenebilesiniz.
    - versiyonlama olayina hic girme kafan karismasin.
    - bol bol da comment yaz, entry tadinda olursa tadindan yenmez hatta.

    hasan bunlari yaparsan. iyi bir piyasa adami olursun. turk yazilim sektoru adini altin harflerle yazar.

    // ********** updated by hasan ****************//
    // ********** date : 12/12/2008 ****************//
    // ******** bilmem ne programi ***************//
  • 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.
  • 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.
  • yine calisma hayati ile ilgili bir ornek verelim.
    -siz en dar zamanda gece gunduz calisarak multithreading'in dibine vurun, rfc lerin kokune kadar inin, win32 api'lerle sabahlayin, yazilim bilmem kac bin client'da 7/24 calissin aman bir sakatlik olursa musteri canimiza ot tikar diye kendi kendini tamir edebilecek algoritmalar implement edin birde bunun uzerine aman makinalar cok zorlanmasin diye en optimize kodlari takla attira attira yazin, mucize bir surede projeyi tamamlayin ve patronlarin gozunde "ne is yapiyo lan bu" adami olun.

    ha yok gidin web tabanli uc bes tane rapor verebilecek bir siteyi projelendirin bunada 2-3 ay sure verin, sayfalari allayın pullayın sonra patrona gosterin ve en degerli adam pozisyonuna yuklenin.
hesabın var mı? giriş yap