-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path517.txt
4097 lines (2735 loc) · 167 KB
/
517.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Chapter 1 Introduction
1.1 Introduction
Project management is the discipline of planning, organizing, securing, managing, leading, and controlling resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end usually time-constrained and often constrained by funding or deliverables[1][2]. Software project management is the art and science of planning and leading software projects [3]. Software projects Management It’s a sub-discipline of project management in which software projects are planned, monitored and controlled. The Software development methodologies, approaches ,and researches which developed till now almost Interested in the SW project outcomes as a final product, even in development phases of the software project;discussed only the steps of analysis, design, implementation, and testing . There is no comprehensive study or methodology especially for managing technical people in the software projects; so in this research we will concentrate in human aspects in SW projects. The most significant success factor in any Software Project is the Human Resource; so managing, organizing, and utilizing technical human resources are very important issues for projects success. Researches continually show that companies have some difficulties for completing software projects on time and on budget[4]. In fact many projects are cancelled before completion or not totally implemented. Business environments these days are characterized by complexity, and acceleration of everything from communication to production methods. IT has been one of the major drivers of this complexity and acceleration. So, failures in software projects need to be analyzed in order to suggest solutions. The project team, suppliers, customers and the other stakeholders can all present a source of failure, but the most common source for project failure are rooted in the project management process itself. So, in our research we are looking forward to develop a framework for better management of the technical HR working in the software projects.
1.2 Motivations
• According to many published researches in software engineeringarea; the most significant success factor in software engineering projects is the human factor’, so the researcher will try to contribute in this area in order to help succession of software projects.
• Most software projects fail because HR problems such as: high turnover in staff and project team, correlating skills and tasks assignment, and workload distribution between team members.
• Required technical skills and competencies are too different from one project team and another. So the tasks and assignments allocation should be done in a right and optimal way so this leads to project success. The competences of the workforce have been nowadays recognized as strategic assets of paramount importance in the achievement of competitive advantage.
• The urgent need to better management of human aspects in software projects
1.3 Research Scope
This research focuses in project management specifically in software project management, and contributes some points and aspects in technical team management this research done for building a new framework which will solve some problems in area of technical team management in software projects management.
Figure 1.1: Research Scope
1.4 Problem Definition
1.4.1 General Problem Definition
• Recently with increasing the amount of researches and studiesin the software projects management, although the software development methodologies, approaches, and researches which developed till now only Interested in the Software project outcomes as a final product, even in development phases discussed only the steps of analysis, design, implementation, and testing, other phases of software project itself, so there is no enough interest in human perspectives; and there are a lot of human problems in software projects; which may the main causes of project failures.
1.4.2 Specific Problem Definition(research question)
How can we overcome some management problems related to human factor in software projects? These problems related to team selection, team evaluation, tasks allocations and distribution; how we can enhance the technical people management in SW Projects and overcome the mentioned problems?
1.5 Research Methodology & Structure
In this research we start to survey the area of software projects management; and concentrate in the problems related to human management, or team management, and then we have divided our thesis into two parts; practical and theoretical part.
Theoretical part:
Referencing to the problems related to team management we have introduce and develop a new framework to enhance team management, the framework boundaries are the software project life cycle we tried to study in deep all phases and stages of life cycle; because we know that all management activities extended cross the project life cycle model starting from project initiation to delivering and maintenance, and we proposed set of rules and recommendations in each phase; these rules absolutely help to enhance the team management and lead to project success, and then we have verified, and evaluated the proposed framework through a practical part which will described in the next section.
Practical part:
In order to evaluate the proposed framework; this done by a four cases studies in a real SW projects in Egypt.The case studies conclude that the more applying of the proposed framework, the more leading to project success.
Figure1.2 Research Methodology
CHAPTER 2
Literature Review
Outline
2.1. Introduction
2.2. Project Management
2.3. Software Development Phase
2.4. Information Systems Project Life Cycle
2.5. Team Management in Software projects
2.6. Project Management Knowledge Areas
2.7. Agile Software Development
2.8. Scrum Framework approach
2.9. Extreme Programming
2.10. Dynamic system development method
2.11. Feature driven development
2.12. Capability Maturity Model Integration CMM and CMMI
2.13. People Capability Maturity Model P-CMM
Chapter 2 Literature Review
2.1 Introduction
In this chapter we will introduce a review about project management, human management, and software development methodologies; during these sections we will discusses some related works to our research subject; like Agile Methodology, scrum framework, and other published studies and researches in the human management area. In this chapter we will explain all topics and definitions which related to our research. We notice that most of software development methodologies and approaches interested in the software project as a final product, and the processes related to the development and execution; and not give enough interest in a human management. So in the proposed framework will introduce a guide for human management which will help to lead to project success. So in the following chapter you will find most related works and literatures about the research subject.
2.2 Project Management
What’s a project?
Here are some of the project characteristics[5]:
• Projects are different from ordinary work; projects have a timeframe with a beginning and an end. Projects have to be planned, projects use resources and need a budget, Projects require evaluation – the criteria for evaluation need to be established from the beginning
• Projects have an outcome, which is not necessarily known at the outset the outcome is very often a “product” of some kind at the end of a project, decisions need to be taken about whether to use or institutionalize the outcome
• Projects involve people, Projects don’t just happen; they need to be planned. They usually come in addition to normal work or in a limited period where the project participants are released from their usual duties. They need to be completed within set deadlines and have limited budgets.
As the industry has matured, analysis of software project management failures has shown that the following are the most common causes of project failures[6]:
• Unrealistic or unarticulated project goals
• Inaccurate estimates of needed resources
• Badly defined system requirements
• Poor reporting of the project's status
• Unmanaged risks
• Poor communication among customers, developers, and users
• Use of immature technology
• Inability to handle the project's complexity
• Sloppy development practices
• Poor project management
• Stakeholder politics
• Commercial pressures
What is a Project Management? Project Management is a body of knowledge that many people spend their entire careers mastering.
Some of the basic steps towards ensuring that project work unfold smoothly and that desired results are achieved on time[5].
Software project management is the art and science of planning and leading software projects. Is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled[3].
Figure 2.1 Management Cycles [5]
2.3 Project Management Phases
Project Management Institute (PMI) defines project management as the application of knowledge, skills, tools and techniques to a broad range of activities in order to meet the requirements of a particular project [7]. Project management has three important factors time, cost and scope. This means the project must be within cost and should be delivered on time, within scope and it should meet the customer quality requirements.The process of directing and controlling a project from start to finish is divided into six basic phases. These phases maybe describes as follows[4]:
• Project Initiation:The initiation phase is the beginning of the project. In this phase, the project team will examine and determine the benefits of the project before work can start. During this phase, a decision making team will identify if the project can be completed. In addition, decisions are made concerning who is to carry out the project, which party will be involved and whether the project has an adequate base of support among those who are involved. Examples of this type of project proposal include business plans and grant applications.
• Project Definition:After the project plan has been approved, the project enters the definition phase. In this phase, the requirements that are associated with a project result are specified as clearly as possible. This involves identifying the expectations that all of the involved parties have with regard to the project result.
• Project Planning:The project plan and the project scope maybe put in writing , during this phase the team should priorities the project , calculate the budget ,and determined what resource are needed.
• Project Execution:Resources’ tasks are distributed and teams are informed of responsibilities. This is a good time to bring up important project related information. During this phase the team works to deliver the product, service or desired outcome.
• Project Monitoring & Control: During this phase the project managers will compare project status and progress to the actual plan, as resources perform the scheduled work. During this phase also the project managers may need to adjust schedules or do what is necessary to keep the project on track.
• Project closure:This phase includes the formal acceptance of the deliverables and disbanding of all the elements that were required to run the project.
2.4 Information Systems Project Life Cycle
2.1 Project planning:
Project planning is an aspect of Project Management, which comprises of various processes. The aim of these processes is to ensure that various Project tasks are well coordinated and they meet the various project objectives including timely completion of the project[8].
Project Planning is an aspect of Project Management that focuses a lot on Project Integration. The project plan reflects the current status of all project activities and is used to monitor and control the project.
The Project Planning tasks ensure that various elements of the Project are coordinated and therefore guide the project execution.
Project Planning helps in facilitating communication, monitoring/measuring the project progress, and Provides overall documentation of assumptions/planning decisions.
The Project Planning Phases can be broadly classified as follows:
• Development of the Project Plan Execution of the Project Plan
• Change Control and Corrective Actions
• Project Planning is an ongoing effort throughout the Project Lifecycle.
“If you fail to plan, you plan to fail.” Project planning is crucial to the success of the Project. Careful planning right from the beginning of the project can help to avoid costly mistakes. It provides an assurance that the project execution will accomplish its goals on schedule and within budget.
What are the steps in Project Planning?
Project Planning spans across the various aspects of the Project. Generally Project Planning is considered to be a process of estimating, scheduling and assigning the projects resources in order to deliver an end product of suitable quality. However it is much more as it can assume a very strategic role, which can determine the very success of the project. A Project Plan is one of the crucial steps in Project Planning in General[7].
Typically Project Planning can include the following types of project Planning[7]:
• Project Scope Definition and Scope Planning
• Project Activity Definition and Activity Sequencing
• Time, Effort and Resource Estimation
• Risk Factors Identification
• Cost Estimation and Budgeting
• Organizational and Resource Planning
• Schedule Development
• Quality Planning
• Risk Management Planning
• Project Plan Development and Execution
• Performance Reporting
• Planning Change Management
• Project Rollout Planning
We now briefly examine each of the above steps:
1. Project Scope Definition and Scope Planning:
In this step we document the project work that would help us achieve the project goal. We document the assumptions, constraints, user expectations, Business Requirements, Technical requirements, project deliverables, project objectives and everything that defines the final product requirements. This is the foundation for a successful project completion[7].
2. Quality Planning:
The relevant quality standards are determined for the project. This is an important aspect of Project Planning. Based on the inputs captured in the previous steps such as the Project Scope, Requirements, deliverables, etc. various factors influencing the quality of the final product are determined. The processes required to deliver the Product as promised and as per the standards are defined[7]..
3. Project Activity Definition and Activity Sequencing:
In this step we define all the specific activities that must be performed to deliver the product by producing the various product deliverables. The Project Activity sequencing identifies the interdependence of all the activities defined[7].
4. Time, Effort and Resource Estimation:
Once the Scope, Activities and Activity interdependence is clearly defined and documented, the next crucial step is to determine the effort required to complete each of the activities. See the article on “Software Cost Estimation” for more details. The Effort can be calculated using one of the many techniques available such as Function Points, Lines of Code, Complexity of Code, Benchmarks, etc. This step clearly estimates and documents the time, effort and resource required for each activity[7].
5. Risk Factors Identification:
“Expecting the unexpected and facing it”
It is important to identify and document the risk factors associated with the project based on the assumptions, constraints, user expectations, specific circumstances, etc.[7].
6. Schedule Development:
The time schedule for the project can be arrived at based on the activities, interdependence and effort required for each of them. The schedule may influence the cost estimates, the cost benefit analysis and so on.Project Scheduling is one of the most important task of Project Planning and also the most difficult tasks. In very large projects it is possible that several teams work on developing the project. They may work on it in parallel. However their work may be interdependent[7].
7. Cost Estimation and Budgeting:
Based on the information collected in all the previous steps it is possible to estimate the cost involved in executing and implementing the project. See the article on "Software Cost Estimation" for more details. A Cost Benefit Analysis can be arrived at for the project. Based on the Cost Estimates Budget allocation is done for the project[7].
8. Organizational and Resource Planning
Based on the activities identified, schedule and budget allocation resource types and resources are identified. One of the primary goals of Resource planning is to ensure that the project is run efficiently. This can only be achieved by keeping all the project resources fully utilized as possible. The success depends on the accuracy in predicting the resource demands that will be placed on the project. Resource planning is an iterative process and necessary to optimize the use of resources throughout the project life cycle thus making the project execution more efficient. There are various types of resources – Equipment, Personnel, Facilities, and Money[7].
9. Risk Management Planning:
Risk Management is a process of identifying, analyzing and responding to a risk. Based on the Risk factors Identified a Risk resolution Plan is created. The plan analyses each of the risk factors and their impact on the project. The possible responses for each of them can be planned. Throughout the lifetime of the project these risk factors are monitored and acted upon as necessary[7].
10. Project Plan Development and Execution:
Project Plan Development uses the inputs gathered from all the other planning processes such as Scope definition, Activity identification, Activity sequencing, Quality Management Planning, etc. A detailed Work Break down structure comprising of all the activities identified is used. The tasks are scheduled based on the inputs captured in the steps previously described. The Project Plan documents all the assumptions, activities, schedule, and timelines and drives the project. Each of the Project tasks and activities are periodically monitored. The team and the stakeholders are informed of the progress. This serves as an excellent communication mechanism. Any delays are analyzed and the project plan may be adjusted accordingly[7].
11. Performance Reporting:
As described above the progress of each of the tasks/activities described in the Project plan is monitored. The progress is compared with the schedule and timelines documented in the Project Plan. Various techniques are used to measure and report the project performance such as EVM (Earned Value Management) A wide variety of tools can be used to report the performance of the project such as PERT Charts, GANTT charts, Logical Bar Charts, Histograms, Pie Charts, etc.[7].
Figure 2.3 Project Management Process Group[7]
Software Engineering
• Software engineering is an engineering discipline that is concerned with all aspects of software production[3].
• Software is not just a program or programs but also includes documentation. Essential software product attributes are maintainability, dependability, security, efficiency, and acceptability[3].
• The software process includes all of the activities involved in software development.
• The high-level activities of specification, development, validation, and evolution are part of all software processes[3].
• The fundamental notions of software engineering are universally applicable to all types of system development. These fundamentals include software processes, dependability, security, requirements, and reuse[3].
• There are many different types of systems and each requires appropriate software engineering tools and techniques for their development. There are few, if any, specific design and implementation techniques that are applicable to all kinds of systems[3].
2.5 Team Management in Software projects
Software project management means that the skillful integration of software technology, economics and human relations in the specific context of a software project is not an easy task. In a globally technical team’s environment, project management could be complex task to undertake than it is in any other projects[5].
A team is a group of people who work interdependently, who are committed to common goals, and who produce high quality results[9]
To summarize, the team has many definitions that are desirable from a computer science standpoint. The team is massively people united and its functioning is truly to reach the goals. Previously working together and produce results on time, using a variety of tools and mechanisms in the software systems. Each team use these tools and technologies in slightly different ways, so any team members can enjoy the software projects and use the technology tools can be consider as a technical member and this according to his knowledge or major interest in the software development , he maybe a designer or programmer etc.
A study of communication and cooperation in distributed software project presents the results and conclusions from a study of communication and cooperation practices on a range of distributed commercial software projects teamshas clarify that the software development is no longer the preserve of individual designers and programmers, but is a team-based activity. Indeed, development has always involved a wide variety of stakeholders (customers, designers, programmers, maintainers, end-users) making the need for communication and cooperation an inherent characteristic. Changes in support technology, economic factors and globalization of software development and maintenance are increasingly resulting in the geographical separation of personnel. Where such distribution of personnel occurs, it is clearly important that there is high quality communication and cooperation. [10]
Teams can also be developed through team building activities - which can also be used simply to build relationships where team members lack cohesion due to organizational structure or physical distance. Project managers may approach team management with a focus on structure, communications and standardized practices [11].
Team leadership
Working in teams brings some advantages such as increased creativity, productive competition and accelerated information spreading. Although teams have to be created, guided and decisions have to be made[12].
Team leadership includes:
• Project member selection
• Encouragement of goal acceptance, development and cooperation of the team members (motivation, coaching, dealing with conflicts within the team)
• Initiating changes and advancement of working conditions
• Precipitating decisions
Yoshimura developed a project selection algorithm for choosing the set of projects that maximizes the total estimated profit and then presented a human resources allocation algorithm for optimally placing human resources among the selected projects. A genetic algorithm is used to obtain a Pareto solution set from which the optimal solution is selected. The process for discarding unsuitable solutions is based on setting lower limit constraints for each objective considered; therefore the authors do not suggest any formalized tool for this phase of the optimization procedure [13]
Wu and Sun developed a mixed nonlinear program for multi-project R&D scheduling and staff allocation problems, which considers the staff learning effect. The goal is to minimize outsourcing costs, assuming the need to turn to outsourcing strategy whenever a task cannot be completed before its due date. A genetic algorithm (GA) is proposed to solve the problem[14].
2.6 The Project Management Knowledge Areas
The project manager and team members are involved in all aspects of the project; therefore, one of the most important things a project manager and team members can do is understand in the project's knowledge areas. An area of project management defined by its knowledge requirements and described in terms of its associated process, practices, inputs, outputs, tools and techniques. The knowledge areas help the team members to document and standardize generally accepted project management information and practices. Each knowledge area covers its own important part of the project. A knowledge area can cover several phases or process groups of the project. The nine areas are described below in some detail[4].
Human Resource Management
Human resources management is an important knowledge area, which describes how the people can be managed in a project. It aims to assign the roles and responsibilities for the team members. This area is also important for knowing how project team is acquired and what a management plan is undertaken to the project.
Referring to the human resource management it is crucial to make the most effective use of the people involved with the project. This process of the human resource management includes[4]:
1. Human resource planning: This step includes identifying and documenting the project roles and responsibilities and also reporting relationships as well as making the staff.
2. Acquire the project team who are needed to complete the project: This includes the staffing management plan, staff acquisition, calendars and staff release.
3. Develop the project team: improving the competencies and the interaction of team members to enhance project performance.
4. Manage the project team: This process is to manage the project team members in a standard way and tracking the team performance, also providing a feedback is also an important issue discussed in this management process. This process includes resolving issues .and coordinating change to enhance the project performance. The human resource management process interact with others knowledge areas[4]
2.7 Agile Software Development Methodology
2.7.1 Introduction to Agile
Agile methods are software development techniques that enhance teamwork in small empowered teams and support active customer involvement[1] . Therefore agile means a fundamental of change when we are managing our software projects. In the field of the modern software development methodologies agile was developed in 2001 by a group of software developers including the creators of scrum, they interested in further promotion of quick and easy techniques, and created a movement opposed to classic linear Waterfall method. They formed an Agile Alliance and wrote an Agile Manifesto [15].Since then, Agile has been awaking high interest among Software companies. Applying Agile Methodologies to develop software has been widely used in the software industry, because the agile development has brought a different way of managing software development teams and projects.. Furthermore this approach is known to put a new focus on the question of how to share knowledge among team members of software development, some teams came across it accidentally; some were intentionally searching for a new strategy. Both ways, Agile brings success if adapted properly on the other hand; the agile software development enhances the team work management more than any software project methodology. It had a core values and principles described as follow [16].
• Individual and their interaction: this is very critical in order to perform teams, teams also should understand the project goals and commit to it, they should like and respect each other’s, agile teams are self-organizing and motivations are very important on agile development. Interaction among team members such as co-location and pair programming are also critical on agile development. Because it allow for sharing the knowledge between the team members.
• Working software over comprehensive documentation : this is one of the very biggest differences that the agile brings , the team should have DOD (Definition of done ) which means the team should be sure when to finish one functionality including all its features after it passed all test and the team can operate it to the end user. Working software will be more useful and welcome than just presenting documents to clients in meetings.
• Responding to change: agile methodologies focused on the response of change and seek the customer feedback through the project so they can incorporate feedback and new information as the product is being developed,
Customer collaboration over contract negotiation: the agile methodologies foster this value by having a customer advocate work hand-in-hand with the development team. , Scrum master for example can select a customer proxy, called a product owner, to represent management and sales and client services etc. Collaborating with customer on the daily project working is one of the reasons why industry companies looking for agile. Despite the fact that there is a lot of research on the agility has been done, it is pretty clear that the problems proved the success of agile depends heavily on the agile teams. But agile methodology is still facing some problems such as the project size, the team is usually small, also the lack of skilled people sometimes, lack of support management[15].
Agile software development has put a new focus on the question of how to share knowledge among members of software development teams. In contrast to heavy-weight, document-centric approaches, agile approaches rely on face-to-face communication for knowledge transfer. Pair programming is one such practice with the idea to share the work specific knowledge across the development teams through pair rotation. This paper introduces work on developing a framework for capturing the tacit knowledge shared among the practitioners of agile software development methodologies. This approach facilitates the organizational learning process by capturing and maintaining the necessary knowledge.
The following are the People Factors in Agile[17]:
• Competency:
Competency means whether one has real-world experience in the technology domain, has built similar systems in the past, and possesses good interpersonal & communication skills
• Communication and Negotiation:
Communication plays an important role in the implementation of agile methodologies in a software development project.
• Team composition:
It’s an important factor responsible for the success of agile methodologies.
• Personal characteristics
2.7.2 Comparing agile methodology with the traditional software development
There are several different majors between agile and traditional software development. The major difference depends on the project size and the uses approach and on the documentation when it returns to the investment. Agile uses adaptive approach, project size is small, documentation is low and return on investment is early in project. Whereas traditional software development uses predictive approach, project size is large, documentation is heavy and return on investment is at the end of project. Therefore for small projects agile software development is best. But for complex (big) project traditional system development method is used [18]. Agile development is most used and available in the new market because it struggles on the teams factor more than the process, the teams can get the result they want with suitable cost and saved money.. when we need to change some requirement on the project agile can adapt that while the old traditional methodologies only focus on analyzing and planning in the future in details.
Traditional methodologies require calculating function points, the measure of the technical effort or complexity of completing the software, which are required to develop the whole system. We turn function points into lines of code, and then turn those lines of code into man hours, and then we finally estimate the cost. It ensures that the development of software is technically correct, but it takes a huge amount of time and effort, and it doesn’t take into account the various bug fixes and feature changes that will inevitably come up at the end of the project Agile methodology allows the teams to save time and money, allows for more innovations and creativity within the software development life cycle. The agile process involves features, prioritizing each feature to ensure that the integrity of the product is maintained, and then start development. The teams used to develop software system in the traditional methodologies spend most of the time and maybe waste it when planning the project and gathering requirement, heavy documentations[18].
A sound framework presented by agile methodology called scrum. This scrum is based on new technology tools and application which can be used to manage the teams work. The key idea of the scrum was to take advantage of different roles and responsibilities and provide some activities and tools for different purposes. In addition, this framework also involves learning, innovations. Surprising, emphasizes taking the results of the product and the efficacy of current practices and then adapt the product goals and process the practices.
2.7.3 Individual techniques on agile
The new wave of project management tools and techniques put an emphasis on collaboration and increase the team’s productivity. These tools and techniques go hand in hand with modern practices like collective intelligence and emerging structures that empower agile team’s management[15].
2.7.4 Pair programming
Pair programming is a technique where two programmers sit together to write the code, sitting on pair to do the programming work is fast and safer, the code must be lower defects. This way of programming increase the communication within a project team, improving the quality of the code and supporting shared knowledge especially for the programmer who has not experience on programming languages. The pair programming cost is unknown but it is useful for training a new person[15].
2.7.5 Agile User Participating
The user participating is an important major that agile defined because it is assume to improve the communication and the collaboration between the customer and the team members , on the other hand it will enable the developers to create a software system that will satisfy the customer The benefits of the user participating is that it enhance the quality of the system and it may lead to find solutions or let the development avoid unacceptable solutions, it increase the customer satisfaction[11].
2.7.6 People factor on Agile Development
Half of the agile manifesto values deal with human factors “Individuals and interactions” and “Customer collaboration” [15]. Even NASA has concluded that technology and training are not the big factors, “The most effective practice is leveraging human potential”. Having skill and experienced people in a team is a key factor for agile methodologies. Encouraging domain experts to be part of the team gives developers rapid feedback on the implications to the user of their design choices. Customer adaptability is another great factor, the customer gets the power to check the progress and change the direction of the software development in all iterations. Gaining this level of commitment from the customer makes agile methodology a more attractive process than heavyweight. The biggest challenge of agile methodologies is how they handle larger teams. Cockburn and Highsmith both conclude that “Agile development is more difficult for larger team.as size grows coordinating interfaces become a dominant issue,”[16]. Both Larry Constantine and Martin Fowler also believe that agile with face-to-face communication breaks down and becomes more difficult and complex with developers more than 20[17]. In contrast, heavyweight and plan-driven methods scale better to large projects. People factor on agile on an issue that the management of the technical teams on agile project are needed in order to success[11].
2.7.7 Communications on agile method
Gallivan, and Keil have identified a common theme in the literature of the software development team communication and they believed that communication is most important in achieving successful results[17]. Communications process must be effective for the team members to be effective too. The developer or the manager of the team should create environment where the user feel free to share their concern. It is a big belief among agile process proponents that people can respond quicker and transfer ideas more rapidly when talking face-to-face than they can in heavyweight methodologies when reading or writing documentation. When developers talk with customers and sponsors, they could work out difficulties, adjust priorities, and examine alternate paths forward in ways not possible when they are not working together. Hewlett-Packard and IBM[9]. were early to observe the effectiveness of informal meeting places, but now it’s part of the industry to have an effective design environment actively encourage and permit ad hoc meetings of small groups Communication is the heart beat of the project , it happens every day between the technical people and the manager and customer , on agile methodology the team talk face to face conversation and meet every day and discuss what to do and empower the technical people , many agile teams communicate every day for example the scrum meeting and the standup meetings , they communicate with the product owner and the scrum master and customer and everyone has role for who can speak on the meetings , scrum also has roles and core responsibility for everyone .the core responsibility of the technical teams such as designer and programmer [19].
2.8 Scrum Framework approach
Scrum is being widely used in many famous companies such as Google and yahoo and Siemens and so on, because it brings enhancement to the team work. The simplicity of the scrum and its powerful tools has made it famous and let modern companies apply it on their software production this major framework was developed. and considered long in the world of the software development Review article on the practices associated with successful product development groups, in this paper the term scrum was introduced relating successful development to the game of rugby in which a self–organizing (self-managing team moves together down the field of product development[20]. The first scrum team was created at Easel Corporation in 1993 by Dr. Jeff Sutherland and the scrum framework was formalized in 1995 by Ken Schwaber the creators of the Scrum recommended it as a team based activity which means to get the team started on very fast maybe within two or three days. Scrum itself follows a set of activities that can give more value to the customer and this framework is based on agile values and principles. Scrum also can help managing the team members and deliver the values on time. By scrum activities the customer also can get the opportunities to review, guide and influence the team member’s work on progress. Scrum can be defined as a framework for running software projects that is based on agile principles and values [21]. It defines a set of activities that can help our teams to deliver more value to the customer and in a very fast way this means that within this framework we can employ various processes and techniques to build the software products. And this increases the productivity of the team members and makes it more active than any other traditional software development.
Figure 2.3: Scrum Framework [21]
2.9 Extreme Programming
One of the major methods of agile development is the Extreme Programming which was initiallystarted on March 6, 1996[4]. Extreme Programming is one of several popular agile processes. It is successful for many companies of all different sizes and industries world wide
Figure 2.4 Extreme programming life cycles [4]
The lifecycle of an XP project, shown in Figure 2.4 is divided into six phases: Exploration, Planning, Iterations to release, Production, Maintenance and Death.
In the Exploration phase, the customer writes out the story cards they wish to be included in their program. This leads to Planning phase where a priority order is set to each user story and a schedule of the first release is developed. Next in the Iterations to Release phase, the development team first iteration is to create a system with the architecture of the whole system then continuously integrating and testing their code. Extra testing and checking of the performance of the system before the system can be released to the customer is done in the Production phase. Postponed ideas and suggestions found at this phase are documented for later implementation in the updated releases made at the Maintenance phase. Finally the Death Phase is near when the customer have no more stories to be implemented and all the necessary documentation of the system is written as no more changes to the architecture, design or code is made .Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology[4].
2.10 Dynamic system development method
Dynamic Systems Development Method (DSDM) is an agile project delivery framework, primarily used as a software development method. The DSDM framework can be implemented for agile and traditional development processes [4].One key aspect that distinguishes the DSDM approach is that it fixes time and resources first and then adjusts the amount of functionality accordingly. This resources-first process consists of five phases: Feasibility Study, Business Study, Functional Model Iteration, Design and Build Iteration, and Implementation. The last three phases are iterative and incremental – restricting iterations within time-boxes (pre-defined periods of time, where the iteration must end within the time-box). In the Feasibility Study phase, the project is assessed, and the decision on whether or not DSDM is appropriate for the effort. A feasibility report and a development plan are produced over a few weeks. In the business study phase, key characteristics of the business and technology are assessed culminating in a system architecture definition and an outline prototyping plan. The architecture definition is the initial version of the system definition and it may change as the project proceeds. The prototyping plan outlines the prototyping strategy and the configuration management approach. During the functional model iteration phase, the project evolves through functional iterations where each iteration involves some enhancements and the increments are directed toward the final system. This phase entails four products that reflect the process: prioritized list of functions, functional prototype(s) review documents, non-functional requirements and risk analysis of further development .The design and build iteration produces the system that meets the minimum set of requirements and iterate the system based on the customer’s comments. Systematically, through a series of iterations and increments, the software is elaborated and refined in a consumable form for the customer to review. In the implementation phase the system is formally transferred to the actual product. The system is delivered to the customer and any subsequent increments are planned[4].
The team work is one of the success factors that DSDM brings. This team has to be composed of skillful members that form a stable union. An important issue is the empowerment of the project team. This means that the team (or one or more of its members) has to possess the power and possibility to make important decisions regarding the project without having to write formal proposals to higher management, which can be very time-consuming. In order for the project team to be able to run a successful project, they also need the right technology to conduct the project. This means a development environment, project management tools [16].
2.11 Feature driven development
Feature driven development is focused only in design and implementation and it need supporting from other approaches. There are five steps in the FDD including the process, the object oriented components and the features based development.
Figure 2.5 Feature driven developments
FDD consists of five sequential steps as the figure show.
• Develop an Overall Model - A high level walkthrough of the system scope and its context is performed by the domain expertto the team members and chief architect. Documented requirements such as use cases or functional specifications are developed.
• Build a Features List - A categorized list of features to support the requirements is produced
• Plan by Feature - The development team orders the feature sets according to their priority and dependencies and assigned to chief programmers. Furthermore, the classes identified in the first phase are assigned to class owners (individual developers). Also schedule and milestones are set for the feature sets.
• Design by Feature & Build by Feature - Features is selected from the feature set and feature teams needed to develop these features are chosen by the class owners. The design by feature and build by feature are iterative procedures during which the team produces the sequence diagrams for the assigned features. These diagrams are passed on to the developers who implement the items necessary to support the design for a particular feature. There can be multiple feature teams concurrently designing and building their own set of features. The code developed is then unit tested and inspected. After a successful iteration, the completed features are promoted to the main build.
2.12 Capability Maturity Model Integration CMM and CMMI
The U.S. Software Engineering Institute (SEI) was established to improve the capabilities of the American software industry. In the mid-1980s, the SEI initiated a study of ways to assess the capabilities of software contractors. The outcome of this capability assessment was the SEI Software Capability Maturity Model (CMM)[3].This has been tremendously influential in convincing the software engineering community to take process improvement seriously. The Capability Maturity Model (CMM) is a reference model of mature practices in a specified discipline, used to improve and appraise a group’s capability to perform that discipline[22]. The Software CMM was followed by a range of other capability maturity models, including the People Capability Maturity Model (P-CMM) and the Systems Engineering Capability Model.
In an attempt to integrate the plethora of capability models based on the notion of process maturity (including its own models), the SEI embarked on a new program to develop an integrated capability model (CMMI). The CMMI framework supersedes the Software and Systems Engineering CMMs and integrates other capability maturity models. It has two instantiations, staged and continuous, and addresses some of the reported weaknesses in the Software CMM[22].
The Capability Maturity Model Integration (CMMI) plays various roles[23]: a process improvement approach[24]; a way to describe the characteristics of effective processes[25]. Acollection of the essential elements of effective processes for one or more bodies of knowledge; a process capability maturity model which aids in the definition and understanding of an organization’s processes, and more. In some texts it is referred to as “the CMMI model”, while some others use “a CMMI model”. This diversity of interpretations can be viewed as a manifestation of the dual role that this concept plays: a conceptual framework for describing characteristics of business processes vs. a characterization of the business process of a specific organization
2.13 People Capability Maturity Model P-CMM[[26]
The People Capability Maturity Model (People CMM) is a proven set of human capital management practices that provides an organizational change model through an evolutionary framework based on a system of workforce practices. It is designed on the premise that improved workforce practices will not survive unless an organization’s behavior changes to support them. The People CMM provides a roadmap for transforming an organization by steadily improving its workforce practices. As do all Capability Maturity Models, the People CMM consists of five maturity levels, or evolutionary stages, through which an organization’s workforce practices and processes evolve. At each maturity level, a new system of practices is added to those implemented at earlier levels. Each overlay of practices raises the level of sophistication through which the organization develops its workforce. Within this environment individuals experience greater opportunity to develop and are more motivated to align their performance with the objectives of the organization.
The Capability Levels of CMMI:
5 Optimizing
4 Quantitatively Managed
3 Defined
2 Managed
1 Performed
0 Incomplete
Figure 2.6 Abstract view of CMMI
2.14 Conclusion:
This chapter we tried to overview in all related works and studies of Project Management, Human Resources management, and software development methodologies that Interested in human factors in software projects like Agile Software Development Methodology and Scrum framework; during our review in the literature of Human Resources management in IS projects we notice that the people management in SW projects need additional efforts and studies to enhance this area of study and contribute for enhancement of people management; so after we have study the related works of this topics notice that we need to survey in the SW market to address some problems; and go to enhance and contribute in the area of human management and trying to overcome some problems like; team selection processes, team evaluation, tasks allocation and distribution between the team members; after the survey will be done in the next chapter you will see the proposed framework in the chapter 4.
CHAPTER 3
Human Problems in IS Projects (Survey)
Outline
3.1 Introduction
3.2 People Management in Software Project
3.3 Ten mistakes regarding Time Management
3.4 Common Causes of ProjectsFailure
3.5 101 Common Causes of Project Failure
3.6 Data & Information Gathering from the market (Questionnaire)
3.7 Questionnaire Results
3.8 Conclusion
Chapter 3Human Problems in IS Projects(Survey)
3.1 Introduction
In the first part of this chapter we will survey and collect the most important problems which lead and cause project failure. The human factor is the most important contributor in the project success; so we need to study all human aspects and related problems.
And in the second part of this chapter after we survey in most problems and causes of project failure we will design questionnaire to realize and ensure that all problems are significant. The questionnaire aims to build the proposed framework and develop framework components to overcome these problems as can as possible.
The questionnaire cove around thirty experts in the fields of human resources, and projects management. The targeted areas are human resources, projects management, and software engineering. The questionnaire divided into some coherent sections, every section contains some of questions
3.2 People Management in Software Project
Software engineering curricula typically focus on process and technology yet give little or no attention to teaching the “soft skills” of managing technical people. While teaching the art of managing people is indeed difficult, it is paramount in today’s global working and learning environments[27]. Software engineering involves the engineering of complex software systems through the use of process, technology, and people in a well-balanced approach. Taught in universities in the undergraduate and graduate level, most academic programs focus more on the technical and process-related areas, failing to address issues of people management as part of their curricula. With the growing complexity of software projects and the current state of the practice, described by the Standish Group[27].
Human Aspects of Software Engineering
The importance of the human aspects of software engineering becomes acknowledged recently. For example, many failures of software systems can be explained by human factors. Taking into the consideration the complexity of the topic, the course described in this article focuses on social and cognitive aspects of software engineering, and addresses topics such as teamwork, customer – software engineer interaction, and learning processes in software development. Since the agile approach in general and Extreme Programming (XP) in particular are about humankind, we find it appropriate to illustrate human aspects of software engineering by the agile approach in general and XP in particular. The next two sections describe the rationale for the course and how some of its main messages are illustrated by XP [13].
Teams’ Relations
Teams’ relational capital refers to the level of mutual trust, reciprocity, and thecloseness of relationships between team members. Higher levels of mutual trust among the team members reduce the fear of opportunistic behavior from their colleagues, and improve the confidence that everyone will meet their commitment to one another, and to the project.Trusting team members are more willing to share their individual know-how and skills, as well as the knowledge they absorb from external sources. This may positively influence teams’ external as well as internal knowledge integration[28].
Team Time Management Problems
How well do you manage your time? If you're like many people, your answer may not be completely positive! Perhaps you feel overloaded, and you often have to work late to hit your deadlines. Or maybe your days seem to go from one crisis to another, and this is stressful and demoralizing. Many of us know that we could be managing our time more effectively; but it can be difficult to identify the mistakes that we're making, and to know how we could improve. When we do manage our time well, however, we're exceptionally productive at work, and our stress levels drop. We can devote time to the interesting, high-reward projects that can make a real difference to a career. In short, we're happier![29]
In this part we looking at ten of the most common time management mistakes, as well as identifying strategies and tips that you can use to overcome them.
3.3 Ten mistakes regarding Time Management:
Mistake # Failing to Keep a To-Do List
Do you ever have that nagging feeling that you've forgotten to do an important piece of work? If so, you probably don't use a To-Do List to keep on top of things. (Or, if you do, you might not be using it effectively!)
The trick with using To-Do Lists effectively lies in prioritizing the tasks on your list. Many people use an A – F coding system (A for high priority items, F for very low priorities). Alternatively, you can simplify this by using A through D, or by using numbers.
If you have large projects on your list, then, unless you're careful, the entries for these can be vague and ineffective. For instance, you may have written down "Start on budget proposal." But what does this entail? The lack of specifics here might cause you to procrastinate, or miss key steps. So make sure that you break large tasks or projects down into specific, actionable steps – then you won't overlook something important[29].
You can also use Action Programs to manage your work when you have many large projects happening at once. (Action Programs are "industrial strength" versions of To-Do Lists.
Mistake #2 Not Setting Personal Goals
Do you know where you'd like to be in six months? What about this time next year, or even 10 years from now? If not, it's time to set some personal goals[29].
Personal goal setting is essential to managing your time well, because goals give you a destination and vision to work toward. When you know where you want to go, you can manage your priorities, time, and resources to get there. Goals also help you decide what's worth spending your time on, and what just a distraction is.
To learn how to set SMART, effective goals, read up on Locke's Goal Setting Theory . Here, you'll learn how to set clearly defined goals that will keep you motivated.
You might also enjoy our Book Insight into Long Fuse, Big Bang by Eric Haseltine. This book teaches you how to focus on your long-term goals without overlooking your short term priorities.
Mistake #3Not Prioritizing
Your assistant has just walked in with a crisis that she needs you to deal with right now, but you're in the middle of brainstorming ideas for a new client. You're sure that you've almost come up with a brilliant idea for their marketing campaign, but now you risk losing the thread of your thinking because of this "emergency."
Sometimes, it's hard to know how to prioritize , especially when you're facing a flood of seemingly-urgent tasks. However, it's essential to learn how to prioritize tasks effectively if you want to manage your time better.
One tool that will help you prioritize effectively is the Urgent/Important Matrix . This helps you understand the difference between urgent activities, and important activities. You'll also learn how to overcome the tendency to focus on the urgent.
The Action Priority Matrix is another useful tool, which will help you determine if a task is high-yield and high-priority, or low-value, "fill in" work. You'll manage your time much better during the day if you know the difference.
You might also want to go through our Bite-Sized Training session How to Prioritize, to further enhance your skills[29].
Mistake #4 Failing to Manage Distractions
Do you know that some of us can lose as much as two hours a day to distractions? Think how much you could get done if you had that time back!
Whether they come from emails, IM chats, colleagues in a crisis, or phone calls from clients, distractions prevent us from achieving flow , which is the satisfying and seemingly effortless work that we do when we're 100 percent engaged in a task.
If you want to gain control of your day and do your best work, it's vital to know how to minimize distractions and manage interruptions effectively. For instance, turn off your IM chat when you need to focus, and let people know if they're distracting you too often. You should also learn how to improve your concentration , even when you're faced with distractions.
Additionally, our article on managing email effectively teaches you how to gain control of your email, so that it doesn't eat up your entire day[29].
Mistake #5 Procrastination
Procrastination occurs when you put off tasks that you should be focusing on right now. When you procrastinate, you feel guilty that you haven't started; you come to dread doing the task; and, eventually, everything catches up with you when you fail to complete the work on time. Start by taking our procrastination quiz to find out if procrastination is a problem in your life. If it is, then learn the strategies you need to beat procrastination .
For instance, one useful strategy is to tell yourself that you're only going to start on a project for ten minutes. Often, procrastinators feel that they have to complete a task from start to finish, and this high expectation makes them feel overwhelmed and anxious. Instead, focus on devoting a small amount of time to starting. That's all!
You might also find it helpful to use Action Plans . These help you break large projects down into manageable steps, so that it's easy to see everything that you need to get done, and so that you can complete small chunks at a time.
Mistake #7Thriving on "Busy"
Some people get a rush from being busy. The narrowly-met deadlines, the endless emails, the piles of files needing attention on the desk, the frantic race to the meeting... What an adrenaline buzz!
The problem is that an "addiction to busyness" rarely means that you're effective, and it can lead to stress.
Instead, try to slow down, and learn to manage your time better.
Tip: "Do More Great Work", by Michael BungayStanier, is full of ideas and tips to reduce the "busywork" that you're doing, so that you're more excited and engaged in the work that matters. Click here for our Book Insight on it.
Mistake #8Multitasking
To get on top of her workload, Linda regularly writes emails while she chats on the phone to her clients. However, while Linda thinks that this is a good use of her time, the truth is that it can take 20-40 percent more time to finish a list of jobs when you multitask, compared with completing the same list of tasks in sequence. The result is also that she does both tasks poorly – her emails are full of errors, and her clients are frustrated by her lack of concentration.
So, the best thing is to forget about multitasking , and, instead, focus on one task at a time. That way, you'll produce higher quality work.
Our Expert Interview with Dave Crenshaw, looking at The Myth of Multitasking, will give you an enlightening look at multitasking, and will help you explore how you can manage simultaneous projects more effectively.
Mistake #9Not Taking Breaks
It's nice to think that you can work for 8-10 hours straight, especially when you're working to a deadline. But it's impossible for anyone to focus and produce really high-quality work without giving their brains some time to rest and recharge.
So, don't dismiss breaks as "wasting time." They provide valuable down-time, which will enable you to think creatively and work effectively. If it's hard for you to stop working, then schedule breaks for yourself, or set an alarm as a reminder. Go for a quick walk, grab a cup of coffee, or just sit and meditate at your desk. Try to take a five minute break every hour or two. And make sure that you give yourself ample time for lunch – you won't produce top quality work if you're hungry[29].
Mistake #10 Ineffectively Scheduling Tasks
Are you a morning person? Or do you find your energy picking up once the sun begins to set in the evening? All of us have different rhythms, that is, different times of day when we feel most productive and energetic. You can make best use of your time by scheduling high-value work during your peak time, and low-energy work (like returning phone calls and checking email), during your "down" time. Our article, Is This a Morning Task? will teach you how to do this[29].
3.4 Common causes of project failure
If any of the answers to the following questions are unsatisfactory, an acquisition-based project should not be allowed to proceed until the appropriate assurances are obtained[30].
3.4.1 Lack of clear link between the project and the organization’s key strategic priorities, including agreed measures of success.
• Do we know how the priority of this project compares and aligns with our other delivery and operational activities?
• Have we defined the critical success factors (CSFs) for the project?
• Have the CSFs been agreed with suppliers and key stakeholders?
• Do we have a clear project plan that covers the full period of the planned delivery and all business change required, and indicates the means of benefits realization?
• Is the project founded upon realistic timescales, taking account of statutory lead times, and showing critical dependencies such that any delays can be handled?
• Are the lessons learnt from relevant projects being applied?
• Has an analysis been undertaken of the effects of any slippage in time, cost, scope or quality? In the event of a problem/conflict at least one must be sacrificed.
3.4.2 Lack of clear senior management and Ministerial ownership and leadership[29].
• Does the project management team have a clear view of the interdependencies between projects, the benefits, and the criteria against which success will be judged?
• If the project traverses organizational boundaries, are there clear governance arrangements to ensure sustainable alignment with the business objectives of all organizations involved?
• Are all proposed commitments and announcements first checked for delivery implications?
• Are decisions taken early, decisively, and adhered to, in order to facilitate successful delivery?
• Does the project have the necessary approval to proceed from its nominated Minister either directly or through delegated authority to a designated SRO?
• Does the Senior Responsible Owner (SRO) have the ability, responsibility and authority to ensure that the business change and business benefits are delivered?
• Does the SRO have a suitable track record of delivery? Where necessary, is this being optimized through training?
•
3.4.3 Lack of effective engagement with stakeholders[29].
• Have we identified the right stakeholders?
• In so doing, have we as intelligent customers, identified the rationale for doing so (e.g. the why, the what, the who, the where, the when and the how)?
• Have we secured a common understanding and agreement of stakeholder requirements?
• Does the business case take account of the views of all stakeholders including users?
• Do we understand how we will manage stakeholders e.g. ensure buy-in, overcome resistance to change, allocate risk to the party best able to manage it?
• Has sufficient account been taken of the subsisting organizational culture?
• Whilst ensuring that there is clear accountability, how can we resolve any conflicting priorities?
3.4.4 Lack of skills and proven approach to project management and risk management[29].
• Is there a skilled and experienced project team with clearly defined roles and responsibilities? If not, is there access to expertise, which can benefit those fulfilling the requisite roles?
• Are the major risks identified, weighted and treated by the SRO, the Director, and Project Manager and/or project team?
• Has sufficient resourcing, financial and otherwise, been allocated to the project, including an allowance for risk?
• Do we have adequate approaches for estimating, monitoring and controlling the total expenditure on projects?
• Do we have effective systems for measuring and tracking the realization of benefits in the business case?
• Are the governance arrangements robust enough to ensure that “bad news” is not filtered out of progress reports to senior managers?
• If external consultants are used, are they accountable and committed to help ensure successful and timely delivery?
3.4.5 Too little attention to breaking development and implementation into manageable steps[29].
• Has the approach been tested to ensure it is not ‘big-bang’ for example in IT-enabled projects?
• Has sufficient time been built in to allow for planning applications in Property & Construction projects for example?
• Have we done our best to keep delivery timescales short so that change during development is avoided?
• Have enough review points been built in so that the project can be stopped, if changing circumstances mean that the business benefits are no longer achievable or no longer represent value for money?
• Is there a business continuity plan in the event of the project delivering late or failing to deliver at all?
3.4.6 Evaluation of proposals driven by initial price rather than long-term value for money (especially securing delivery of business benefits).
• Is the evaluation based on whole-life value for money, taking account of capital, maintenance and service costs?
• Do we have a proposed evaluation approach that allows us to balance financial factors against quality and security of delivery?
• Does the evaluation approach take account of business criticality and affordability?
• Is the evaluation approach business driven?
3.4.7 Lack of understanding of and contact with the supply industry at senior levels in the organization.
• Have we tested that the supply industry understands our approach and agrees that it is achievable?
• Have we asked suppliers to state any assumptions they are making against their proposals?
• Have we checked that the project will attract sufficient competitive interest?
• Are senior management sufficiently engaged with the industry to be able assess supply-side risks?
• Do we have a clear strategy for engaging with the industry or are we making sourcing decisions on a piecemeal basis?
• Are the processes in place to ensure that all parties have a clear understanding of their roles and responsibilities, and a shared understanding of desired outcomes, key terms and deadlines?
• Do we understand the dynamics of industry to determine whether our acquisition requirements can be met given potentially competing pressures in other sectors of the economy?
3.4.8 Lack of effective project team integration between clients, the supplier team and the supply chain.
• Has a market evaluation been undertaken to test market responsiveness to the requirements being sought?
• Are the procurement routes that allow integration of the project team being used?
• Is there early supplier involvement to help determine and validate what outputs and outcomes are sought for the project?
• Has a shared risk register been established?
• Have arrangements for sharing efficiency gains throughout the supply team been established?
3.5 101 Common Causes of Project Failure
Based on reviews of the projects in the Catalogue of Catastrophe[31] and discussion with more than 500 people involved in real life projects, the following list documents 101 of the most common mistakes that lead to, or contribute to, the failure of projects [32]:
There are many causes of project failure and every failed project will have its own set of issues. Sometimes it is a single trigger event that leads to failure, but more often than not, it is a complex entwined set of problems that combine and cumulatively result in failure. Generally these issues fall into two categories. Things the team did do (but did poorly) or things the team failed to do.
Goal and vision[31]
1. Failure to understand the why behind the what results in a project delivering something that fails to meet the real needs of the organization (i.e. failure to ask or answer the question “what are we really trying to achieve?”)
2. Failure to document the “why” into a succinct and clear vision that can be used to communicate the project’s goal to the organization and as a focal point for planning
3. Project objectives are misaligned with the overall business goals and strategy of the organization as a whole (e.g. Sponsor has their own private agenda that is not aligned with the organization’s stated goals)
4. Project defines its vision and goals, but the document is put on a shelf and never used as a guide for subsequent decision making
5. Lack of coordination between multiple projects spread throughout the organization results in different projects being misaligned or potentially in conflict with each other.
Leadership and governance[31]
1. Failure to establish a governance structure appropriate to the needs of the project
2. Appointing a Sponsor who fails to take ownership of the project seriously or who feels that the Project Manager is the only person responsible for making the project a success
3. Appointing a Sponsor who lacks the experience, seniority, time or training to perform the role effectively
4. Failure to establish effective leadership in one or more of the three leadership domains i.e. business, technical and organizational
5. The Project Manager lacks the interpersonal or organizational skills to bring people together and make things happen
6. Failure to find the right level of project oversight (e.g. either the Project Manager micromanages the project causing the team to become de-motivated or they fail to track things sufficiently closely allowing the project to run out of control).
Stakeholder engagement issues[31]
1. Failure to identify or engage the stakeholders
2. Failing to view the project through the eyes of the stakeholders results in a failure to appreciate how the project will impact the stakeholders or how they will react to the project
3. Imposing a solution or decision on stakeholders and failing to get their buy-in
4. Allowing one stakeholder group to dominate the project while ignoring the needs of other less vocal groups
5. Failure to include appropriate “change management” type activities into the scope of the project to ensure stakeholders are able to transition from old ways of working to the new ways introduced by the project
6. Failure to establish effective communications between individuals, groups or organizations involved in the project.
Team issues[31]
1. Lack of clear roles and responsibilities result in confusion, errors and omissions
2. There are insufficient team members to complete the work that has been committed to
3. Projects are done “off the side of the desk” (i.e. team members are expected to perform full time operational jobs while also meeting project milestones)
4. The team lacks the Subject Matter Expertise needed to complete the project successfully
5. Selecting the first available person to fill a role rather than waiting for the person who is best qualified
6. Failure to provide team with appropriate training in either the technology in use, the processes the team will be using or the business domain in which the system will function
7. Lack of feedback processes allows discontent in the team to simmer under the surface
8. The Project Manager’s failure to address poor team dynamics or obvious non-performance of an individual team member results in the rest of the team becoming disengaged
9. Practices that undermine team motivation
10. Pushing a team that is already exhausted into doing even more overtime
11. Adding more resources to an already late project causes addition strain on the leadership team resulting in even lower team performance.
Requirements Issues[31]
1. Lack of formality in the scope definition process results in vagueness and different people having different understandings of what is in and what is out of scope
2. Vague or open ended requirements (such as requirements that end with “etc.”)
3. Failure to address excessive scope volatility or uncontrolled scope creep
4. Failure to fully understand the operational context in which the product being produced needs to function once the project is over
5. Requirements are defined by an intermediary without directly consulting or involving those who will eventually use the product being produced (see also lack of stakeholder engagement above)
6. Individual requirements are never vetted against the project’s overall objectives to ensure each requirement supports the project’s objective and has a reasonable Return on Investment (ROI)
7. The project requirements are written based on the assumption that everything will work as planned. Requirements to handle potential problems or more challenging situations that might occur are never considered
8. Failure to broker agreement between stakeholders with differing perspectives or requirements.
Estimation[31]
1. Those who will actually perform the work are excluded from the estimating process
2. Estimates are arbitrarily cut in order to secure a contract or make a project more attractive
3. Allowing a manager, sales agent or customer to bully the team into making unrealistic commitments
4. Estimates are provided without a corresponding statement of scope
5. Estimation is done based on insufficient information or analysis (rapid off-the-cuff estimates become firm commitments)
6. Commitments are made to firm estimates, rather than using a range of values that encapsulate the unknowns in the estimate
7. The assumptions used for estimating are never documented, discussed or validated
8. Big ticket items are estimated, but because they are less visible, the smaller scale activities (the peanut list) are omitted
9. Estimation is done without referring back to a repository of performance data culled from prior projects
10. Failure to build in contingency to handle unknowns
11. Assuming a new tool, process or system being used by the team will deliver instant productivity improvements.
Planning[31]
1. Failure to plan – diving into the performance and execution of work without first slowing down to think
2. The underestimation of complexity
3. Working under constant and excessive schedule pressure
4. Assuming effort estimates can be directly equated to elapsed task durations without any buffers or room for non-productive time
5. Failure to manage management or customer expectations
6. Planning is seen as the Project Manager’s responsibility rather than a team activity
7. Failure to break a large scale master plan into more manageable pieces that can be delivered incrementally
8. Team commitments themselves to a schedule without first getting corresponding commitments from other groups and stakeholders who also have to commit to the schedule (aka schedule suicide)
9. Unclear roles and responsibilities led to confusion and gaps
10. Some team members are allowed to become overloaded resulting in degraded performance in critical areas of the project while others are underutilized
11. Requirements are never prioritized resulting in team focusing energies on lower priority items instead of high priority work
12. Failure to include appropriate culture change activities as part of the project plan
13. Failure to provide sufficient user training when deploying the product produced by the project into its operational environment
14. Failure to build training or ramp up time into the plan
15. Change requests are handled informally without assessing their implications or agreeing to changes in schedule and budget.
Risk management[31]
1. Failure to think ahead and to foresee and address potential problems
2. Risk management is seen as an independent activity rather than an integral part of the planning process
3. Risk, problems and issues become confused as a result team isn’t really doing risk management.
Architecture and design[31]
1. Allowing a pet idea to become the chosen solution without considering if other solutions might better meet the project’s overall goal
2. Teams starts developing individual components without first thinking through an overall architecture or how the different components will be integrated together. That lack of architecture then results in duplication of effort, gaps, unexpected integration costs and other inefficiencies
3. Failure to take into account non-functional requirements when designing a product, system or process (especially performance requirements) results in a deliverable that is operationally unusable
4. Poor architecture results in a system that is difficult to debug and maintain
5. Being seduced into using leading edge technology where it is not needed or inappropriate
6. Developer “gold plating” (developers implement the Rolls Royce version of a product when a Chevy was all that was needed)
7. Trying to solve all problems with a specific tool simply because it is well understood rather than because it is well suited to the job in hand
8. New tools are used by the project team without providing the team with adequate training or arranging for appropriate vendor support.
Configuration and information management[31]
1. Failure to maintain control over document or component versions results in confusion over which is current, compatibility problems and other issues that disrupt progress
2. Failure to put in place appropriate tools for organizing and managing information results in a loss of key information and/or a loss of control.
Quality[31]
1. Quality requirements are never discussed, thereby allowing different people to have different expectations of what is being produced and the standards to be achieved
2. Failure to plan into the project appropriate reviews, tests or checkpoints at which quality can be verified
3. Reviews of documents and design papers focus on spelling and grammar rather than on substantive issues
4. Quality is viewed simply in terms of testing rather than a culture of working
5. The team developing the project’s deliverables sees quality as the responsibility of the Quality Assurance group rather than a shared responsibility (the so called “throw it over the wall” mentality)
6. Testing focuses on the simple test cases while ignore the more complex situations such as error and recovery handling when things go wrong
7. Integration and testing of the individual components created in the project is left until all development activities are complete rather than doing ongoing incremental ingratiation and verification to find and fix problems early
8. Testing in a test environment that is configured differently from the target production, or operational environment in which the project’s deliverables will be used.
Project tracking and management[31]
1. Believing that although the team is behind schedule, they will catch up later
2. The project plan is published but there is insufficient follow up or tracking to allow issues to be surfaced and addressed early. Those failures result in delays and other knock-on problems
3. Bad news is glossed over when presenting to customers, managers and stakeholders
4. Dismissing information that might show that the project is running into difficulties
5. Schedule and budget become the driving force, as a result corners are cut and quality is compromised (pressure to mark a task as complete results in quality problems remaining undetected or being ignored)
6. Project is tracked based on large work items rather than smaller increments
7. Failure to monitor sub-contractor or vendor performance on a regular basis
8. Believing that a task reported by a team member as 90% done really is 90% done (note often that last 10% takes as long in calendar time as the first 90%)
9. Believing that because a person was told something once (weeks or months ago), they will remember what they were asked to do and when they were supposed to do it (failure to put in place a system that ensures people are reminded of upcoming activities and commitments).
Decision making problems[31]
1. Key decisions (strategic, structural or architectural type decisions) are made by people who lack the subject matter expertise to be making the decision
2. When making critical decisions expert advice is either ignored or simply never solicited
3. Lack of “situational awareness” results in ineffective decisions being made
4. Failure to bring closure to a critical decision results in wheel-spin and inaction over extended periods of time
5. Team avoids the difficult decisions because some stakeholders maybe unhappy with the outcome
6. Group decisions are made at the lowest common denominator rather than facilitating group decision making towards the best possible answer
7. Key decisions are made without identifying or considering alternatives.
8. Decision fragments are left unanswered (parts of the who, why, when, where and how components of a decision are made, but others are never finalized) resulting in confusion
9. Failure to establish clear ownership of decisions or the process by which key decisions will be made results in indecision and confusion.
3.6 Data & Information Gathering from the market
We are carrying out the second step to gather the human problems from the software market; by designing a questionnaire to take in hand most human related problems.
3.1.1 Questionnaire Overview
The objective of the designed questionnaire is to survey on the human problems in software projects. The designed questionnaire built to cover. The questionnaire contains 26 questions to cover most aspects and points in team management. The questionnaire targeted the IS projects area, and HR management:
Targeted Companies/Organizations
• Software Companies in Egypt
• Consultation and Software Services Companies in Egypt
• Any organization, or company which has an IS project.
Targeted People:
• IS Project Managers/Leaders
• IS/IT Department Managers/Directors
• Human Resources Directors/Managers/ Heads
• Projects Management Experts and Consultants
3.1.2 Data Collection Method
The questionnaire was designed according to some factors we need to evaluate and measure the problems coming from the deviation from applying some concepts in team management.
• Evaluation Factors:
1. Team Involvement
2. Team Selection
3. Team Evaluation
4. Team Communication
5. Meeting Organization
6. Team Performance Management
You can see more details about the questionnaire in the appendix A at the end of this thesis
3.1.3 Data Analysis
According to the mentioned factors we designed some questions to survey and collect information regarding each factor. The questions structured based on multiple choice questions and there is an open question at the end of the questionnaire; the open questions help to give any other recommendations in team management; cross all phases of software development life cycle. The answers divide into 5 types of answers as the following table show:
Ans. Type
Answer Text
Grade
Percentage %
A
Strongly Agree
5
100%
B
Agree
4
75%
C
Neither Agree, Nor Disagree
3
50%
D
Disagree
2
25%
E
Strongly Disagree
1
0%
Table 3.1 Questionnaire Answer Structure
Evaluation Factors
Means of Question Grades
Percentage
Team Involvement
3.5
0.7
%70
Team Selection
4.5
0.9
%90
Team Evaluation
4
0.8
%80
Team Communication
5
1
%100
Meeting Organization
4
0.8
%80
Team Performance Management
3.5
0.7
%70
Total Grade
24.5
4.9
490
24.5/(6*5)= 0.8166
4.9/6 = 0.8166
490/ 600 = 0.8166
Percentage of Problems Relevance
81.7%
According to the experts answers the grades appears like the following:
1. Factor 1: Team Involvement; the number of related questions are four questions, the answers of 32 experts distributed like the following table:
Expert
Question
Answer /Grade
Expert
Answer
Grade
E1
Q1
Q2
Q3
Q4
Total
A/5
B/4
B/4
A/5
18/20 = 90%
E8
E2
Q1
Q2
Q3
Q4
Total
B/4
C/3
B/4
A/5
16/20 = 80%
E9
E3
….
E7
E32
Table 3.2 Questionnaire Answers Example
So according to the above example we can see that 4*32=128 Questions and we know the grade from 1 to 5, and then we accumulate the total grade of this factor like:Relevance Percentage = ((sum (grades)) / (128*5)) %.
The above table below an example explains how the values calculated.
Table 3.3 Questionnaire results summary
3.7 Questionnaire Result Summary
The results indicate that the six factors are relevant to the project success with the following grades as shown in the below graph, so we should take in account all aspects included behind these factors and build the framework which should contains recommendations and rules regarding this factors; for example if don’t select a qualified and skilled people to the project team (Team Selection); then the project may be fail, or delayed at least.
Figure 3.1: Questionnaire Factors & it effects on the Project
3.8 Conclusion
Through the reading and surveying in Human problems in projects management and according to the questionnaire outcomes we decided to contribute and build the proposed framework to overcome some problems and enhance human management in software projects. The data analysis of outcomes of questionnaires and interview we notice that if we build a guide or framework to overcome these problems and defects; this framework will be helpful and enhance the human management, and lead to project success. The inputs of our proposed framework come through questionnaire, human problems survey.
Figure 3.2: Input for Framework Building Process
4.1 Introduction
In this chapter we will build the proposed framework as a guide for project managers; to help them to lead the projects and success; this guide will help to enhance the management activities of technical people in software projects, and leads to project success. The management activities of software projects extended along the Life Cycle Model LCM; so we will start from initiation phase to closing phase and we will try to introduce a recommendations and rules to enhance the management of technical people. The framework components, contains a set of components; the framework can be considered as an added value for the human management in general. We will evaluate and test this framework in set of companies in the market. The evaluation processes will be using a questionnaire and survey in human resources and IS market.
4.2 Proposed framework Abstract view
The following graph is an abstract view of proposed framework component which will explain later in this chapter.
4.3 Initiation & Planning:
a) Goals and Objectives Setting
In this step you will go to set project goals and objectives; setting goals and working toward them can help reach to your requirements. Goals are things you set to accomplish either in a long period of time or a short period of time. Project goals can be a short term goals; these are goals that you can accomplish within a short period of time, or long term goals; these are goals that you can accomplish within a long period of time[33].
Steps to Determine Goals and Objectives:
1. Become clear on the outcome you want to achieve: The more defined your vision, the easier it will be set goals and objectives. This will also help you stay focused on the things that will help you achieve your goals[29].
2. Write down your goals: Take time to write out all the goals you have for yourself. If you have personal and business goals, write them out separately. You may wish to work on one area at a time so that you do not become overwhelmed. People are often unable to achieve goals because they become overwhelmed with the tasks and feel they will not be able to accomplish them all. By breaking things into smaller areas, chances of success increase.
3. Determine the objectives for each goal. Objectives break each goal down into smaller steps. By working on one step at a time, you are able to achieve your goals more easily and there is more clarity about the tasks you are undertaking.
4. Put your goals and objectives into time frames: Look at your overall list and figure out what goals need to be accomplished first in order for you to achieve larger goals.
5. Review your goals: Read each goal and objective and visualize what it will feel like to achieve it.
6. Put your list in a place that is easily accessible: You may wish to have a copy on your computer or carry a copy with you in a goals and objectives notebook. This notebook can be a journal you keep as you work to achieve your goals.
7. Return to your lists after each time frame: Take time to sit and review what goals and objectives you were able to reach and which ones you missed. For those you were not able to accomplish, think of what steps you could take differently and set goals again for that task.
All goals and objectives must be SMART.
SMART is an acronym for:
Specific, Measurable, Achievable or attainable, Realistic or relevant, Timely and traceable[34].
Specific
Is the objective precise and well defined?
Is it clear?
Can everyone understand it?
Measurable
How will you know when the task has been completed?
What evidence is needed to confirm the completion?
Have you stated how you will judge whether it has been completed or not?
Achievable
Is it within your capabilities to complete?
Are there sufficient resources available to enable this to happen?
Have you relied on someone else or some other
thing to occur before you can complete the objective?
Can the objective be completed at all?
Realistic
Is it possible for you to perform the objective?
How sensible is the objective in the current business context?
How does it fit into your overall pattern of work?
Timely
Is there a deadline?
Is it feasible to meet this deadline?
Is it appropriate to do this work now?
Are there review dates?
Table 4.1: SMART Objectives [33]
b) Work Breakdown Structure (WBS)
The WBS is a view into the project which shows what work the project encompasses. It is a tool which helps to easily communicate the work and processes involved to execute the project. The Project Manager and project team use the WBS to develop the project schedule, resource requirements and costs. There are many ways you can present the WBS for your project. Regarding to team management the WBS will help to divide the project into manageable tasks which will assigned later to suitable team member[29].
How to Create a Work Breakdown Structure
Creating a work breakdown structure (WBS) helps you be both comprehensive and specific when managing a project: Thinking in detail is critical when planning your project, but you also need to consider the big picture. If you fail to identify a major part of your project’s work, you won’t have the chance to detail it. A work breakdown structure is key.
The diagram here shows that the entire project, represented as a Level 1 component, can be subdivided into Level 2 components, and some or all Level 2 components can be subdivided into Level 3 components.
You can continue to subdivide all the components in the same manner until you reach a point at which you think the components you defined are sufficiently detailed for planning and management purposes. At this point, you now have Level “n” components, where n is the number of the lowest-level component in a particular WBS branch. Level “n” components are called work packages.
Figure4.2: Work breakdown structure and, the hierarchy of a project [35]
c) Job Needs Analysis
The managing ofany work needs to determine what work needs to be done. Job analysis is a key part of this need.Job analysis concentrates on what job holders are expected to do. It provides the basis for a job description, which in turn influences decisions taken on recruitment, training, performance appraisal and reward systems[36].
What is contained in a job analysis?
A job analysis would typically contain:
Job purpose
What is the job meant to do - and how does this related to other parts of the business?
Job content
Duties and responsibilities
Accountabilities
What results / outputs is the job holder responsible for?
Performance criteria
How will the job holder's performance be measured?
Resource requirements
E.g. equipment, location
Table 4.2: Job Analysis [36]
How is a job analysis carried out?
Several techniques should be used to complete an effective job analysis:
• Research business documents - e.g. procedures manuals
• Ask relevant managers about the requirements and purpose of the job; what are the key activities; what relationships does the job have with other posts. Develop a comprehensive profile through these discussions
• Interview the existing job holder (if the job already exists) -e.g. ask store managers in retail stores and build a profile from asking those who actually do the job
• Observe the job holders to see what they really do
The key information that needs to be collected includes:
• Job title
• Main duties and tasks
• Targets and performance standards that the job holder is required to achieve
• The amount of supervision that is normally given / freedom of decision-making in the job
• Skills and/or qualifications needed for the job (including personal skills)