Yazılım Evleri


Yazılım Evleri
Yazılım Evleri Tanım

Yazılım Evleri ; çeşitli firma ve şirketlerin  , devlet kurumlarının   yazılım ve yazılıma bağlı sistem ihtiyaçlarını , belli şartlar üzerinden  karşılamak amacıyla kurulmuş ,   yazılım geliştiren  şirketlerdir.

Ufak bir ofis ya da ev içinde kurulu bir yapısı olabileceği gibi zamanla büyüyerek kurumsal yapılara da ulaşabilirler. Genel olarak    10 -  12  kişilik ekiplere sahip olabilirler. Proje imkanlarına bağlı olarak çalışan sayısı  çok daha fazla olabilir.

Yazılım Evleri İşlevleri Nelerdir ?
Yazılım Evleri genel olarak şirketlerin yazılım ve bu yazılıma bağlı olarak sistem ihtiyaçlarını karşılarlar.

Yazılım ihtiyacı olan her türlü firmaya destek verebilirler.  Gelişen teknolojik imkanları kullanarak , firmalara teknolojik danışmanlık hizmetlerinde bulunabilirler.

Gelişen teknolojiye paralel olarak projeler geliştirebilirler , AR-GE çalışmaları yürüterek bu AR-GE ler üzerinden firmalara danışmanlık hizmetlerinde bulunabilirler.

Şirketlere ve son kullanıcılara yenilikçi ve kaliteli arama çözümleri sunarak , dünya çapında mevcut olan büyük bilgi kümelerine erişim sağlayabilirler.  Bilgi üzerinde araştırma yaparak , bilgiyi kullanan yeni servisler üretebilirler.

Yazılım Evlerinde Kimler Çalışabilir ?

Yazılım Evlerinde  , Yazılım , tasarım , analiz , teknolojiye meraklı  ve bu işi yapmayı sevebilen herkes çalışabilir.  Daha çok bu işi okul düzeyinde  öğrenmiş ve teknolojik bilgisini lise ya da üniversite çağlarında almış  kişiler yazılım evlerinde  çalışmaktadırlar.  Ama çoğu kişiler vardır ki , sadece merak ve bu işin az bir eğitimini alarak başlamış ve  ileri düzeyde yazılım geliştirme işlerinde uzmanlaşmışlardır.

Yazılım Evlerinde tabiki  sadece yazılım yapılmamaktadır. Bir yazılımı geliştirmeye başlarken ilk önce analiz , dökümantasyon ,  yazılım akış diyagramları çalışmaları olabilecektir. Bu işlerde hiç kodlama yapmadan bir çok kişi görev alabilmektedir.   Daha sonra yazılım aşamasında yazılım mühendisleri , programcılar ve önyüz tasarımcıları görev alırlar. Sonrasında ise yapılan yazılımın gerektirdiği sistemler üzerinde çalışmalar yapmak gerekecektir.  Kurulacak serverlar , network altyapısı  , veritabanı yönetim ve kurulumu gibi ciddi işler çıkmaktadır. Bu işleri de sistem ve network ile ilgili uzmanlar yapabilmektedirler.

Eğer yaptığınız yazılım ufak çapta bir yazılım ise bu işleri tek başına bir kişi yapabilir.  Web üzerinde çalışan bir yazılım ve beraberinde tasarım da üretirsiniz. Daha sonra bu yazılımı  destekleyen bir firma üzerinden internete açarak sisteminizi çalışır hale getirebilirsiniz. Ama kurumsal bir firma iseniz ve büyük sistemler , datalar üzerinde çalışıyorsanız , güvenlik sizin için çok önemli ise bu yukarıda saydığımız işler için alanında uzman kişilerle çalışmak durumdasınızdır.

Yazılım Evlerinde Ne Tür Projeler Yapılır ?
1-      Web Tabanlı Projeler   
2-      Mobil Projeler
3-      Ar-GE Projeleri
4-      Yazılım Satış Temsilciği
5-      Danışmanlık Desteği


Web Tabanlı Projeler   

Günümüz de artık web teknolojileri hızla yayılmakta ve hemen hemen bütün firma , kurum ve şirketler web üzerinden işlerini yapmaya çalışmaktadırlar. Bundan 10 yıl öncesine kadar  ,  ülkemizde internet şimdi olduğu gibi evlerimizde değildi.  Telefonlarımızdan , tabletlerimizden mailllerimize bakıp , işlerimizi takip edemiyorduk. Online sistemlerde bu şekilde haberleşme imkanımız yoktu. Ama artık 7 den 77 e herkes rahatlıkla istediği zaman internete bağlanabilmektedir.  Telefonlarımıza kurduğumuz programlar sayesinde günlük işlerimizi de rahatlıkla takip edebilmekteyiz. 

Bütün bu olanaklar da bekleneceği gibi yeni iş imkanları açtı. Piyasada , bu gelişen teknolojiyi takip edebilecek  ,ayak uyduracak firmalar kurulmaya başladı. Yazılım Evleri , Bilişim ve Teknoloji Şirket ve  Holdingleri , Yazılım, Donanım ve Sistem satışı yapan firmalar kuruldu. Yazılım Evleri de yazılım üreten , özellikle web alanında projeler üreten şirketler içinde yüzdelik dilimi neredeyse en çok olanlar arasında yerini aldı. 

Müşteri istekleri , plan ve projeleri irili ufaklı , çok farklı web tabanlı projelerin oluşmasına imkan verdi. Yazılım evleri basit bir firma tanıtım sitesi yapabildiği gibi , büyük ölçekli aynı anda yüzlerce kullanıcının işlem yapabildiği projeler de üretebilmektedir.

Web tabanlı bir projenin Yazılım Geliştirme sürecinde  izlenilmesi gereken plan ve program şu şekilde olabilir :

Öncelikle firmanın yapılacak olan yazılımdan beklediği hedefler nelerdir ?   Bu hedeflerin yazılım tarafında olunabilirliği nelerdir ?
Çok büyük hedefler istenebilir bu sizin şirketinizin yapamayacağı  , altından kalkamayacağı  işler de olabilir. Ya da projeler ufak ve dar kapsamlıdır. Proje sonunda alınacak ücret , sizin çalıştırdığınız adam/gün maliyetini karşılamayacaktır. Şirketin bu iş sonunda elde edeceği bilgi ve tecrübenin yanında bu hesaplamalarda önem kazanmaktadır.
Projenin olunabilirliği , yapılabilirliği araştırıldıktan sonra proje analizine başlanılmalıdır. Proje analizinde proje ne iş yapacak. Genel manada yapacağı iş tanımlanmalıdır. Örnek verecek olursak , kurumsal büyük bir şirkete bulut teknolojisi adı altında bir proje yapacaksınız.  Müşteri sizden neler istiyor bu yazılımından beklediği nelerdir ?
Bu süreçlerden sonra proje şartnamesine bakılarak müşteri sizden bu projeyi  ne kadar zamanda yapılacağını öğrenmek isteyecektir. Siz de kaç adam/gün de yapacağınızı belirleyeceksinizdir.
Sonraki aşamada projenin genel tanım ve işlevlerine göre , projede kullanılacak ekranlar yavaş yavaş çıkarılmalıdır. Bu  ekranları balsamiq ya da html üreten  programlar ile hızlı bir şekilde çıkarabilirsiniz.
Daha sonra ekranlar üzerinden her bir ekranda ne işler ve nasıl yapılacak gibi ekran işlevleri belirlenebilir. Bu arada buraya kadar olan işlemleri , proje analizleri yapacaklardır. Eğer şirketinizde proje analizleri yoksa , sadece programcılarla çalışıyorsanız , bu işlemler yapılmayacak ve direk tasarım ve kodlamaya geçilecektir.  Bu da ileride proje kapsamına göre başınızın bir çok kez , tekrar tekrar ağrıması demektir.
Daha sonra ise bu yapılan ekran ve tasarımlar , analizler müşteri ile paylaşılması , işleri tekrar etmeden sizleri zaman kaybından  kurtaracaktır.
Sonraki aşamalarda proje içerisindeki  Model ve Database yapısı çıkarılır. Ve belli işler , belli görevler , belirli kişilere paylaştırılır ve yavaş yavaş projenin kodlanmasına geçilir. Bu süreç sancılı başlayabilir. Ama hiç başlanmayan iş , hiç bitmeyen iştir sözüne sadık kalarak , işe başlandıktan sonraki süreçler ise çok daha verimli ve zevkli geçecektir.
Projenin kodlanması bittikten sonra diye bir şey yoktur. Projenin kodlanması proje hayatı boyunca devam edebilir.  Müşteri tarafından istenilen temel özellikler yapıldıktan sonra da düzeltmeler  , ek istekler çıkacaktır.  Bu süreçlerde projenin fazlar halinde ayrılması demektir. 1 . Faz , 2 . Faz diye proje kısımları ayrılacaktır.
Web tabanlı bir projenin çalışma ortamı , internet tarayıcılarıdır. Günümüzde İnternet Explorer , Google Chrome  , Mozilla Firefox  vs. Gibi bir den çok tarayıcı vardır. Yapılan projenin bu tarayıcıların hemen hepsinde , özellikle çok kullanılanlarda çalışabilmesi de önemlidir.
Web tabanlı bir projenin yapılış aşamaları bu şekilde gerçekleşecektir.  Bir yazılım evinin örnek olarak  yaptığı projelerden bir kaç tanesininin linklerini verebiliriz.







