Yazılım Mühendisliği

Yazılım Mühendisliği Öğrencisi

Sorular ile Yazılım Mühendisliği 2/4 [Paul D. Paulson(Yurtdışında çalışan) ile röportaj]

Yazı Hakkında

Bu yazı serisi Türkiye’de ve diğer ülkelerde Yazılım Mühendisliği denildiğinde akla gelecek kişilere bir öğrenci olarak gönderdiğim soruların cevaplarını içermektedir.

Soru Gönderdiğim Kimseler

Cihat Altuntaş : En kaliteli Türkçe Yazılım Mühendisliği sayfasının yazarı.

Özcan Acar : Dünyanın sayılı Java Şampiyonlarından birisi ayrıca www.btsoru.com ’un sahibi.

(okumak için tıklayınız)

Dr A.F. Blackwell (Kembiriç Üniversitesi’nde öğretim görevlisi bir hocamız, kendisi İnsan Bilgisayar İletişimi ile Yazılım Mühendisliği hakkında dersler veriyor

(okumak için tıklayınız)

Paul Paulson (Yurtdışında Yazılım Mühendisliği yapan birisi.)

(şu andaki röportaj)

Bu yazıda kiminle röportaj yapacağız

Bu yazıda yurtdışında 32 yıl boyunca yazılım sektöründe çalışmış, şu anda ise yazılım mühendisliği yapan Paul Paulson’a e-posta ile gönderdiğim soruların cevaplarını okuyacağız. Kendisinin özgeçmişine linked-in sayfasından erişebilirsiniz.

Cevaplar hakkında bir husus daha

Cevapların acizane Türkçe’ye çevirmeye gayret edeceğim ayrıca yazının en alt kısmında İngilizce metininide bulabilirsiniz.

Sorular ve Cevapları

1- Kendinizi ve Yazılım Mühendisliği ile olan geçmişinizi kısaca anlatabilir misiniz?

Benim ismim Paul Paulson. Aslında Amerika’daki Güney Dakota şehrinde doğdum fakat 1984’den beri Minesota’da yaşıyor ve çalışıyorum. İş hayatımın ilk 10 yılında Amerika Jeolojik İnceleme biriminde uzaktan algılama teknolojileri alanında çalıştım. Daha sonra da tanısal tibbi görüntüleme ve görüntü algılama alanında hizmet veren kendi şirketimi açtım. Ayrıca sözleşmeli olarak yazılım mühendisliğide yapmaktayım. 32 yıllık iş hayatımın çoğunda 3 Boyutlu Protatip Oluşturma, Endüstriyel Basım, Kredi Kartı Üretimi gibi pek çok farklı mühendislik alanlarınıda gerektiren(elektrik, mekanik ve yazılım mühendislikleri gibi) projelerin tasarımı ve geliştirilmesi ile meşgul oldum.

2- Sizce mühendisliğin tanımı nedir? 

Mühendislik, birşeyi “belirleme”, “tasarlama” ve “hayata geçirme” olayını daha önce yapılmış ve başarılı olmuş en doğru yol ile yapmaktır. Ayrıca mühendislik bir şeyi yöntemli yapmaktır. Bu yöntemlilik, projenin ilerisini tahmin edebilmek ve kullanılan metodları başka projelerde tekrar kullanabilmek için bize yardımcı olacaktır.

Bunun yanında mühendislik proje için “zaman” , “maliyet”, “ürün ve mühendislik harcamaları” ,  “insan ve elektronik gereçler gibi kaynakların yönetilmesi” gibi konularla da içli dışlıdır.

3- Yazılım Mühendisliği’ndeki “Mühendislik” kelimesinin sebebi nedir? Moda olarak herseyin sonuna”mühendislik” kelimesi eklemekten mi geliyor, yoksa gerçekten “Mühendislik” ile alakası var mi? 

“Yazılım Mühendisliği” terimi bir yazılımın tasarımını ve hayata geçirilmesini; yöntemli(sistematik) ve belli standartlara oturmuş kurallar çerçevesinde geliştirmeyi ifade eder. Aslında bir yazılımı geliştirmek için, mühendislik tanımlarını kullanmak çokta şart değildir fakat bu sefer de yazılım projesinin ileri ki safhalarını tanımlayabilme ve projedeki kullanılan metodların başka projelerde de kullanabilme olasılığımız azalacaktır. Eğer yazılım mühendisliğini; elektronik mühendisliği, makine mühendisliği gibi köklü mühendislik dalları ile karşılaştırırsanız, yazılım mühendisliğinin yeni ve gelişmeye ihtiyacı olduğunu farkedeceksiniz. Bu gelişimde zaman içinde gerçekleşecektir.  Şahsen ben yazılım mühendisliğinin bir moda olduğunu düşünmüyorum.

4- Yazılım Mühendisi, sadece uml bilen programcı mıdır ? Eğer değilse tam olarak kimdir ve geliştirilen projelerde nerededir? 

Yazılım Mühendisi, bir üniversitede yazılım mühendisliği eğitimi alarak veya uzman yazılım mühendisleri ile çalışarak tecrübe yoluyla kendini yazılım mühendisliği alanında geliştiren kimsedir. Bunlardan en iyisi ise hem üniversite kanalı ile akademik altyapı hem de tecrübe sahibi olanıdır.Ne kadar da yazılım mühendisliği bir akademik altyapı gerektirsede gerçek dünyada yazılım mühendisliği çok yenidir ve şu andaki yazılım mühendislerinin çoğunun üniversite yıllarında böyle bir bölüm malesef yoktu.

Aslında yazılım mühendisi bir çok programlama ve modelleme dilini kullanır. Bunların içine UML ‘de dahilsede yinede hepsi UML kullanacak diye bir şart yoktur. Genelde yazılım projesini geliştirecek takımın veya şirketin belirlediği yazılım dilleri ve araçları kullanılır. Şirketin bütçesinin de bu konuda büyük rol oynadığını söylemem gerek çünkü genelde küçük şirketlerde pahalı yazılım araçları kullanamıyorsunuz.

5- Yazılım Mühendisinin bilmesi gereken 5 önemli şey nedir? 

  1. Güçlü kalite gereksinimlerini yazmayı bilmesi
  2. Karmaşık problemler için basit çözümler yaratabilmesi
  3. Sorularının cevapları olacak bilgileri nereden bulabileceğini bilmesi. Bu sorular bazen “Problem” üzerinde çalışırken bazen de “Çözüm” üzerinde çalışırken akla gelir.
  4. Takım arkadaşlarıyla en uyumlu nasıl çalışabileceğini bilmesi
  5. En iyi teknik çözümün bazen en iyi ticari çözüm olmadığını bilmesi

6- Sizce Yazılım Mühendisliği alanında kitapların dünyası ile gerçek dünya arasında farklar var mıdır?

Muhtemelen en büyük farklılık; projedeki ticari kısıtlamaların, takım dinamiklerinin ve şirket ahlakının sizin beklentileriniz gibi olmamasıdır. Birşeyi nasıl “doğru” şekilde yapabileceğini biliyor olabilirsiniz fakat çoğu zaman bunu “şirketin” şeklinde yapmak zorunda kalacaksınız. İş hayatına atılmadan önce, bazı şirketlerin çok yavaş geliştiğini ve bütün harcamalarını sadece ellerindeki teknolojiler için kullandığını unutmamak lazım. Bazen en doğrusu onlara daha doğru yolu göstermek oluyor.

7- Üniversiteyi içerisi, iş hayatını da dışarısı olarak kabul ederseniz,dısarıda yani sektörde işler nasıl yürüyor? Hala içeride bulunan oğrenciler için, dışarı çıkmadan önce neler yapmalarını tavsiye ederseniz?

Zamanını senin için en faydalı olacak şeyler için harca. Öğrenebildiğin kadar çok şey öğrenmeye çalış. Başkalarına yardımcı ve saygılı ol. Birşey öğrenmek için tutkulu ol. En yeni teknolojileri öğrenmeye ve bunları hem iş hayatında hemde iş hayatının dışında kullanmaya gayret et. Yazılım mühendisliği çok yaratıcı ve karlı bir mesleğe dönüşebilir.

Soru ve cevapların asıl metni  

 Abdullah,

 
Here are the interview questions with responses. Also, thank you your patience and the reminders.
 
1- Could you introduce briefly yourself and your relationship with Software Engineering field.

My name is Paul Paulson. I am originally from South Dakota but have lived and worked in Minnesota since 1984 in a suburb of Minneapolis. The first 10 years of my career was spent as a full time employee, first with the US Geological Survey in the field of remote sensing, followed by work with start up companies in the field of diagnostic medical imaging and machine vision. Since then I have been working as a contract software engineer for a variety of companies in many  industries including medical devices, 3D rapid prototyping, industrial printing, credit card production, and many more. Most of my 32 year career has been spent in the design and development of new products that involve multiple areas of engineering including electrical, mechanical, software engineering.

2- According to you, what is meaning of engineering?

Engineering is the application of specification, design, and implementation principles using best practices within the engineering discipline in which one is practicing. It also involves the use of processes that result in predictable and repeatable product development cycles. Engineering also involves compromise and trade offs dictated by time to market considerations, product and engineering costs, budget, availability of resources including people, equipment, and electronic components.

3- What is the reason of “Engineering” word behind of the “Software” ? Does it seriously related with engineering or it is just for trend?

The term “software engineering” refers to a disciplined systematic approach to the design and development of software. Software can be developed without the benefit of engineering processes and principles, but it tends to be less predictable and repeatable. The software engineering discipline is young compared to more well established engineering disciplines such as electrical and mechanical engineering, therefore it is less developed and mature. It will continue to improve over the course of time and is here to stay. I do not believe that it is a passing fad or trend.

4-Could you describe who is software engineer in projects ? Is he a person who knows uml and a any programming language or he is more than that?

A software engineer is trained in the practice of software engineering, either academically or through experience with teams of professional software engineers. It is best to have both the academic training and hands on experience. It may seem obvious that academic credentials are required but since the profession is relatively young, there are people who are practicing software engineers whose academic careers predate software engineering programs in colleges and universities.
 
Software engineers use a variety of computer programming and modeling languages including UML. Not all software engineers use UML. The choice of tools is determined by the set of languages and tools selected by the software team or mandated by the corporation. These choices may be determined by the preferences of the team as well as what is appropriate for the target environment. Budget considerations also play an important role since smaller companies cannot afford expensive tools.
 
5- What is the five things which are a software engineer must know?
  1. How to write good quality requirements
  2. How to create simple solutions to complex problems
  3. Where to find information for questions in the problem and solution space
  4. How to work as an effective team member
  5. The best technical solution may not be the best business solution

6- According to you, are there any difference between book’s world and real world in Software Engineering field?


Perhaps the biggest difference is that the reality of business constraints, team dynamics, and corporate culture may not match your expectations. You may know the “right” way to do something but are required to do it the “company” way. Keep in mind that some companies move slowly and have a lot invested in current technologies and practices. Sometimes the best you can do is show them a better way.
 
7- If we consider university is “inside” and work is “outside”. How works is going at outside and what would you suggest for students before go “outside”?

Take your time and find the best position that is available to you. Keep a good attitude and try to learn as much as possible. Be helpful, respectful, and eager to learn. Try to learn new technologies and keep current both on the job and off the job if possible. Software engineering can be a very creative and rewarding profession. Have fun!
 
Abdulla, please let me know if there is anything else you need. I wish you the best in your career in software engineering.
 
Paul
Reklamlar

4 comments on “Sorular ile Yazılım Mühendisliği 2/4 [Paul D. Paulson(Yurtdışında çalışan) ile röportaj]

  1. Geri bildirim: Sorular ile Yazılım Mühendisliği 3/4 [Özcan Acar ile röportaj] « Yazılım Mühendisliği

  2. Geri bildirim: Sorular ile Yazılım Mühendisliği 1/4 [Alan Blackwell(Kembiriç Üniversitesi) ile röportaj] « Yazılım Mühendisliği

  3. Geri bildirim: Sorular ile Yazılım Mühendisliği 4/4 [Cihat Altuntaş ile röportaj] « Yazılım Mühendisliği

  4. Geri bildirim: Kerem Vatandas – Software Researcher | Yazılım Mühendisliği Röportaj 2

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

Information

This entry was posted on Temmuz 15, 2012 by in Yazılım Mühendisliği and tagged , , .
%d blogcu bunu beğendi: