Makalah Nomor: KNSI-402
FAKTOR PERILAKU MANUSIA DALAM KOLABORASI PENGEMBANGAN PERANGKAT LUNAK Tien Fabrianti Kusumasari1 , Husni Sastramihardja3, Kridanto Surendro2 , Iping Supriana4 1
Program Studi Sistem Informasi, STMIK IM Bandung Teknik Informatika, STEI, Institut Teknologi Bandung 1
[email protected],
[email protected], 2
[email protected],4
[email protected] 2,3,4
Abstrak Keberhasilan proyek pengembangan perangkat lunak masih relatif kecil jika dibandingkan dengan keberhasilan proyek dibidang lain. Kualitas dan kecepatan proyek perangkat lunak sangat tergantung pada faktor sumberdaya manusia. Oleh karena itu pada makalah ini akan dibahas mengenai faktor manusia khusunya mengenai perilaku dalam kolaborasi pengembangan perangkat lunak sebagai kunci kesuksesan pengembangan proyek perangkat lunak. Tujuan makalah ini adalah menentukan properti perilaku manusia dalam melakukan kolaborasi pengembangan perangkat lunak. Properti perilaku tersebut akan di kaitkan dengan kualitas produk, dalam hal ini adalah kualitas intrinsik produk.Dengan merumuskan properti perilaku manusia tersebut diharapkan dapat digunakan untuk memilih anggota tim yang tepat ataupun untuk menentukan metode kolaborasi yang tepat untuk suatu tim yang sudah ditentukan sehingga dapat mencapai kesuksesan proyek. Adapaun metode yang digunakan dalam menentukan properti perilaku ini dengan berdasarkan framework perilaku Human Behavior Representation (HBR) yang diturunkan dalam metode kolaborasi dan proses pengembangan perangkat lunak. Hasil penelitan dalam makalah ini adalah pemetaan perilaku dalam kolaborasi perangkat lunak yang meliputi properti komunikasi, koordinasi, interaksi, kemampuan menggunakan tool, kondisi psikologi (motivasi dan kedekatan), serta pengalaman anggota tim. Berdasarkan uji coba dalam beberapa tim kecil disimpulkan bahwa peranserta anggota berpengalaman dalam proses perancangan dan kemampuan rata-rata anggota tim yang tinggi akan meberikan kualitas kode (kualitas instrinsik produk). Sebagai kelanjutan dari hasil penelitian ini, dapat dilakukan penelitian lanjutan dengan menentukan metode pengukuran properti perilaku dalam melakukan kolaborasi pengembangan perangkat lunak dengan lebih baik sehingga semua aspek perilaku dapat terukur secara kuantitatif.
Kata kunci : perilaku manusia, kolaborasi, pernagkat lunak, kolaborasi pengembangan perangkat lunak, faktor manusia.
1.
Pendahuluan
Pengembangan perangkat lunak dapat dinyatakan sebagai aktivitas penyelesaian persoalan secara kooperatif dan kolaborasi tim [29] dimana kesuksesannya tergantung pada akuisisi pengetahuan, pertukaran dan integrasi informasi, dan meminimalisasi kegagalan komunikasi [2]. Kolaborasi atau collaboration berasal dari bahasa latin yaitu collaborare yang berarti bekerja bersama atau kerja sama. Kolaborasi merupakan proses kerjasama untuk mencapai tujuan bersama yang dilakukan oleh beberapa individu, organisasi, atau
organism [11]. Kolaborasi terjadi dalam hubungan formal dalam sebuah sistem. Untuk menciptakan sistem kolaborasi diperlukan komunikasi, framing and authenticity, empati dan solidaritas, fairness dan moralitas, sistem reward dan punishment, reputation and reciprocity, serta perbedaan (Bencler, 2011). Sebuah sistem dapat disebut dengan sistem kolaborasi atau masyarakat kolaboratif jika mempunyai ciri-ciri sebagai berikut: memiliki tujuan bersama, terdapat suatu etika kontribusi, terdapat unsur saling ketergantungan antar anggota, dan terdapat infrastruktur kolaborasi [1].
Berdasarkan evaluasi dan analisis yang dilakukan oleh [16] menyatakan bahwa kolaborasi dalam pengambangan perangkat lunak berkaitan dengan metode dan tool yang mendukung komunikasi dan koordinasi antar stakeholder dalam pengembangan perangkat lunak yang terdistribusi.Metode yang dimaksud adalah metodologi dalam pengembangan perangkat lunak. Oleh karena itu, dalam 25 tahun terakhir ini, berbagai pendekatan dan metodologi dalam pengembangan perangkat lunak diungkapkan oleh berbagai peneliti dan praktisi TI, namun hanya sedikit yang bertahan sampai saat ini [2]. Agile development merupakan salah satu metodologi pengembangan perangkat lunak yang diyakinin paling handal dengan menawarkan 70% pengurangan dalam waktu dan biaya [2]. Metode tersebut menitik beratkan pada bakat, kemampuan, dan komunikasi individual, serta membentuk proses untuk orang-orang tertentu dan tim yang dikenal dengan istilah faktor manusia (people factor) [9,19]. Berkaitan dengan pernyataan mengenai people factor dalam pengembangan perangkat lunak, maka penelitian yang dilakkukan oleh [3], bahwa penugasan anggota tim berdasarkan kesesuaian kemampuan yang dimiliki dengan permintaan pekerjaan dapat memperbaiki proses pengembangan perangkat lunak. Penekanan pada sisi manusia juga tersirat dalam teori Socio Technical System (STS), yang memandang sebuah sistem terdiri dari 2 sub sistem, yaitu technical subsystem dan social subsystem [9]. Dalam hal ini STS merupakan gabungan antara teknologi dan faktor manusia, yang mana konsep tersebut mulai diimplementasikan dalam pengelolaan Sistem Informasi (SI) [8]. Berdasarkan literatur diatas maka dalam makalah ini akan menitikberatkan penelitian pada sisi manusia sebagai faktor dalam kolaborasi pengembangan perangkat lunak terutama mengenai perilaku manusia. Dalam makalah ini akan ditentukan properti perilaku manusia dalam melakukan kolaborasi pengembangan perangkat lunak. Metode pemetaan properti perilaku dalam proses kolaborasi pengembangan perangkat lunak didasarkan pada framework perilaku HBR. Pada framework HBR, perilaku dibagi menjadi empat dimensi, yaitu aksi/tindakan, keputusan, kondisi fisik/psikologis, dan perubahan perilaku yang dinamis [12]. Dimensidimensi perilaku tersebut kemudian di petakan ke properti perilaku dalam kolaborasi pengembangan perangkat lunak berdasarkan beberapa penelitian terdahulu. Adapun sistematika penulisan makalah ini terdiri dari enam bagian. Bagian pertama adalah pendahuluan, bagian kedua dan ketiga mengenai dasar teori dan penelitian terdahulu. Sedangkan bagian keempat pada makalah ini mengenai pemetaan properti perilaku dalam kolaborasi pengembangan perangkat lunak. Kemudian pada bagian kelima, dilanjutkan dengan implementasi
properti perilaku dalam beberapa proyek pengembangan perangkat lunak beserta analisisnya. Dan yang terakhir adalah kesimpulan dan saran. 2. Kolaborasi dalam Pengembangan Perangkat Lunak Pengembangan perangkat lunak merupakan proses yang komplek dengan tugas-tugas yang tidak dapat diprediksikan yang mana berbagai kelompok tertentu melakukan kolaborasi dalam penyelesaiannya [24]. Dalam proses pengembangan perangkat lunak, pihak pengembang melakukan berbagai aktifitas diantaranya membuat artefak perangkat lunak dengan berbagai tool dari kode program (source code) dan pemodelan hingga dokumentasi dan skenario pengujian, pengelolaan proyek dan koordinasi dengan bantuan berbagai tool, serta komunikasi antar anggota tim sepanjang waktu pengembangan [30]. Aktivitas atau proses pengembangan software menurut [22] terdiri dari problem definition, requirements development, construction planning, software architecture atau high-level design, detailed design, coding and debugging, unit testing, integration testing, integration, system testing, corrective maintenance. Proses pengembangan perangkat lunak tersebut di lakukan dengan berbagai pendekatan dan metodologi dalam upaya meningkatkan kesuksesan proyek pengembangan. Beberapa peneliti mengungkapkan berbagai pendekatan dalam proses pembuatan pernagkat lunak. Namun menurut [28] berbagai pendekatan tersebut mempunyai proses umum yang sama, hanya penekanan dan aliran prosesnya saja yang membedakan dari masingmasing pendekatan pengembangan perangkat lunak tersebut. Berdasarkan berbagai metodologi pengembangan perangkat lunak dan praktek-praktek pembuatan perangkat lunak, penulis melakukan klasifikasi mengenai cara-cara atau metode dalam berkolaborasi dalam proses pengembangan perangkat lunak. Cara / metode berkolaborasi dalam proses pengembangan perangkat lunak dilihat dari pelaku kolaborasi, cara berkomunikasi, cara/metode koordinasi, dan software tool yang mendukung proses komunikasi dan koordinasi ( ). Klasifikasi tersebut berdasarkan penelitian yang dilakukan oleh [14,20,26] dan berdasarkan web site dari pengembangan perangkat lunak di kalangan open source.
Tabel 19 Metode Kolaborasi dalam Pengembangan perangkat Lunak
3.
Fase/P roses
Require ment
Aktor
Develop er-user
Komu nikasi
Face to face Via media • Wawan cara • Diskusi • meetin g • Negosi asi (Win win spiral mode) • Observ asi user • Mailin glist • Issue trackin g softwar • Feature request • Ema il • Tele pon • Messeg e • Video confer enc • Wik i • Web site • Gro upw are
Perilaku manusia merupakan reaksi purposive manusia terhadap situasi tertentu yang bermakna [12]. Perilaku manusia mempunyai tiga komponen yang saling mempengaruhi, yaitu kognitif, psychomotor, dan socio-affective [12]. Tiga pendekatan utama dalam perilaku manusia adalah manusia (person), lingkungan, dan waktu [18]. [12] mengusulkan sebuah framework “Human Behavior Representation (HBR)” yang teridiri dari empat elemen perilaku yang disebut metal function, yaitu aksi/tindakan, keputusan, kondisi fisik/psikologis, dan perubahan perilaku yang dinamis. Aksi atau tindakan merupakan perilaku manusia yang tampak, yang terdiri dari interaksi dengan objek nyata atau lingkungan (terwujut dalam skill/kemampuan), interaksi secara simbolik (komunikasi), dan interaksi sosial. Elemen keputusan merupakan perilaku yang tidak tampak, terdiri dari kepedulian terhadap situasi, kemampuan mengumpulkan dan memproses informasi, schemata (kemampuan dan pengetahuan), dan keputusan untuk bertindak. Kondisi fisik atau psikologis merupakan keadaan secara fisik dan mental seseorang (umur, nilai-nilai, emosi, motif, stress, kewaspadaan). Sedangkan perubahan perilaku dinamik meliputi pembelajaran dan instruksi, pengalaman trauma, ketahanan terhadap stress. Penelitian yang dilakukan oleh [17] menyatakan bahwa elemen perilaku sosial terdiri dari aktivitas, interaksi, dan sentiment. Dalam tim pengembangan perangkat lunak, [17] mengukur aktivitas dengan kuantitas pekerjaan, interaksi dengan frekuensi dan intensitas, sedangkan sentimen (emosi, motivasi, dan attitude seseorang) yang tidak bisa diukur secara langsung, tetapi dicerminkan melalui pengaruh interaksi dan ativitas. Dengan demikian maka dibangun kualitas kerja tim dalam pengembangan perangkat lunak ke dalam komunikasi, koordinasi, keseimbangan kontribusi anggota, mutual support, usaha, dan kohesi. Hasil penelitian tersebut menyatakan bahwa terdapat korelasi yang positif antara teamwork quality (TQM) dengan kinerja tim. Namum korelasi ini berbeda-beda antara perspektif anggota itu sendiri, perspektif pemimpin tim, dan perspektif manajer. Berdasarkan [22] bahwa karakteristik programmer yang baik tidak superior, jujur secara intelektual, rasa keingintahuannya besar, cerdas (namun tidak harus menjadi supercerdas), komunikatif dan kooperatif, kreatif dan disiplin, kemalasan yang produktif (sehingga menciptakan tool). [22] juga menyatakan terdapat 4 (empat) level kompetensi programmer, yaitu begining, introductory, competency, dan leadership.
Metod e kolabo rasi
Teknol ogi
Modeli ng & Design Develo perdevelop er Develo peruser Face to face Via media • Disku si • Meeti ng
Model based collabo ration tool
Constr uction
Deploy ment
Develo perdevelop er
Develo peruser
Face to face Via media • Pair progra mmin g • formal inspec tions, • inform al techni cal review s • Code readin g
Face to face Via media • User accep tance test • traini ng • Webs ite
• softw are collab oratio n mana geme nt syste m • Scree n sharin g
Websit e
Perilaku Manusia dalam Kolaborasi Pengembangan Perangkat Lunak
Penelitian mengenai kognitif dalam pengembangan perangkat lunak banyak dilakukan pada proses kognitif, diantaranya model proses meta-kognitif dalam menyelesaikan permasalahan pemrograman [26]. [19] melakukan penelitian mengenai absorption, reorganization, denial dan expulsion pada level kognitif programmer (level rendah). Kemudian [19] juga melakukan penelitian empiris mengenai cognitive level dalam software maintenance pada keseluruhan level kognitif. Sedangkan dalam agile method, disebutkan bahwa salah satu faktor kesuksesan dalam penerapan metode ini adalah dengan adanya ahli dan pengembang yang berpengalaman [2]. [23] menyatakan bahwa kedekatan atara ahli bisnis dengan pengembang (programmer) (dengan ruang terpisah ataupun tidak pada satu lokasi) pada proyek perangkat lunak yang sama akan membantu komunikasi, kolaborasi, dan koordinasi didalam maupun diluar tim. 4.
Pemetaan Kolaborasi Lunak
Perilaku Manusia dalam Pengembangan Perangkat
Framework HBR menyatakan bahwa perilaku manusia terdiri dari empat dimensi aksi/tindakan, keputusan, kondisi fisik/psikologis, dan perubahan perilaku yang dinamis. Komunikasi merupakan salah satu kunci kesuksesan dalam pengembangan perangkat lunak, karena lima dari enam penyebab kegagalan proyek perangkat lunak berhubungan dengan komunikasi atara pengembang dengan stakeholder [7]. Dalam berkomunikasi diperlukan sebuah medium untuk mempertukarkan pesan. Medium komunikasi yang digunakan untuk mendukung aktivitas pengembangan perangkat lunak harus cukup memfasilitasi pengurangan ketidakpastian dan ketidakjelasan dalam pengembangan [5]. Berdasarkan konsep [4], metode yang paling efektif dalam mempertukarkan informasi dalam tim pengembang adalah komunikasi secara langsung (face to face conversation) serta koordinasi antara orang bisnis dengan pengembang setiap hari (bekerja bersama). Sedangkan penelitian yang dilakukan oleh [23] menyatakan bahwa lingkungan fisik dan keefektifan penggunaaan tool memegang peranan penting dalam komunikasi dan kolaborasi, pembatas ruangan dengan sebagian terbuat dari kaca akan membantu dalam berkonsentrasi terhadap pekerjaan namun juga memfasilitasi komunikasi, kolaborasi, dan koordinasi, kedekatan dengan ahli bisnis dalam ruang terpisah namun terhubung dalam satu proyek pengembangan perangkat lunak akan membantu inter dan intra komunikasi, kolaborasi dan koordinasi. Selain komunikasi, koordinasi, dan interaksi potensi seseorang juga berkontribusi dalam
pengembangan perangkat lunak. Potensi seseorang dapat dilihat dari intellectual intelligence dan emotional intelligence. Sedangkan kompetensi merupakan kemampuan, pengetahuan, kelakuan, karakteristik personal, dan motivasi yang berhubungan dengan kesuksesan dalam bekerja [15]. Kompetensi dapat digunakan untuk memperkirakan kinerja yang efektif, menghasilkan criteria seleksi yang valid, mengenali keterampilan. Menurut [22] terdapat 4 (empat) level kompetensi programmer, yaitu begining, introductory, competency, dan leadership. Sedangkan menurutk konsep agile development, tim pengembang menitikberatkan kompetensi individu sebagai faktor kritis dalam kesuksesan proyek [10]. Elemen kondisi fisik dan psikologis anggota tim dalam proses pengembangan perangkat lunak tidak dapat dilihat secara langsung, namun dampaknya cukup besar dalam proses kolaborasi. Kondisi fisik seseorang dapat dilihat dari usia dan gender. Sedangkan kondisi psikologis (seperti emosi, motivasi, dan attitude seseorang) tidak dapat diukur secara langsung, tetapi dicerminkan melalui pengaruh interaksi dan ativitas dalam proses pengembangan perangkat lunak [17]. Cerminan dari kondisi psikologis seorang pengembang dapat terlihat dari kontribusi, usaha, dan kepercayaan selama proses pengembangan. Dimensi terakhir dalam HBR adalah mengenai perubahan perilaku yang tercermin dalam pengalaman seseorang. Tim dengan programmer yang berpengelaman akan mempercepat waktu penembangan dari 2 sampai 10 kali dibandingkan dengan anggota tim yang lebih lambat [2]. Berdasarkan framework HBR dan penelitian terdahulu, maka pencerminan perilaku manusia dalam kolaborasi pengembangan perangkat lunak diklasifikasikan menjadi empat dimensi perilaku. Pencerminan dimensi perilaku aksi/tindakan dalam kolaborasi pengembangan perangkat lunak dapat berupa komunikasi, koordinasi, interaksi, dan kemampuan menggunakan tool. Elemen keputusan dapat terlihat dari kemampuan dan pengetahuan yang di miliki oleh seorang programmer (pengembang). Elemen kondisi fisik dan psikologis merupakan keadaan secara fisik dan mental programmer yang dicerminkan dalam usia, emosi, motivasi, dan attitude. Sedangkan perubahan perilaku yang dinamis tercermin dengan pengalaman programmer. Pemetaan properti perilaku manusia dalam proses pengembangan perangkat lunak dalam penelitian ini terangkum pada Tabel 20. Tabel 20 Pemeteaan Perilaku Manusia dalam Proses Pengembangan Perangkat Lunak Dimensi perilaku
Mapping Properti perilaku
Ukuran Properti Perilaku
Dimensi perilaku
Mapping Properti perilaku
Aktivitas
Penggunaan tool
Ukuran Properti Perilaku Lama penggunaan tool Jenis medium komunikasi
Komunikasi
Koordinasi
Keputusan
Interaksi Potensi Kompetensi
Fisik dan psikologis
Fisik Psikologis
Perubahan dinamik
pengalaman
5.
Jenis metode kolaborasi Jumlah Index prestasi Level kompetensi Unur, gender Jumlah kontribusi Lama mengenal dan bekerja sama lama (tahun) pengalaman
Strategi Tim Berbasis Perilaku Anggota dalam Kolaborasi Pengembangan Perangkat Lunak
Berdasarkan pemetaan yang telah dirumuskan pada bagian 4, maka dalam makalah ini akan diimplementasikan pada tiga kasus pengembangan perangkat lunak dalam skala kecil dalam durasi waktu antara 2-5 bulan. Metode kolaborasi yang digunakan dalam kasus pengembangan proyek berbasis konsep agile yang telah di sesuaikan dengan kondisi lingkungan dan tim pengembangan [20]. Secara garis besar model tersebut dapat diilustrsikan seperti pada Gambar 69. Communication/Requirement : Face to face communication Understanding comprehension Story card
Deployment : Communication : face to face Collaboration tool Expert : platform and infrastructure
Collaboration of Software Development
Construction : Collaboration tool Software configuration management tool Face to face and virtual communication Understanding comprehension Expert : programmer and tester Automatic testing
Planning : Face to face communication Collaboration tool Understanding comprehension Expert : domain system, software architecture
Modelling : User interface design tool Face to face communication Virtual communication : chat and email Coordination tool
Gambar 69 Model Kolaborasi Pengembangan Perangkat Lunak [20]
Dari ketiga kasus pengembangan proyek tersebut mempunyai beberapa kesamaan bahasa pemrograman, metode komunikasi, dan tool yang digunakan. Secara garis besar beberapa kesamaan tersebut adalah : a. Lingkungan sistem aplikasi : linux, php, apache, MySql b. Php Framework : Yii framework (dengan konsep MCV- Models, Controllers, Views) c. Media komunikasi face to face, messager, dan email d. Collaboration tool (task and assignment) : wiki (untuk proyek A dan proyek C, proyek B tidak menggunakan) e. Perancangan Graphical User Interface (GUI design) secara kolaboratif : gomockingbird f. SCM (Software Configuration Management) : tortoise Hg dengan online repository g. Alat pengukur kualitas intrinsik produk perangkat lunak : Sonar. Pengukuran mengenai kualitas produk untuk penelitian ini hanya dilakukan dari sisi internal produk, yaitu % rule of compliance dari source code aplikasi. Pengembangan aplikasi menggunakan model models, controllers, dan views (default dari Yii Framework). Berdasarkan hasil perbandingan % of compliance dari source code yang diproduksi oleh tim pengembang sendiri (models, controllers, dan views)yang terdapat pada Tabel 21 , maka urutan proyek dengan kualitas source code adalah proyek A, proyek B, dan proyek C. Tabel 21 Properti Perilaku dalam Tim Pengembang Properti Perilaku Rata-rata pengalaman penggunaan tool Rata-rata frekuansi komunikasi face to face (antar developer) Rata-rata frekuansi komunikasi face to face (developer client) Rata-rata Email dan chat (antar pengembang) Rata-rata Email dan
Proyek A 0-1 tahun (1 orang 1 tahun)
Proyek B 0,1 – 1 tahun
Proyek C 1-3 tahun
5 jam/hari
4 jam/hari
3 jam/hari Sebagian anggota
1 kali /mg
8jam/hari
1 kali /2mg
16 kali/hr
3 kali/hr
6 kali/hr
-
-
9 kali/hr
Properti Perilaku chat (clientpengembang) Rata-rata frekuensi kunjungan koordinasi per bulan (task & assignment) % kontribusi per bulan (coding)
Rata-rata IPK anggota Rata-rta umur Gender (% laki-laki ) Saling kenal (pernah bekerja sama) Kontribusi anggota % anggota berpengalama n (> 1th) dari total anggota % anggota berpengalama n (>5 th) dari total anggota % business expert dari total anggota % keterlibatan experience software architect dalam design aplikasi Total LOC Automatic testing (LOC) % rule of compliance (total) % rule of compliance (models) / LOC % rule of compliance (controllers) /LOC % rule of
Proyek A
Proyek B
Proyek C
55 kali , 22 kali/bln
Tanpa tool
106 kali, 21 kali/bln
28%,40% , 23%,9%
13%,55% , 31%
3,5
3,2
32%,21% , 15%,14% , 13%,4% 3,2
25 67%
29 60%
28 86%
Ya
Ya
Ya
40%
80%
100%
20%
25%
30%
20%
-
-
100%
-
-
22 954 6422
11 899 -
15 281 -
19
21
22
64,8% dari 7056 LOC
80,3% dari 2483
53,1% dari 7424
48,4% dari 5535 LOC
41,1% dari 5970
47,5% dari 6628
0%
0%
0%
Properti Proyek Proyek Proyek Perilaku A B C compliance (views) Lama proyek 3 3 5 (bulan) Jml anggota 5 5 6 Hasil perbandingan proyek yang telah dilakukan menunjukkan bahwa metode komunikasi face to face yang dikombinasi dengan komunikasi virtual memberikan hasil kualitas kode yang lebih baik dari pada komunikas face to face murni maupun virtual. Hal tersebut sesuai dengan penelitian yang dilakukan oleh [25], bahwa kelompok dengan kombinasi komunikasi (face to face dengan virtual) akan mencapai level yang lebih tinggi dalam pengembangan dari pada tim virtual. Kemampuan (potensi) rata-rata anggota yang diukur dengan Index Prestasi Kumulatif (IPK) memberikan dampak yang cukup besar dalam hal kemampuan untuk mempelajari sesuatu yang baru. Hal tersebut terbukti pada proyek A dimana hanya dengan 20% (satu orang software architect) anggota berpengalaman baik dalam pembuatan perangkat lunak maupun penggunaan tool memberikan kualitas kode yang lebih baik. Sedangkan lebih banyak anggota yang berpengalaman namun tidak ada keterlibatan software architect yang berpengalaman dalam merancang aplikasi tidak dapat meningkatkan kualitas kode (produk). Kondisi fisik (usia dan gender) tidak terlihat berkontribusi dalam kolaborasi dan kualitas produk. Perhitungan kontribusi dalam pembuatan program (coding) dihitung secara sederhana berdasarkan jumlah commit dalam SCM tool. Dari hasil observasi proyekA, B, dan C kontirbusi anggota (programmer) tidak tersebar secara merata, hanya 1 sampai 2 orang yang berkontribusi penuh dalam pembuatan kode program. Hal ini berkaitan dengan motivasi dan kecepatan anggota dalam menyelesaikan sebuah penugasan. Frekuensi koordinasi yang di ungkapkan dalam frekuensi kunjungan dalam sebuah coordination tool (task and assignment) tidak memberikan hasil akhir terhadap kualitas produk. Hal tersebut dimungkinkan kerena kedekatan antar anggota tim dalam masing-masing proyek sama, yang terlihat dalam semua proyek anggota tim saling mengenal dan pernah bekerja sama sebelum tim tersebut dibentuk. Aplikasi perangkat lunak yang dirancang oleh ahli yang berpengalaman (software architect) akan mudah dalam hal implementasi automatic testing. Proyek A merupakan satu-satunya proyek yang mengimplementasikan automatic testing dengan waktu proyek yang telah ditentukan. 6.
Kesimpulan dan Saran
Hasil penelitian dapat disimpulkan bahwa kombinasi kemampuan rata-rata anggota tim (ratarata IPK = 3,5), keberadaan software architect yang berpengalaman dan business expert dalam suatu tim (minimal 1 orang dalam satu tim kecil) akan memberikan dampak terhadap kualitas kode yang lebih baik (rata-rata rule of compliance dari semua bagian 57,6%). Kedekatan antar anggota tim (pernah bekerja sama sebelumnya) akan menentukan kesuksesan dalam melakukan kolaborasi dalam pengembangan perkembangan perangkat lunak. Pada penelitian ini, pengukuran properti perilaku dilakukan secara sederhana dan belum merepresentasikan keseluruhan aspek dari properti perilaku manusia. Dengan demikian untuk penelitian berikutnya dapat ditentukan metode pengukuran properti perilaku dalam melakukan kolaborasi pengembangan perangkat lunak dengan lebih baik sehingga semua aspek perilaku dapat terukur. Selain itu dapat menggunakan open source community untuk menyempurnakan model perilaku dalam melakukan kolaborasi pengembangan perangkat lunak. Daftar Pustaka: [1]. Abele, J. (2011) : Bringing Minds Togather, Harvard Business Review, JuliAgustus 2011, 86-93. [2]. Abrahamsson, P., 2007, ITEA homepage on Innovation Report modeling, ww.itea2.org/project/result/download/resul t/5583. [3]. Acuǹa, S.T, dan Juristo,N., 2004, Assigning people to roles in software projects, Softw. Pract. Exper, vol.34, p.675–696. [4]. Agile Manifesto, 2011, Agile Alliance website, http://www.agilealliance.org/thealliance/the-agile-manifesto/the-twelveprinciples-of-agile-software/ [5]. Andres, H. P., 2002, A comparison of face-to-face and virtual software development team, Team Performance Management, vol. 8, pp. 39–48, No. 1/2. [6]. Bishop, M., 2009, Chaos Report Worse Project Failure Rate in Decade, irise homepage on irise blog, http://www.irise.com/blog/index.php/2009 /06/08/2009-standish-group-chaos-reportworst-project-failure-rate-in-a-decade/ [7]. Boehm, B., 2002, Six Reason for Software Project Failure, IEEE Software on Slideshare homepage, http://www.slideshare.net/bstaud/sixreasons-for-software-project-failurepresentation.
[8]. Bostrom, R. P., & Heinen, J. S., 1977, MIS problems and failures: A sociotechnical perspective, MIS Quarterly, 1 (3). [9]. Cartelli, A., 2007, Socio-Technical Theory and Knowledge Construction: Towards New Pedagogical Paradigms?, Issues in Informing Science and Information Technology, vol.4, 1-14. [10]. Cockburn, A. dan Highsmith, J., 2001, Agile Software Development : The People Factor, Computer, IEEE Magazine, Vol.34, p 131-133. [11]. DiMaio, P. (2008) : Collaboration in Organisations: Theories, Tools, Principles, and Practices, IEEE/Dest Digital Ecosystems Tutorial, Pisanulok, Thailand, 28 Februari 2008, http://www.ieeedest.curtin.edu.au/2008/slides/Paola.pdf. Download (diturunkan/diunduh) pada 4 Agustus 2011. [12]. Dompke, U., 2001, Human Behavior Representation : Definition, Presentasi pada RTO SAS Lecture Series on Simulation of and for Military Decision Making, II-1 –II-12. [13]. Faraj, S. dan Sambamurthy, V., 2006, Leadership of Information Systems Development Projects, IEEE Transaction on Engineering Management, Vol. 53, No. 2, 238-249. [14]. Fugetta, A., 2000, Software Process : a Roadmap, ICSE '00 Proceedings of the Conference on The Future of Software Engineering, p.25-34, New York, ACM. [15]. Gangani, N. McLean,D.N. dan Braden, N.A., 2006, Compatancd-Based Human Resource Development Strategy, Performance Improvement Quarterly, 19(1). p 127-140. [16]. Hildenbrand, T., Rothlauf, F., Geisser, M., Heinzl, A. dan Kude, T., 2008, Approach to Collaborative Software Development, International Conference on Complex, Intelligent and Software Intensive Systems, p.523-528. [17]. Hoegl, M. dan Gemuenden, G.H., 2010, Teamwork Quality and the Success o Innovative Projects : A Theoritical Concept and Empirical Evidence, Organization Science, Vol.12, No.4, 435449. [18]. Hutchison, E.D., 2007, Dimension of Human Behavior : Person and Environment, edisi 4, SAGE Publications, chapter 1, 3-35.
[19]. Kelly, T. dan Buckley, J., 2009, An In-Vivo Study of the Cognitive Levels Employed by Programmers During Software Maintenance, ICPC '09. IEEE 17th International Conference [20]. Kusumasari, T.F., Supriana, I., Sastramiharja, H., dan Surendro, K., 2011, Collaboration Model of Software Developemnt, Electrical Engineering and Informatics (ICEEI), International Conference. [21]. Lalsing, V., Kishnah, S., dan Pudaruth, S., 2012, People Factors in Agile Software Development and Project Management, International Journal of Software Engineering & Applications (IJSEA), Vol.3, No.1. [22]. McConnel, S.C., 2004, Code Complete : A Practical Handbook of Software Construction, Edisi 2, Microsoft Press. [23]. Mishra, D. dan Mishra, A., 2009, Effective communication, collaboration, and coordination in eXtreme Programming: human-centric perspective in a small organization, Human Factors and Ergonomics in Manufacturing, Vol. 19, pp. 438–456, Wiley InterScience. [24]. Na, K.S., Li, X., Simson, J.T.O. dan Kim, K.Y., 2004, Uncertainty profile and software project performance : A cross-national comparation, The Journa of system and software, vol.70, 155-163. [25]. Ocker, R. J., 2001, The relationship between interaction, group development, and outcome : a study of virtual communication, Proc.IEEE HICSS’01, p. 10. [26]. Parham, J.R, 2009, A Cognitive Model For Problem Solving in Computer Science, Clemson, Computer Science of Clemson University Disertation. [27]. Phuwanartnurak, A.J., 2009, Interdisciplinary Collaboration through Wikis in Software Development, Vancouver, Wikis4SE’09. [28]. Pressman, R., 2010, Software Engineering (a practitioner’s approach), 7th ed., Singapore: Mc Graw Hill International. [29]. Saeki, M., 1995, Communication, Collaboration, and Cooperation in Software Development – How Should We Support Group Work in Software Development ?, Proceedings of Software Engineering Conference Asia Pacific, p.12-20. [30]. Treude, C. dan Storey, M. A., 2010, Work Item Tagging:
Communicating Concerns in Collaborative Software Development, IEEEtransaction homepage, http://csdl.computer.org/dl/trans/ts/5555/0 1/tts2010990059.pdf.