• Ei tuloksia

3 Current State Analysis

3.3 Case Project 2

The Case Project 2 of this study is AP Team located in Finland and India. In this subsec-tion the current state analysis of the team is being discussed. The data has been collected

22

and analyzed using qualitative techniques such as interviews, group discussion and ob-servation of documents and activities. The findings are documented in Appendix 2 and 4.

The current state analysis is based on Implementation Review 3 (IR3).

Like previous team, this team also uses agile process (Scrum). The team is capable and mature in few practice areas but needs to improve in some other practice areas. The strengths and weaknesses of the team are being discussed in the following paragraphs.

The team has made some improvements in RDM and PLAN. The team uses a tool (Con-fluence) to store vital information such as integration testing process, Dev, Integration and Release environment details, master links to all processes. Also, coding standards and guidelines are used in writing source code and stored in confluence page. Clarification or queries related to requirements are stored in confluence with details of the query, re-sponse, points discussed, and any subsequent decision taken. It ensures that all neces-sary information is captured to remove ambiguity and provide deeper understanding of requirements. The team is able to do sprint planning and task creation with time estima-tion correctly. Hence in such cases the team does not require much improvement.

But the team still need to show improvements in some other practice areas such as RDM, EST, TS, PR, MPM and RSK. Effort estimation is not done correctly for few tasks. That’s why it may not be possible to identify significant delay in deliveries and take timely correc-tive actions. Requirements specification and Technical specification review comments are not captured and tracked to closure properly which do not ensure that all review com-ments are tracked to closure. Requirecom-ments should be written in some tool and linked to test cases. There is no evidence of inference drawn from KPI dashboard to identify areas of improvement. The improvement actions discussed during daily standup have not been tracked properly. So, it may not be ensured that performance objectives are met, and all actions are tracked to closure. Retrospectives are conducted on a regular frequency, however mechanism to capture focused action items towards process improvements needs to be strengthened. There is no evidence of structured risk handling, although few risks are identified during Quarter planning and weekly progress meetings. This may not ensure appropriate handling of risks which may in turn impact the releases. There is not efficient mechanism or use of appropriate tool to do peer review of code or deliverables.

There should be use of tool for this activity to enhance PR practice area. This will help better code quality and team efficiency.

23 3.4 Case Project 3

The Case Project 3 discusses current state analysis of KCE Group Team located in Fland. The data has been collected and analyzed using qualitative techniques such as in-terviews, group discussion and observation of documents and activities. The findings are documented in Appendix 3 and 4. The current state analysis has been performed based on Implementation Review 3 (IR3).

This team follows agile practice (Scrum). The current state analysis of this team shows capability and maturity in certain specific PAs but expecting to improve in some other PAs.

Hence the team has been advised to improve its weaknesses to achieve CMMI level 3.

The strengths and weaknesses of the team are being discussed as follows.

The team shows improvement in the area of PLAN. Sprint planning is done properly using presentations, prioritizing tasks, breaking stories into smaller parts, detailing features and defects, and complying with the requirements of the release. This provides more clarity to scrum team on the goals to achieve and get the team committed to its task. Developer demo meeting are conducted for knowledge sharing sessions with the team. It helps to upskill the knowledge level of the team members.

But the team needs to make much improvement in the area of EST, RDM, MPM, VV, DAR, CAR and CM. Story point estimation does not follow any standard technique e.g.

Fibonacci series. Hence, the size of the story cannot be accurately estimated. No evi-dence between user story to corresponding requirements in specific tool. This cannot en-sure consistency between the requirements and the solution. This can result in customer dissatisfaction. Requirement review comments are not formally captured. This also does not ensure that all review comments are properly closed. No traceability can be found related with capture and response of clarifications related with requirements. Inference drawn from KPI dashboard is missing. Hence, it may not be ensured that performance objectives have been met and the team has made improvement. Root cause analysis is also lacking any evidence of corrective actions. This does not ensure that the process effectiveness for the team has improved over a period of time. Action derived from root cause analysis are also not established as process improvements. Effort estimation is also not done correctly in some cases. Criteria for evaluation of alternative approaches and the selected outcomes cannot be demonstrated and henceforth probability of select-ing an optimal solution cannot be ensured for critical decisions. The tool used to store various artefacts is also not used properly. So, it may not be ensured that right version of

24

information is available on demand. Hence, the team needs to improve in these areas by practicing repeatedly.

3.5 Summary

The analysis of three case projects presents an overall picture of the organization. It has been found that these three teams as a part of the organization need to follow agile prac-tices in more consistent and cohesive manner. They need to perform activities repeatedly so that that can bring more consistency. If the organization aims to achieve CMMI level 3 then all its units need to conform to the agile values and principles. It is clear that teams are following agile practices (Scrum and Kanban). They follow scrum activities such as Sprint Planning, Backlog Grooming, Daily Scrum, Review, Demo and Retrospectives.

Teams are using Velocity or Cumulative workflow for monitoring its progress. But the cur-rent state analysis reveals another story. Most teams are not following agile practices that can be easily traced and monitored. This does not ensure that the organization can show maturity and capability to demonstrate its activity. It is very difficult to trace the compliance followed by teams. It becomes very difficult to audit the activities of the organization. It cannot be ensured that all teams of the organization are working in unison. So, it cannot be guaranteed that the organization is following any standard process for its activities.

Appendix 5 and 6 summarizes the current state analysis of the organization. In Appendix 5, the weaknesses of teams in specific PAs and its impact has been documented. Appen-dix 6 presents a gap analysis between current state and objective of CMMI implementa-tion. Appendix 5 and 6 can provide guidelines for building conceptual framework and sub-sequent actions to achieve CMMI level 3.

The objective of the organization is to implement a model that can help teams to standard-ize processes. The model should also help in integrating activities of various projects and teams. This study has used three implementation reviews but requires some more re-views and benchmarking to achieve the target. If the organization is labelled with proper model, then it can help teams to synchronize its activities as per standards. The progress up to third implementation review has underlined the fact that teams have made much progress but requires some more actions to synchronize further and achieve the objective.

It can be concluded that the decision to implement CMMI level 3 is a much-needed model in practice, but it needs efforts from teams to reach the level.

25

4 Theory

This chapter presents a holistic view on theories formulated to explain, predict, and un-derstand phenomena. In many cases theories are used to challenge and extend existing knowledge within the limits of predefined assumptions. The theoretical framework intro-duces and describes the reason of existence of research problem under study. (Swanson, 2013)

In this chapter, the researcher has collected relevant information pertaining to current state analysis from various literatures. It has been found in current state analysis that the case company being a product-centric organization is currently practising agile process and is trying to achieve process maturity and predictability by implementing CMMI model.

Hence, the researcher focuses on collecting information related with agile methodology and CMMI model. The theory presents a holistic view about agile way of working and benefits of using CMMI model in improving the way of working in the organization. In this study, the focus is on understanding the benefit of CMMI model implementation in an agile product-centric organization.

In this chapter the researcher also presents a conceptual framework that evaluates the outcome of CMMI implementation and its impact in the case company. The impact is measured in terms of enhanced agile values and principles and reduction in challenges to follow agile practices.

4.1 Understanding of Agile Processes

In this section, an overview of agile processes has been discussed. It is well known that agile processes are used in selected teams for this study. But it becomes to discuss the most important aspects of agile methodology. It is well known that agile process helps in fast and high-quality delivery of software products or services. Teams engaged in soft-ware development activity need special care and attention because of changing dynamics of software development process. Agile processes can help such organizations to adapt easily and quickly to changes. It becomes to get an understanding of existing agile pro-cesses of case company before suggesting implementation of other process model on the top of it.

4.1.1 An Overview of Agile Methodology

Agile is a set of methods and methodologies that is used by a team or organization to op-timize the implementation of process to simplify the task. The aim is to keep it simple so

26

that implementation of the process becomes easy. Agile methodology can address all the area of software engineering such as project management, software design and develop-ment and process improvedevelop-ment. Generally, this methodology consists of several practices that are streamlined and optimized to the need of business and help the business to run easy and smooth. (Stellman and Greene, 2015)

Agile can also be considered as mindset where people plan things together, work on items together, keep everybody informed and deliver output as single entity. In this pro-cess people share information with each other which helps them to make better decisions and reduces reliance on project management. Agile mindset is driven by agile values which are used as guidelines. (Stellman and Greene, 2015)

The principle focus of agile methodology is the business case all-the-time. Implementation is often driven by demand and often prioritized. Outcomes are incrementally planned and built and delivered in iterative manner. Agile projects are governed by a top-level business plan that is focused to a goal, customer specific requirements, business milestones and affordable investment funding. Scope and quality, the budget and schedule are framed as per need of business. Generally, details emerge as the project progress. Hence, it is adaptable to changing requirements. Business value accumulates as business progresses and produces desired results accordingly and iteratively. The team is often working with customers; hence they are adaptable to the changing minds of customers. (Stellman and Greene, 2015)

The agile process has three distinguished characteristics that makes it different than other processes: Emergent, Iterative and Evolutionary, and Incremental. Agile process is emer-gent because it is driven by experience, enterprise culture, and the need to be consistent with the specified protocols. It emerges from team’s analysis of the requirements and tasks. The success of agile process can be achieved by observation and reaction not by defined processes. Agile processes are iterative and evolutionary because some part of product backlog is converted into shippable products after each iteration. The design and development evolve from iteration to iteration by product experience and customer feed-back. The changes are adapted with each iteration and product becomes better in subse-quent iteration. Also process becomes better with each iteration. The nature of product can be incremental in agile processes because of continuous update of each release after certain phases. (Stellman and Greene, 2015)

In agile environment, the role of agile team members become too important. It becomes important for them to focus on certain parameters in organizational management. An

effi-27

cient agile practitioner should focus on customers, communications, outcomes, people, and innovation and technical excellence. These characteristics of an efficient agile team are being discussed in the following Table. (Goodpasture, 2016)

Actions Description

Customers’ needs The team should focus on the need of customers. Customers should be involved in project on continuous and real-time man-ner. The project team should adjust as per need of customers changing requirements.

Communications and Collaborations

There should be open communication and collaboration within team. Mostly face-to-face discussion and interaction is pre-ferred over documentation

Outcomes The focus of agile teams should be on results rather than pro-cess and activities. It is considered that value is earned with shipment of products which can be used by customers

People Motivation and Inspiration

Motivation and inspiration of people is the focus of agile pro-cess. There should be an environment where team members can motivate and inspire each other which results in high-performance.

Innovation and Tech-nical Excellence

There should an environment for creativity, innovation and technical excellence in the team. This will help a team to ac-complish the task, complete project successfully and generate products that have distinct functionalities.

Table 7. Characteristics of an Agile Team. (Goodpasture, 2016)

4.1.2 Agile Values and Principles

It is imperative that agile team should follow basic values and principles prescribed in Ag-ile Manifesto. If a team follows these values and principles correctly then the product de-livery becomes easy and fast. The success of agile process is often measured in terms of adherence to agile values and principles. The Agile Manifesto proposes four values and twelve principles as explained follows. (Stellman and Greene, 2015; Manfield, 2014)

Agile Values Description Team should prefer individuals

and interactions over process-es and tools

It is considered that people respond to business needs and drive development process. If the change is driven by process or tool, then the team will be less responsive

28

to changes and less likely to meet customer’s require-ments. Hence, the team should use communication to distinguish people with processes.

Team should deliver working software rather follow compre-hensive documentation

Generally huge amount is time is spent over documen-tation. It causes delay in development. Agile does not completely eliminate documentation but put emphasis on working software and necessary documentation.

Team should focus on cus-tomer collaboration rather con-tract negotiation

In case of contract negotiation, customer is involved before and after development process. Also contract negotiation takes a long time to finalize things before actual development process start. But Agile process requires customers to be involved in development pro-cess which helps the team to meet the criteria of cus-tomer.

Team should respond to changes rather following plans

Agile process accepts the change and ready to accom-modate them. It helps the team to deliver as per cus-tomer requirements. Agile process is more suitable to meet changing customer requirements which in contrast to following rigid plans.

Tables 8. The Four Values of Agile Manifesto (Eby, 2016)

S.N. Principles Outcomes If Followed 1 Favors customer satisfaction

through early and continuous software delivery

Customers are happier when they receive working software at regular intervals rather than waiting for releases at some intervals.

2 Accommodates changing re-quirements throughout the de-velopment process

Helps in avoiding delays when a requirement or feature request changes.

3 Favors frequent delivery of working software

Teams following sprint activities delivers working software at regular intervals.

4 Favors collaboration between the businesspeople and devel-opers throughout the project

Better decisions can be made when the busi-ness and technical team are aligned.

5 Expects support, trust, and mo-tivation of people involved

Motivated teams are more likely to deliver their best work than unhappy teams.

6 Enable face-to-face interactions Better Communication in co-located

devel-29

between people opment teams.

7 Working software is the primary measure of progress

Delivering functional software to the customer can ensure the progress of the project.

8 Support a consistent develop-ment pace

Teams follows a repeatable and maintainable speed at which they deliver working software.

9 Attention to technical detail and design enhances agility

The right skills and good design help the team to maintain the pace, constant improvement and sustenance to change.

10 Simplicity in following process and achieving objectives

Teams should develop just enough to get the job done. Not overdoing things

11 Self-organizing teams that can encourage better design and requirements development

Skilled and motivated team can help in better decision-making, ownership, communication and sharing ideas to deliver quality products.

12 Regular reflections on how to become more effective

Self-improvement, process improvement, advancing skills, and techniques help team to work efficiently.

Table 9. Twelve Principles of Agile Manifesto (Eby, 2016)

4.1.3 SCRUM: An Important Agile Practice

SCRUM is such an agile process that can help a team to use above-mentioned agile val-ues and principles in software development and delivery. It can help the team to work with other business stakeholders e.g. customers, businesspeople and engage them in every stage of software development process. This practice helps the team to become innova-tive and adaptable to changes. This practice helps in reducing defects, making operation lean, eliminating wastes and developing a culture of innovation and productivity. It is an iterative and incremental agile framework that is used in software projects development. In this framework the team works as a unit. It helps a self-organized development team to by using face-to-face or online communication within team. In this process, a small team works cohesively for 2-4 weeks’ time period over a specified duration. This period is called a Sprint. The main pillars of SCRUM are transparency, inspection and adaptation.

SCRUM requires constant inspection of status and adaptation to changes. Inspection helps in assessing the situation and comparing it with the goal. Transparency helps in progressing towards achieving goal in iterative and incremental manner by developing features and functionality in piecewise manner. (Stellman and Greene, 2015; Manfield,

SCRUM requires constant inspection of status and adaptation to changes. Inspection helps in assessing the situation and comparing it with the goal. Transparency helps in progressing towards achieving goal in iterative and incremental manner by developing features and functionality in piecewise manner. (Stellman and Greene, 2015; Manfield,