Erkal Aslankara Server, Storage, Virtualization, Security…

12Nis/101

Problem çözmeye bilimsel bir bakış ve bilişimde problem çözme yöntemleri

Tarih boyunca insan oğlu her sahada problemlerle karşılaşmış ve bunları çözmek için çeşitli yöntemler geliştirmiştir. Problem çözme konusu ilk insandan günümüze kadar sürekli var olan bir konudur. Tarih boyunca her zaman dilimi, her çevre faktörü ve hatta insanın yaşı, cinsiyeti, mesleği, görüşleri, inançları gibi birçok konu insanın değişik problemlerle karşılaşmasında neden olmuştur. Bir kısım toplum bilimciler “kültür” kavramını, “toplumların problemleri çözme şekilleri” olarak tanımlamışlardır. Son birkaç yüzyıldır psikoloji bilimi problem çözme ile ilgili daha somut araştırmalar yapmakta ve yöntemler geliştirmeye çalışmaktadır. Biz bu yazımızda bazı ünlü problem çözme yöntemleri üzerinde duracağız ve bu yöntemleri bilişim ile ilişkilendirmeye çalışacağız. İşi bilişim olan herkesin göz atması gereken bir yazı olacağını düşünüyorum.

Problem çözme konusuna başlamadan önce cevaplanması gereken soru şu olmalıdır. Problem nedir? Problemi bir çok düşünür kendi tecrübelerine göre yorumlamış, çeşitli tanımlar yapmıştır. Fakat bizim işimiz bilişim olduğu için ben bilişime uygun bir tanıma yer vermek istiyorum. Problem; amaçları zedeleyen, bozan, istenilen şartlarda ürün yada hizmet sunumunu engelleyen, ürün yada hizmetin birbiriyle tutarlı, uyumlu olmasını önleyen olaylara denir. Yani hakkında araştırma yapılması gereken, düşünülmesi gereken ve sonuç olarak da çözülmesi gereken durumdur.

Problem çözme konusunda genel bazı kabuller bulunmaktadır. Bunlardan ilki; problemi çözecek kişi problemin varlığını bilmeli ve kabul etmelidir. Örneğin; internetin yavaş olduğundan haberi olmayan yada yavaş olmadığını düşünen bir teknik personel, interneti hızlandırmak için bir çalışma yapmayacaktır. Problem çözümünde önem arzeden konulardan bir diğeri de “problemi anlama” aşamasıdır. Problemin anlanması demek  problemi doğuran nedenlerin araştırılması, problemden etkilenenlerin araştırılması, problemin sınıflandırılması, olası çözüm yollarının belirlenmesi gibi bir çok alt başlıkta incelenebilir. Sonraki aşama ise olası yöntemlerin probleme uygulanarak çözüme ulaşılmaya çalışmaktır. Çözüm bulunduktan sonra da gözlem aşaması vardır ki bu süreç çözümün verimliliğinin test edilmesi anlamını taşır.

Problem çözme sürecinin aşamalarını çeşitli şekillerde tasnif edenler olmuştur. Bunlardan kabul gören ve yine bilişim sektörüne uygun olan birkaç tanesi söyledir.

Herbert Simon Yöntemi

  • Problemlerin tanımlanması
  • Problemlerle ilgili verilerin toplanması
  • Probleme uygun olası çözüm yollarının sıralanması
  • Olası çözümlerin probleme uygulanması
  • Problem için en uygun olası çözümün seçimi
  • Çözüm sürecinin uygulanması

D'Zurilla & Goldfried Yöntemi

  • Genel yaklaşım
  • Problemin tanımlanması
  • Seçeneklerin yaratılması
  • Karar verme
  • Değerlendirme

Feynman Yöntemi

  • Problemi kağıda dök
  • Üzerinde sıkı çalış,düşün
  • Çözümü kağıda dök

...ve daha birçoğu. Problemin çeşidine göre uygun bir yöntem seçilerek işe başlanabilir.