Mobil Projeler
Bir web tabanlı proje yaptıktan sonra , bu web tabanlı projenin mobil versiyonları da yazılım evinden istenebilir.  Yapılan yazılımın müşteriler tarafından daha aktif , esnek ve her yerden erişilebilir olması açısından , android ,  Iphone , Ipad yada tablerden de ürüne erişim  için bu son derece önemlidir.  Bundan dolayı bir yazılım evinde sadece web tabanlı projeler yapılabileceği gibi , sadece mobil projelerde yapılabilir.  Her ikisi de yapılabilir.

Mobil projeler  kurumsal yapıda olabilir. Kurumsal büyük şirketlerin , telefonlar üzerinden  müşterilerin faturalarını takip edebilmesi , ödeyebilmesi buna bir örnektir. Ya da bulut teknolojisine sahip bir şirketin , müşterilerin dosyalarına her yerden erişimi için telefonlardan erişime izin verebilmek için uygulama geliştirmeleri de  örnek olabilir.  Telefondan çekilen bir resmin  , paylaşılarak aynı anda evdeki bilgisarına da senkronize olması , ya da sosyal ağlara aynı anda paylaşılması , bulut teknolojisine bir örnek olarak verilebilir.
Yazılım evlerinde yapılan mobil projeler için oyunlar da büyük bir sektör haline gelmektedir. Oyun yazan bir şirket online kullanıcılara çok az miktarda bir ücret ile hizmet vermekte ve devasa karlar elde edebilmektedir.   Bedava yapılan oyunlardan bile reklamlar sayesinde çok iyi karlar elde edilebilmektedir.
Yazılım evlerinin mobil proje örnek  verebiliriz.


AR-GE Projeleri

AR-GE (Araştırma Geliştirme) kelimesi günümüzde çok farklı manalarda kullanılabilmektedir. Yazılım Evlerinde ki AR-GE ;  Bilgiyi kullanıp , yeni bilgiler elde etmek ve bu yeni bilgilerle yeni , işlevsel , esnek ürünler ortaya koymak diyebiliriz. Yeni bir ürün için bilimsel altypı sağlamakda diyebiliriz. Araştırmaya zaman ayırabilmektir. Özel çalışma gerektiren bir süreç olarak belirleyebiliriz. 

Genel tanımlardan anlaşılacağı üzere bir şirketin AR-GE yapılabilmesi için belli bir bilgi , araştırma ve geliştirme birikiminin olması gerekmektedir. Bunların yanında tabiki maddi imkanları da es geçemeyiz.

AR-GE sürecinde bulunan şirketler , belli bir süre bir ürün satamamaktadırlar. Bu süre zarfında çalışanların ücretleri de çoğu şirketler için sorun oluşturduğundan AR-GE faaliyetleri sekmeye uğrayabilmektedir.

AR-GE faaliyetine başlamadan önce piyasa araştırması yapmak önemlidir. Yapacağımız ürün piyasa da mevcut mu , alternatifleri var mı ,  piyasadaki ihtiyaçları ne kadar karşılıyor , yaptıktan sonra satış sürecinde bize sağlayacağı avantajlar gibi konuları da AR-Ge faaliyetleri içierisine sokmakta fayda olacaktır.

AR-Ge projeleri uzun soluklu projelerdir. En az 6 ay gibi bir süre gereklidir. Yapılan ürünlerin ilk başlarda müşterileri mevcut değildir. Sonradan ürünler şekillenmeye başladıktan sonra müşterileri çıkacaktır. Çoğu büyük firmaların ürünleri hep bu şekilde AR-GE süreci ile sonuç bulmuştur. Bir FaceBook , Youtube gibi devasa firmalar hep bir küçük ya da büyük AR-GE faaliyetleri sonucunda ortaya çıkmışlardır.

Örnek olarak şu anda Türkçe Arama Motoru , Tübitak tarafından yapılmaktadır. Bu büyük bir ar-ge süreci gerektirmektedir.

Bir yazılım evi , Ar-Ge projesi olarak kamu kurumlarına gerekebilen projeler yapılabilir. Yada bir android uygulaması için ar-ge süreci yapılabilir. Barkod okuyucu bir uygulama yapılabilir. Marketlerde satılan ürünlerin barkodlarının resmini çekip , ya da kodunu girip o ürün hakkında detaylı bilgiye , ürün içeriklerine ulaşılabilir. Ve artık sizlerin hayal gücüne kalmış projeler ...

Türkiye de AR-Ge projeleri artık büyük destek görmektedir. Tübitak , Odtü gibi üniversite ve kurumlar AR-GE projelerine büyük destekler sağlamaktadır.


Yazılım Satış Temsilciği

Yazılım Evlerinin takip ettiği bir iş olarak yazılım satış temsilciliği verilebilir. Büyük ya da küçük ölçekli firmalar için belli bir emek , süre harcanarak yapılan yazılımların ,  başka bir firma aracılığı ile müşteri bulunması ve satışa sunulması işlemidir.

Daha çok yurtdışında yazılan ürünler ülkemizde satışa sunulmaktadır.  Ülkemizde bir çok firma yurt dışında yazılan büyük ölçekli ürünleri satışa sunmaktadır. Satış işlemi için yazılım evlerinde ürünler hakkında eğitim alıp , satış temsilciliği yapabilen elemanlar bulunmaktadır.


Danışmanlık Desteği

Yazılım Evleri çeşitli firmalara teknoloji , bilişim alanında destek sağlamaktadırlar.   Yazılım evlerinde geliştirilen bir ürünün satış işleminden sonra , ürün desteği verebilecek , ürün hakkında geri dönüşler alabilecek , aldığı geri dönüşleri  içerideki yazılım geliştiren kişilere iletebilecek kişiler  , danışmanlar bulunabilir.

Yazılım Evleri geliştirdiği bir ürünü satışa sunduktan sonra  sürekli danışmanlık desteği verebilirler.
Farklı bir firmadan satın aldığı bir ürünü sattıktan sonra da danışmanlık desteği verebilirler.
Firmalara teknoloji ve sistem desteği de verebilirler.

Comments

Popular posts from this blog

Design a notification system

NETFLIX HIGH-LEVEL SYSTEM DESIGN

URL Shortener System Design