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
2,3,4
Teknik Informatika, STEI, Institut Teknologi Bandung
1
tien_kusumasari@yahoo.com, 3husni@informatika.org, 2 endro@informatika.org,4 iping@informatika.org
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
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]. Dimensi-dimensi 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 masing-masing 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
Tabel 19 Metode Kolaborasi dalam Pengembangan
3. Perilaku Manusia dalam Kolaborasi
Pengembangan Perangkat Lunak
Perilaku manusia merupakan reaksi purposive
manusia terhadap situasi tertentu yang bermakna [12]. Perilaku manusia mempunyai tiga komponen yang saling mempengaruhi, yaitu kognitif, psycho-motor, 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,
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 Perilaku Manusia dalam
Kolaborasi Pengembangan Perangkat
Lunak
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
Dimensi
Aktivitas Penggunaan tool Lama
penggunaan tool
Komunikasi Jenis
medium komunikasi
Koordinasi Jenis metode
kolaborasi
Interaksi Jumlah
Keputusan Potensi
Kompetensi
Fisik Unur, gender
Psikologis Jumlah
kontribusi
pengalaman lama (tahun)
pengalaman
5. 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.
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
Face to face communication Understanding comprehension Story card
Modelling :
User interface design tool Face to face communication Virtual communication : chat and email
Coordination tool Planning :
Face to face communication Collaboration tool Understanding comprehension Expert : domain system, software architecture
Construction : Collaboration tool
Software configuration management tool
Face to face and virtual communication Understanding comprehension Expert : programmer and tester Automatic testing Deployment :
Communication : face to face
Properti bulan (task & assignment)
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.
Hasil penelitian dapat disimpulkan bahwa kombinasi kemampuan rata-rata anggota tim (rata-rata 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, Juli-Agustus 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/the- alliance/the-agile-manifesto/the-twelve-principles-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-report-worst-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/six- reasons-for-software-project-failure-presentation.
[8]. Bostrom, R. P., & Heinen, J. S., 1977, MIS problems and failures: A socio-technical 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.ieee-dest.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, 435-449.
[18]. Hutchison, E.D., 2007,
Dimension of Human Behavior : Person
and Environment, edisi 4, SAGE
[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,