©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 1 İnsan Kaynakları Yönetimi Sarı renkli arka planlı sayfalar bilgi amaçlıdır-sınavda sorulmayacak
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 2 Ana Konular l Yönetici ve insan etkeni l İnsan kaynakları açısından yönetici girişimleri l Sorun çözme l Grup Çalışması l Teknik personelin seçimi ve işe alınma sorunları l İnsan yeteneği olgunluk modeli- people capability maturity model (P-CMM) İnsan Yönetimi: Bireysel veya grup olarak çalışan insanların yönetimi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 3 Yöneticilik ve insan etkeni l İnsanlar kurumların en önemli servetleridir l Yöneticinin görevleri, genelde insanlara yönelik olmalıdır. Bunu anlamadıkça,yöneticilik başarısız olacaktır l Yazılım projeleri esasen kavramsal girişimdir. Kavramanın sınırlı olması, yazılım sürecini etkili biçimde sınırlar
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 4 Yönetici girişimleri l Problem çözümü (elinin altındaki insanlardan yararlanma) l Güdüleme (proje üzerinde çalışan insanlar) l Planlama (insanlar ne yapacaklar) l Değerlendirme (insanlar ne kadar hızlı çalışacak) l Denetim (insanların girişimleri) l Düzenleme (insanların çalışma yönü)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 5 Problem çözümü l Yönetici problemi kavramsallaştıra bilmelidir; ayrıntıları ile değil soyut seviyede ifade etmeyi başarmalıdır; l Yönetici problemi parçalayarak çözmeyi başarmalıdır l Yönetici problemi anlamsal ifade etmeyi başarmalıdır
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 6 Düşünme etkenleri l İnsanların hepsi aynı yolla düşünmezler. Fakat her kesin düşünmesi aşağıdaki etkenlere bağlıdır: Bellek yapısı Bilginin sunumu Güdüleme etkisi l Bu etkenleri anlamakla, onların proje personeline etkilerini anlamak mümkündür
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 7 Bellek yapısı
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 8 Bellek Yapısı-devamı Kısa süreli bellek l Hızlı erişim, sınırlı yetenek l 5-7 bilgi birimi l Kelimelerin (parçaların) boyutu l Çabuk bozulma Çalışma belleği l Daha çok yetenek, daha uzun erişim zamanı l Kısa süreli bellekten ve uzun süreli bellekten gelen bilgileri bütünleştirmek içindir l Nispeten hızlı bozulma Uzun süreli bellek l Yavaş erişim, çok büyük yetenek l Güvenilir olmayan bilgi arama mekanizması l Yavaş, ama sonlu bozulma zamanı- bilginin güçlendirilmesi gerekiyor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 9 Bilgi aktarımı l Sorunun çözümü, genelde kısa süreli ve çalışma bellekleri arasında bilgi aktarımını gerektirmektedir l Bu aktarım zamanı bilgi kaybola veya bozula bilir l Bilgi işlem, bilgilerin kısa bellekten uzun belleğe aktarımı sürecinde gerçekleşmektedir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 10 Kavramsallaştırma örneği- Sıralama algoritması (kaynak kod) l class BubbleSort { // data[] provides data to be sorted l private int data[] = { 17, 10, 8, 13, 15, 4, 6, 20, 15, 18 }; l private int ceilingIdx; // index of last sorted element private int currentIdx; l // index to current slot public void dataPrint() { // print array content System.out.print("daraPrint(): ceilingIdx = " + ceilingIdx + ", data = "); l for (int i = 0; i < data.length; i++) { System.out.print(data[i]); l // print every value in data[] if (i < data.length - 1) System.out.print(", "); }; l System.out.println(""); } public void sort() { System.out.println("BubbleSort.sort() entered"); l dataPrint(); ceilingIdx = -1; for ( ; ceilingIdx ceilingIdx + 1; currentIdx--) { System.out.println("Values " + data[currentIdx] + " and " + data[currentIdx - 1] + " are compared."); l if (data[currentIdx] < data[currentIdx - 1]) { // out of order? int temp = data[currentIdx]; data[currentIdx] = data[currentIdx - 1]; l // sawp values data[currentIdx - 1] = temp; System.out.println("Values " + data[currentIdx - 1] + " and " + data[currentIdx] + " were exchanged."); dataPrint(); l } else { // no, continue to move up for insertion point System.out.println("Values " + data[currentIdx - 1] + " and " + data[currentIdx] + " are right order."); dataPrint(); } } ceilingIdx++; // additional element got sorted dataPrint(); l System.out.println("Bubbling to slot " + ceilingIdx + " done."); l } System.out.println("sort() completed"); l } public static void main(String argv[]) { System.out.println("BubbleSort.main() entered"); l BubbleSort bubbleSort = new BubbleSort(); l bubbleSort.sort(); l System.out.println("main() completed"); } }
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 11 Problemin kavramsallaştırılmasına örnek: Sıralama algoritmasının kavramsal ifadesi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 12 Problemin anlamsal ifadesi: Bilgi modeli l Anlamsal bilgi - nesne sınıflarının ifadesi,örgüt yapısı… gibi kavramsal bilgiler l Bu bilgiler öğrenme ve deneyim yolu ile kazanılıyor l Sözdizimsel bilgi-bilginin sunum ayrıntıları hakkında bilgi – Java’da nesne nasıl gösteriliyor, hangi standart fonksiyonları kullanıla bilir, “=“ veya “:=“ simgelerinden hangisi kullanılmalıdır… l Anlamsal bilgi yapısal biçimde bellekte tutuluyor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 13 anlamsal bilgi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 14 Anlamsal bilgiler l Bilgi işlem kavramları – iterasyon, döngü,nesne …kavramları l Mesele (sorun) kavramları - algoritmik – özgü bir meseleni nasıl çözmeli l Yazılım geliştirme yeteneği, yeni bilgileri mevcut bilgisayar ve mesele bilgileri ile bütünleştirmek ve yaratıcı problem çözümlerini geliştirmek l Sorun çözme dile bağımlı değildir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 15 Bilgi edinme l Deneyim ve etkin öğrenme yolu ile anlamsal bilgi kazanılması l Sözdizimsel bilgi ezberleme gerektiriyor. l Yeni sözdizimsel bilgiler mevcut bilgileri engelleye bilir Deneyimli programcının, farklı programlama dillerinin sözdizimlerinin karıştırılması
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 16 Sorun çözme l Farklı türden (bilgisayar, görev, alan, kurum) olan bilgilerin bütünleşmesini gerektiriyor l Çözümün anlamsal modelinin geliştirilmesi ve sonra bu modelin denenmesi l Modelin programlama dilinde ifadesi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 17 Sorun Çözme: Sorunun parçalanması
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 18 İnsan ihtiyaçları hiyerarşisi Temel ihtiyaçlar Güvenlik ihtiyaçları saygı Kendini kanıtlaya bilme Sosyal ihtiyaçlar
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 19 Güdüleme l Yöneticinin önemli görevi, proje üzerinde çalışanları güdülemektir l Güdüleme karmaşık kavramdır. Güdüleme türlerini ihtiyaçlara göre belirlemek mümkündür: Temel ihtiyaçlar (gıda, barınak…) Personel ihtiyaçları (saygı,itibar…) Sosyal ihtiyaçlar (grubun bir parçası gibi kabul edilmek)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 20 İnsanların güdülenmesi l Güdüleme ihtiyaçların sağlanmasına bağlıdır l Bilgisayar mühendisleri ve öğretmenler için psikoloji, güvenlik ve temel ihtiyaçların sağlanması varsayıla bilir l Sosyal, kaygı ve kendini ifade edebilme ihtiyaçları yöneticilik bakış açısından daha önemlidir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 21 İhtiyaçların sağlanması l Sosyal Toplumsal özgürlüğün sağlanması Resmi olmayan iletişimlere izin verilmesi l Saygı Başarıların takdiri ödüllendirme l Kendini ifade edebilme Öğrenme-insanlar her zaman daha çok öğrenmek ister Sorumluluk
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 22 Personel türleri l İhtiyaç türleri hiyerarşisi basit biçimde verilse de genelde çok daha karmaşıktır l Güdülemede farklı personel türleri de dikkate alınmalıdır: İşe yönelik Kendine yönelik Etkileşime yönelik
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 23 Personel türleri l İşe yönelik İşin yapılması için güdüleyici etken işin ta kendisidir l Kendine yönelik İş, bireysel amaçlara (zengin olmak, deneyim kazanmak, seyahat etmek…) ulaşmak için bir araçtır l Etkileşime yönelik Çalışma arkadaşlarının varlığı ve onlarla birlikte çalışmak etkileşime yönelik kişi güdüleyen önemli etkendir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 24 Güdülemenin dengelenmesi l Bireysel güdüleme her türden güdülemeyi içere bilir, fakat bir güdüleme türü her zaman hakimdir l Bir güdüleme türünden diğerine geçiş l İnsanlar yalnız personel etkenine göre değil, grubun ve kültürün bir parçası olarak da güdülenmelidirler
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 25 Grup çalışması l Yazılım projelendirme girişimi grup girişimidir Pek çok ciddi yazılım projelerinin bireysel çalışan personel tarafından geliştirilmesi mümkün olmaya bilir l Grup etkileşimi, grubun başarımının anahtar belirleyicisidir l Grup tertibinde (composition) çok esnek davranmak mümkün değil Yöneticiler, elleri altında olan insanlarla en iyisini yapmaya çalışmalıdırlar
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 26 Zaman paylaşımı
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 27 Grubun oluşturulması l Aynı motivasyonu paylaşan üyelerden grup oluşturmak çok zordur İşe yönelik – her kes kendi işini öne çekip yapmak ister Kendine yönelik – her kes ağa olmak ister Etkileşime yönelik- çok muhabbet, az iş l En etkili grup tüm türlerin dengeli katılımı ile oluşuyor l Dengeyi oluşturmak zor ola biliyor, çünkü, mühendislerin pek çoğu işe yöneliktir l Karar alma sürecine tüm üyelerin katılımı grubu etkiler
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 28 l Liderliğe saygı ile ulaşılır, makam veya unvanla değil… l Teknik ve yönetimsel liderlik l Demokratik liderlik, otokratik liderlikten daha etkilidir l Teknik yeteneğe dayalı meslekte yükselme yolu her zaman desteklenmelidir Grup önderliği
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 29 Grup bağlılığı l Bağlılığı yüksek gruplarda üyeler için grup, onun ayrı-ayrı bireylerinden daha önemlidir l Bağlılığı yüksek grupların artı yönleri: Grubun kalite standartları geliştiriliyor Grup üyelerinin yakın olması ile çekingenlik sonucu doğa bilecek bilgisizlik azalıyor Grubun tüm üyeleri biri-birinden öğreniyor ve diğerlerinin çalışmaları hakkında bilgi ediniyorlar Bencil olmayan programlamada, her bir üye diğerinin programının daha iyi olmasına çaba gösteriyor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 30 Bağlılığın geliştirilmesi l Bağlılığın oluşturulmasında, grup içinde örgütsel kültür, personel türleri gibi etkenlerin önemi büyüktür l Bağlılığı Sosyal etkinlikler Grup kimliğinin geliştirilmesi Bir mekanda çalışma gibi faaliyetler güçlendiriyor l Bilgi paylaşımı grubun tüm üyelerinin, kendilerini grubun bir parçası olarak hissetmelerini sağlamak için en basit yoldur
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 31 l Grup içinde bağlılık yüksek oldukça üyelerin gruba sadakati yükseler l ‘Grup düşüncesi teknik ve örgütsel yönlere bakmaksızın grubun korunmasıdır l Dış katılımcılar hesabına grubu güçlendirmekle, yönetici grup düşüncesinin önüne geçmelidir Grup sadakati
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 32 Grup iletişimi l İyi iletişim etkili grup çalışması için çok mühimdir l İş gereği karar oluşturma ve önceki kararların iyileştirilmesi için bilgi alış-verişinde bulunula bilir l İyi iletişim grup üyelerinin bir-birini anlamasına yardım etmekle, grup içi bağlılığı güçlendirir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 33 l Aynı türden olanlar Aynı personel türünden çok kişinin olması sorun yarada bilir l Farklı cinsler Yalnız erkeklerden (veya bayanlardan) oluşan gruplarda grup içi iletişim güçlü olmaya bilir l İletişim yolları Merkezleşmiş iletişimler etkili olmaya bilir Grup iletişimi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 34 Grup organizasyonu l Yazılım Projelerini geliştirme grubu nispeten küçük olmalıdır (< 8 üye) l Büyük proje çoklu küçük projelere bölünmelidir l Küçük ekipler gayri-resmi, demokratik yolla oluşturula bilir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 35 Grupların oluşturulması l Grup bir bütün olarak çalışır ve sistemi etkileyecek kararlar üzerinde uzlaşmaya varır l Grup lideri, grubun dışarı ile iletişimini sağlar l Görülecek işler grupta tartışılır ve grup üyeleri arasında, deneyimlerine ve yeteneklerine göre paylaştırılır l Bu yaklaşım, grubun tüm üyelerinin deneyimli ve yetenekli olduğu hallerde başarılı sonuçlar vere bilir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 36 Aşırı programlama grupları (Extreme programming groups) l Aşırı programlama grupların demokratik örgütlenmesine örnektir l Aşırı programlama gruplarında bazı ‘yönetici’ kararları grup üyelerine devrediliyor l Programcılar çiftler halinde çalışıyorlar ve yazdıkları kodlara göre ortak sorumluluk taşıyorlar
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 37 Personelin seçilmesi ve işe alınması l Projede çalışacak insanların seçilmesi başlıca yöneticilik görevlerindendir l İnsanların seçilmesi kararı genellikle aşağıdakiler esasında veriliyor: Aday tarafından sağlanan bilgi (onun özgeçmişi ve ya CV’si) Mülakat, görüşme yolu ile edinilen bilgi Adayı iyi tanıyan birileri tarafından tavsiye l Bazı şirketler psikoloji veya yetenek sınavları yapıyorlar Bu sınavların gerçekten yararlı olup olmadığı hakkında ortak fikir yoktur
Yazılım Projeleri için Personel seçme etkenleri EtkenlerAçıklaması Uygulama alanı üzere deneyimBaşarılı sistem geliştirmek için geliştirici uygulama alanını anlamalıdır Programlama dili deneyimiGenelde yeni dil öğrenmek için yeterli zamanın bulunmadığı kısa süreli projeler için önemlidir Eğitim altyapısıAdayın bilgisini ve öğrenme yeteneğini değerlendirmek için bir gösterge olarak kullanıla bilir.Bu etken, mühendisin projelerde deneyim kazanması ile önemsiz ola bilir İletişim yeteneğiProje personelinin diğer bir-birleriyle,yönetici ve mühendislerle sözel ve yazılı iletişim kura bilmesi çok önemli başarı göstergesidir Uyum sağlamaAdayın öğrenme yeteneğini değerlendirmek için önemli etkendir Hırs,istekProje personeli işi istekle yapmalı, yeni beceriler edinmek için çaba göstermelidir. Bu çok önemlidir Kişisel özelliklerAdayların diğer proje çalışanları ile kıyaslanması yapıla bilmelidir. Bazı türden insanlar yazılım mühendisliği için uygun olmaya bilir. Çok önemlidir.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 39 l Çalışma yerinin özelliklerinin bireysel verimliliğe önemli etkisi bulunmaktadır rahatlık Özellik,yalnızlık yararlılık l Sağlık ve güvenlik gerekçeleri dikkate alınmalıdır aydınlatma ısınma mobilya Çalışma yeri
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 40 l Her bir personel, çalışmasının kesilmeyeceği çalışma ortamı ister l İnsanlar doğal aydınlanması olan odalarda çalışmak ister l Bireyler çeşitli yollarla çalışma ortamlarını kendileri için daha uygun ortama dönüştürmeye çalışırlar Çevresel etkenler
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 41 Çalışma ortamı l İnsanların, müdahale olmadan çalışa bilmelerine olanak sağlayan özel çalışma alanları Personele bireysel çalışma odalarının tahsis edilmesi verimliliği yükseltir l Bununla birlikte, resmi ve gayri-resmi toplantıların yapılması için grup üyelerine ortak alanlar da gerekmektedir
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 42 Çalışma odaları-örnek Toplantı odası Ortak kullanılan belgeler Umumi kullanım alanı
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 43 İnsanın yetenek olgunluğu modeli l Yazılım projelerini geliştirme sürecine katılmış insanların gelişmesini yönetmek için çerçeve modeli l Modelin 5 aşaması Başlangıç. Önceden belirli yöntemlerle insan kaynaklarının yönetimi Yöntem geliştirme. Yeteneği yükseltmek için yöntemler geliştirilmesi Tanımlama Kurumda insan yöneticiliğinin standartlaştırılması Yöneticilik İnsan kaynakları yönetimi için hedeflerin belirlenmesi Optimalleştirme. Bireysel yeteneklerin ve işgücü motivasyonunun yükselmesi ile bağlı sürecin devam ettirilmesi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 44 İnsanın yetenek olgunluğu modelinin hedefleri l İşgücü yeteneğini yükseltmekle kurumsal yeteneğin iyileştirilmesi l Yazılım geliştirme yeteneğinin birkaç kişiye bağlı kalmamasının sağlanması l Çalışanlar için güdüleme yöntemlerinin geliştirilmesi ve gerçekleştirilmesi l Kritik bilgi sahiplerinin ve mesleğinde çok uzman olanların ihmal edilmemesi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 45 Önemli noktalar l Yönetici, insanlardan gerçekdışı isteklerde bulunmaması için insan etkenlerini anlamalıdır l Sorun çözümü, uzun süreli bellekten gelen bilgi ile kısa süreli bellekten gelen bilginin bütünleşmesiyle gerçekleşiyor l Personel seçimi; eğitim, alan bilgisi, uygunlaşma, personel türü gibi etkenleri içeriyor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 46 Önemli noktalar l Yazılım Projeleri Geliştirme Grubu küçük olmalı ve grup üyeleri arasında bağlılık olmalıdır l Grup iletişimi, görev özellikleri, grubun boyutu, yapısı ve grup içinde karşı cinslerin varlığı ile belirlenir l Çalışma ortamının verimliliğe etkisi çok büyüktür l İnsanın Yetenek Olgunluğu Modeli kurumdaki personelin yeteneğini yükseltmek için bir çerçevedir