Zaman içinde bilim adamları araştırmalarının sonucu olarak problem çözme konusunda bazı yöntemler geliştirmişlerdir. Bizim burada tartışacaklarımızdan çok daha fazla sayıda yöntem bulunmaktadır. Makalenin başlığındaki amaca hizmet edec ek şekilde, burada bazılarına yer vermek ve temel niteniklerini açıklamak istiyorum. Burada göreceksiniz ki günlük hayatımızda zaten aşağıda geçen yöntemlerden bir çoğunu aktif olarak kullanmaktayız. Zaten bu makaledeki amacımız bu yöntemler konusunda farkındalığı arttıratak doğru biçimde kullanılmalarını sağlamaktır.

Research(Araştırma); Çözüm hakkında hali hazırda var olan fikir ve yöntemleri araştırmak ve bunların uygulanabilirliğini tespit etmek demektir.

Brainstorming(Beyin Fırtınası); Problemi çözmek amacıyla toplanmış bir grubun, doğru çözümünü bulmak için bireylerin sağladığı çözüm önerileri üzerinde tartışmaları ve önerileri birleştirerek yada bir tanesini seçecek optimum çözüme ulaşmaları demektir.

Analogy(Örnekseme); Daha önce benzer problemleri çözmek için uygulanmış çözümlerin aktif probleme uygulanması demektir.

Divide and conquer(Böl ve yönet); Problemi çözülmesi kolay alt parçalara bölerek çözümlemeye çalışmaktır.

Lateral thinking(Yaratıcı düşünme); Problemi eldeki verilerin dışında kalan alanlarını da göz önünde bulunduracak şekilde etraflıca ele alma yöntemidir.

Means-ends analysis; Sizi her adımda problemin asıl çözümüne yaklaştıracak alt çözüm aşamalarının uygulanması demektir.

Reduction; Problemi, zaten çözümü mevcut bir başka probleme dönüştürmeye çalışmaktır.

Trial-and-error(Deneme yanılma); Doğru olanı buluncaya kadar olası çözümleri sırayla uygulamak demektir.

Root cause analysis(Ana neden analizi); Problemin oluşmasındaki temel sebebi bulmaya çalışmaktır. Ana nedeni bulmak için de kullanılan birçok yöntem vardır. Aşağıda bunlara da değineceğim.

Bu başlıkları sıraladıktan sonra dönüp bir bakacak olursak, adlarını bilelim yada bilmeyelim bilişim sektöründe en sık kullandığımız yöntemler olduğunu görmekteyiz. Tabiki bu başlıkların her biri ayrı bir makale konusu olacak kadar uzun incelenebilir. İlerde belki bu konular hakkında da bişeyler yazmaya çalışırım fakat her bir bilişim uzmanının bu konular hakkında fikir sahibi olmasının, onun problem çözme kalitesini arttıracağı bir gerçektir.

Root cause alalysis konusu ise üzerinde önemle durulması gereken bir konudur. Özellikle bizim sektörümüzde, “solution” ile “workaround” kavramları genellikle birbirine karıştırılır.

  • Solution; Problemin, onu doğuran nedenlerin ortadan kaldırılması yöntemi ile çözülmesidir.
  • Workaround; Problemin doğurduğu olumsuz sonuçların ortadan kaldılması yada geçici çözüm üretilmesi demektir.

Eğer ana nedeni bulup ortadan kaldırmazsak problem tekrar ortaya çıkacaktır. Problem çözmede ana amaç yukarda “solution” tanımında verilmiştir. Root cause analysis ile ilgili de bir çok yöntem vardır ve çeşitli problemlerin çözümü ile ilgili bir çok yöntem kullanılmaktadır. Bunlarda sadece 2 tanesine dikkat çekmek istiyorum.

RPR (Rapid Problem Resolution); Özellikle bilişim problemlerinin çözümünde kullanılabilecek bir yöntemdir. ITIL v3 içinde Problem management process altında bir alt proses olarak kabul edilmiştir. Detaylı bilgi için British Computer Society’nin hazırladığı sunuma bakılabilir.

5 Whys Method; Problemin temelini araştırırken problemin ortaya çıkardığı sonuca “Neden?” sorusunu sorarak ana nedene yaklaşma esasına dayanır. 5 kere olması mecburi değildir. Sonuca ulaşana dek tekrarlanır. 3 aşamada özetlenebilir;

  1. Problemi tanımla
  2. Sebebi analiz et
  3. En iyi çözümü seç

Basit bir örnekle açıklamak gerekirse;

Problem : Kullanıcı yazıcıdan çıktı alamıyor.

