İnşaat ve Yazılım Mühendisleri Arasındaki Fark – KurumsalJava.com – Özcan Acar
Sıkıysa çok dikkatli çalışmasınlar. En ufak bir yanlış statik hesap yorumlaması bile binanın yıkılmasına sebep olabilir.
Binayı sadece bir kez inşa edebilirler. Netice hoşlarına gitmeyince, boz yeniden yap yapamazlar, yani tek bir şansları var.
İnşaatın maliyeti çok yüksektir. Herşey buna odaklı önceden planlanır ve uygulanır. İnşaat mühendisi ne yapacağını önceden en ince detayına kadar bilmek zorundadır. Bunu yazılımda şelale (waterfall) yöntemi ile kıyaslamak mümkündür. Aslına bakacak olursak binalar sadece şelale yönetime göre inşa edilebilir.
İnşaat sona erdikten sonra müşteri beğenmedi diye örneğin temel sökülüp, yeniden yapılamaz. İnşaatı bitmiş bir bina artık hemen hemen statik ve değiştirilmesi mümkün olmayan ya da çok zor olan bir cisimdir.
Mimar tarafından bina mimarisi inşaat başlamadan önce yapılır. Mimari yapı belli olmadan inşaat mühendisi binayı inşa etmeye başlayamaz, çünkü ne yapacagını bilemez. Mimar yoksa inşaat mühendisi de yoktur. Gecekondu yapıyorsanız durum farklı tabi.
İnşaat mühendisi kendisine verilen statik hesaplamaları ve mimariyi harfiyen uygular. İnisiyatif kullanıp, mimariyi ve yapıyı yeniden şekillendiremez.
Bir binanın yeniden yapılandırılması çok maliyetli bir iştir ve çogu zaman imkansızdır.
Yazılım sisteminden bir yapı (build) oluşturmak masrafsız bir iştir. Yazılım mühendisi hergün istediği kadar yapı oluşturabilir.
Yazılım mühendisi, yazılım sistemini oluştururken inisiyatif gösterip doğru bulduğu tasarım şablonlarını ve tasarım prensiplerini uygulayabilir.
Yazılım mühendisi, yazılım sisteminin mimarisi belli olmadan kod yazmaya başlayabilir. Nitekim çevik süreçlerde basit ve pragmatik bir mimari ile başlanması önerilmektedir. Zaman içinde müşteri istekleri doğrultusunda mimari oluşur. Değişikliği mümkün kılan da zaten budur.
Yazılım mühendisi yeni müşteri gereksinimleri ile yazılım sisteminin mimarisini revide edip, değistirebilir. Yazılım mühendisleri ile inşaat mühendisleri arasındaki en bilirgin farklılık budur. Müşteri gelip yazılım mühendisine her zaman yeni isteklerini ve değişiklik taleplerini iletebilir. Yazılım mühendisi bu isteklere her zaman cevap verebilir. Çevik süreç kullanmıyorsa, biraz zor tabi. İnşaat mühendisinin yeni müşteri isteklerine cevap vermesi hemen hemen imkansızdır, çünkü bu tür değişiklikler çok masraflıdır.
Yazılım mühendisi oluşturduğu testleri kullanarak yazılım sistemini her zaman yeniden yapılandırabilir (refactoring). Yeniden yapılandırma, müşteri gereksinimlerine cevap verebilmek için kullandığı en güçlü silahıdır.
Yazılım mühendisi Extreme Programming gibi bir çevik süreç kullanarak önünü her zaman açık tutabilir.
Yazılım mühendisleri her zaman yoğrulabilir bir yazılım sistemi ortaya koyma fırsatına sahipken, inşaat mühendislerinin çalışmaları katılaşmış ve değiştirilmesi imkansız neticeler ortaya koyar. Aslında sonuncusu yazılım sektörü için de geçerli bir durumdur. Birçok yazılım mühendisi inşaat mühendisi gibi çalışıyor olmasa da, onlar gibi katılaşmış ve yoğrulması imkansız neticeler (yazılım sistemleri) ortaya koymaktadırlar. Mental çalışma modelimiz inşaat mühendislerinin mental çalışma modellerinden çok farklı olmasına rağmen, neden onlardan farksız sonuçlara imza atamıyoruz? Yoksa bizde mi inşaat mühendisiyiz? Anneeee….
Bu arada tüm inşaat mühendisi arkadaşları buradan saygıyla selamlıyorum. Bu yazımda amacım kesinlikle onların çalışma tarzlarını tenkit etmek değildi. Onların çalışma metotları böyle. Başka türlü çalışmaları zaten bizim açımızdan sağlıklı olmazdı :)
Bir yazılım mühendisi olduğum için çok mutluyum. Güç bende. İnşaat mühendisleri de mutlu mu acaba? Bir inşaat mühendisi arkadaş bu yazıyı okur ve yorum yaparsa sevinirim.
Yazılım Mühendisi’ yim ama arada bir inşaat mühendisi olmak nasıl bir duygu diye düşünürdüm. Artık düşünmeyeceğimden eminim. Güzel ve keyifli bir yazı :))
Bilgisayar mühendisi olmama rağmen henüz bu süreçlerin hepsini gerçekleştiremiyorum.Ama hedefim bunların hepsini yapmak.Gene döktürmüşsün hocam.
Birincisi İnşaat mühendisleri sadece bina yapar gibi bir anlayışınız var bu yazıdan görüldüğü kadarıyla. Bende öyleymiş gibi yapıp devam edeceğim, diğer kısımları anlatmakla vakit kaybetmek istemiyorum. ( Ulaşım yapıları( Karayolları, köprüler, demiryolları, havalimanları ) , Su yapıları ( Barajlar, su kanalları ) , Altyapı ( Kanalizasyon sistemleri, sulama sistemleri ), İnşaat yönetimi ( Sözleşmeler, İş programlama, maliyet hesapları.. ) Ufak bir not, İnşaat mühendisliğinin Amerikadaki dengi Civil Engineering’dir. Kapsamını varın siz düşünün..
Haydi diyelim sadece bina yaptık; Bir müşterinin temeli beğenmemesi gibi bir durum olamaz. Temeli kimse görmez zaten, neyini beğenmeyecek? Burada da anladığım kadarıyla mimarlar ile inşaat mühendislerini karıştırıyorsunuz.
İnşaat mühendisleri dizayn aşamasında olsun, saha da olsun sürekli insiyatif alır, almak zorundadır. Dizayn esnasında malzeme seçimi, kesit seçimi, bağlantı detayları gibi pek çok konuda insiyatif alır. Sahada ise uygulama esnasında sürekli kararlar almak ve uygulatmak durumundadır. Aldığı kararlarda decorator mı kullansam wrapper mı gibi basit kararlar değildir.
Bir binanın yeniden yapılandırılması ile kasıt nedir tam anlayamadım ama, inşaat mühendisinin işi değil genelde dekorasyonla ilgilenen kişilerin işidir. Sıkıntı yok o konuda.
İyi bir insan, iyi bir yazılımcı, altın kalpli bir kişi olabilirsiniz, fakat bu yazınız çok vasat. Açıkça görülüyor ki bilginiz olmayan bir konuda yazmışsınız. Söyleyecek daha çok şey var ama “neresinden tutsam ki” gibi bir durum var bu yazıda.
Detayli yorumunuz icin tesekkür ederim. Bina kelimesini yapi kelimesi ile degistirdigimiz taktirde, söylediginiz gibi bir insaat mühendisinin calisma alanini genisletmis oluruz. Bina bir örnekti sadece.
>Haydi diyelim sadece bina yaptık; Bir müşterinin temeli beğenmemesi gibi bir durum olamaz. >Temeli kimse görmez zaten, neyini beğenmeyecek? Burada da anladığım kadarıyla mimarlar ile i>nşaat mühendislerini karıştırıyorsunuz.
Bir yazilim sistemi olustururken, cogu zaman yazilimci olarak müsterinin bildiklerinden degil, bilmediklerinden yola cikariz. Kisaca müsteri cogu zaman ne istedigini bilmiyor. Dogal olarak yazilimda atilan temeller anlamini yitirebilir. “Temeli kimse görmez zaten” demissiniz. Bu müsterinin istekleri ve gereksnimleri degisene kadar gecerli bir durum olacaktir. Siz insaat mühensisi olarak yapinin yarisini insa ettiginizi düsünelim. Müsteri, siz yari yola gelmis oldugunu halde, fikrini degistiremez mi? Degistirmek zorunda kaldigi anda bakin bakalim nasil binanin temeli ile ilgilenmeye baslayacak. Baslangicta ev yaptirmak isteyen bir müsteriniz, bunu apartmana cevirmek istediginde temeller birden konuyla ilgili herkesin ilgi alanina girecek. Ama insaat mühendisi olarak temeli attiktan sonra sizin baska alternatifiniz yok. O yapiyi ya sonlandiracaksiniz ya da yikacaksiniz. Amacim ilk meslek gurubu arasinda bu kiyaslamayi yapmakti. Mimarla insat mühensini karistirmiyorum. Temel atildiktan sonra yapidan sorumlu olan insaat mühendisidir. “Temeli kimse görmez zaten, neyini beğenmeyecek” seklinde bir cümle sarfetmeniz, aslinda bir insaat mühendisi olarak sizin müsteri gereksinimlerine yapi esnasinda fazla önem ve anlam verrmediginiz anlamina geliyor.
>İnşaat mühendisleri dizayn aşamasında olsun, saha da olsun sürekli insiyatif alır, almak >zorundadır. Dizayn esnasında malzeme seçimi, kesit seçimi, bağlantı detayları gibi pek çok konuda i>nsiyatif alır. Sahada ise uygulama esnasında sürekli kararlar almak ve uygulatmak durumundadır. >Aldığı kararlarda decorator mı kullansam wrapper mı gibi basit kararlar değildir.
Bu saydiginiz aktivitelerin hic birisi insaat mühendisinin, yapinin genel tasarimi ve mimarisi hakkinda yapi esnasinda inisiyatif gösterdigi anlamina gelmez. Ben yazimda bir insaat mühendisinin mimarlar tarafindan yapilan tasarima uymak zorunda kaldigini anlatmaya calistim.
Mimara danismadan balkonlu tasarlanmis bir binayi balkonsuz insa edebilir misiniz?
>İyi bir insan, iyi bir yazılımcı, altın kalpli bir kişi olabilirsiniz, fakat bu yazınız çok vasat. Açıkça >görülüyor ki bilginiz olmayan bir konuda yazmışsınız. Söyleyecek daha çok şey var >ama “neresinden tutsam ki” gibi bir durum var bu yazıda.
Haklisiniz, ben insaat mühendisi degilim. Yazimi yazarken insaat mühendislerinin calisma metotlari hakkinda ufak capli bir arastirma ve kendi gözlemlemelerimden yola cikarak yazdim. Yazimda da belirttigim gibi, maksadim insaat mühendislerinin calisma tarzini kritize etmek degildi. Insaat mühendisi olmayarak, bu konudaki gözlemlerimin tamamen yanlis oldugunu düsünmüyorum.
Cevabınız için teşekkürler, ne kadar tartışsak da ne inşaat mühendisliği, ne yazılım ne üstün ne alçak, ne kolay ne zor olacak. Önemli olan insanlık. Vaktinizi almayayım daha fazla..
Eğer isterseniz ama yanlış düşündüğüzü/bildiğinizi sandığım konularda daha uzun uzun tartışmakdan gocunmam. Yeter ki açık görüşlü olalım.
( Küçük bir not: Mimari proje ve statik proje çok ayrıdır. İnşaat mühendisi elektrik projesine de karışmaz mesela, mekanik projeyede. Bu yazılım mühendisi bilgisayarlar nerede duracak, ona karışamaz demek gibi. Neyse uzatmıyorum :) ) İyi çalışmalar.
Maksadim kesinlikle “insaat mühendisleri bilgisayar mühendislerineden alcaktir ya da yüksektir” demek degildi! Allah korusun! Böyle bir kiyaslamayi nasil yapabiliriz ki? Ne kadar cok usta yazilim mühendisine ihtiyacimiz varsa, bir o kadar cok ta insaat ve diger mühendislere ihtiyacimiz var.
Dediginiz gibi önemli olan insanlik :)
Tartisma ve fikir beyan etme tarziniz cok olgun, o yüzden teklif ettiginiz sekilde insaat mühendisligi konusunda sizden dogrulari ögrenmek beni sevindirir.
Öncelikle yazılarınızı takip eden birisi olarak şunu belirtmek isterim ki; gerek üslup gerekse içerik yönünden fevkalade olan makaleleriniz bizler için bulunmaz kaynak niteliğinde. Açık kaynaklı sistemlerle geliştirme yapan yazılımcıların öğrendiği bilgiyi, edindiği tecrübeleri paylaşması gerek yeni yetişmekte olan yazılımcılara yol göstermesi açısından gerekse anadilde eksik olan kaynak problemine katkıda bulunması açısından son derece faydalı bir durum.
Bu yazıya yorum yapma sebeplerimden birisi de, onca zamanını verip faydalı bir şeyler aktarmaya çalışan değerli insanların yazdıklarına, daha ne anlatmak istediğini bile anlayamayan insanların manasız karşılıklar verilmesi.
Yazıya yorum yapan arkadaşın (Koray Tugay) yazdığı cümlelerden yazılımın ne olduğunu, yazılım metodolojilerinin uygulanış biçimini, sistemin yeniden yapılandırılabilir olmasının ne demek olduğu gibi kavramlar hakkında bilgi sahibi olmadığı açık. Durum böyle iken, farklı iki dal arasında kısmı bir bağ kurulup yazılan bir yazıya nasıl oluyorda bu şekilde bir cevap veriyor anlamak zor. Bir fikre karşı çıkılmadan önce karşı tarafın savunduğu şeyin ne olduğu idrak edilmelidir yoksa farklı tellerden çalınmaya devam edilir …
Merhabalar! Mühendis değilim.
Açılan başlık altında yapılan ayırımlar kıyasa dönmüş! Mesleki ayırım manasının çıkmaması işten değil. En son yorum incelikten uzak, kırıcı olmuş.
Ben şunu önerecektim, “proje” kavramının üzerinde biraz durulursa, aslında bütün meslek kollarının nereye kadar bağımlı nereye kadar bağımsız olduğu daha iyi anlaşılacaktır. İnsanın kendisine şu soruyu sorması lazım; “proje, benim mesleğimin neresindedir?”.
Çok güzel bir yazı olmuş bu farklar ilk başta çok basit gelebilir ama işin içinde olan biri olarak çok ince detaylara dokunduğunuz için sizi tebrik ederim bu konu daha önce hiçbir yerde yazılmamıştı tebrikler.