Analiz:

  • Neden, kullanıcı yazıcıdan çıktı alamıyor? – Yazıcının alarm lambası yanıyor.
  • Neden, yazıcının alarm lambası yanıyor? – Yazıcının içinde kağıt sıkışmış.
  • Neden, yazıcının içinde kağıt sıkışmış? – Yazıcının çalışan aksamı çok kirli.
  • Neden, yazıcının çalışan aksamı çok kirli? – Yazınıcın bakımı tavsiye edilen periyotlarda yapılmamış. (ana neden!)

Çözüm: Yazıcıyı bakıma göndermek ve bundan sonraki bakım zamanlarının takibi için bir personeli görevlendirmek.

İnternet üzerinde bu yöntem ile ilgili birçok kaynak ve örnek bulmak mümkün. Örneğin Titanic gemi kazası hakkında yapılmış bir analizi buradan okuyabilirsiniz.

Reasoning Kavramı:

Son olarak da problem çözmede Reasoning kavramından bahsetmeye çaşılacağım. Reasoning kelime anlamı olarak muhakeme yeteneği, mantık anlamlarına gelmektedir. Problem çözmede önemli hususlardan biri de eldeki doneleri muhakeme ederek bir sonraki aşamaya geçme, çözüme yaklaşmaya çalışmaktır. Reasoning de kendi içinde çok geniş bir alt başlık olmasına rağmen ben sadece bilişim sektörüyle ilgili olarak Logical Reasoning konusunda birşeyler yazmak istiyorum.  Yani mantıksal muhakeme... Problemi çözerken elimizdeki bilgileri kullanarak çözüme ilerlemek için sürekli mantıksal muhakemeler yapmamız gerekmektedir. Bunları sınıflandıracak olursak;

Deduction(Tümdengelim); “Bütün için doğru olan, parçaları için de doğrudur” ilkesiyle karar vermektir. Örneğin;

  • Yağmur yağınca çimler ıslanır
  • Yağmur yağıyor
  • Demek ki çimler ıslak!

Induction(Tümevarım); Problemi parçadan bütüne doğru anlama çabasıdır. Örneğin;

  • Dün yağmur yağdı ve çimler ıslandı
  • Bugün yağmur yağdı ve çimler ıslandı
  • Demek ki ne zaman yağmur yağarsa yağsın çimler ıslanacak

Abduction; Tüme varım ve tümden gelim yöntemlerinin girdilerini kullanarak çözüme ulaşmaya çalışmak demektir. Örneğin;

  • Yağmur yağınca çimler ıslanır
  • Yerler ıslak
  • Demek ki yağmur yağmış olabilir.

Görüldüğü gibi bu üç yöntem de adlarını bilelim yada bilmeyelim günlük hayatta girdileri muhakeme ederken kullandığımız yöntemlerdir. Duruma göre en uygun olanını zaten beynimiz muhakeme anında bizim için seçmektedir. Bu konularda detaylı bilgi isteyenler için internet üzerinde bolca kaynak vardır.

Sonuç olarak bu yazıda geçen yöntemleri ve sistemleri günlük hayatta doğru bir şekilde kullanmak, işi çoğu zaman  problem çözmek olan biz bilişim çalışanlarının başarımını arttıracaktır. Problem çözme yeteneği bazı insanlarda diğerlerine nazaran daha fazla olsa da genel olarak şunu söyleyebiliriz ki; problem çözme öğrenilebilir bir sistemdir. Bu konuda kendimizi geliştirmek için çalışmak demek kendimize ve mesleğimize yatırım yapmak demektir. Bu yeteneğimizi geliştirmek için işe bu konuda araştırma yaparak ve okuyarak başlayabiliriz. Eğer zaten ilgilenmiyorsanız programlama ile ilgilenmek bir bilişim çalışanı olarak bu özelliğimizi geliştirmek için en ideal yöntemlerden birtanesidir. Umarım faydalı bir yazı olmuştur.

Erkal Aslankara

Kaynaklar: Google, Wikipedia

Yorumlar (1) Geri izlemeler (0)
  1. bu yeterli olmadı resimlerle falan gsterseniz olmazmı çok acil lazım


Leave a comment


× 4 = yirmi dört

Geri izleme yok.