Cybage ExcelShore
Transcription
Cybage ExcelShore
White Paper Cybage ExcelShore: ‘Process++’ framework— A true definition of quality and productivity Over the years, quality frameworks have evolved in the manufacturing industry. They have been subsequently imbibed by the relatively-nascent IT industry. Quality can be defined in many ways—ranging from simply matching the stated specifications to anticipating and fulfilling the stated and implied needs. Project quality management is said to focus on ensuring that the project meets the needs or expectations of the stakeholders. Some theories believe in precision (Big ‘mac’ effect!) and some in ‘fitness for use’ or ‘fit for purpose’. Realistically speaking, all of these concepts are valid, but possible or relevant only with respect to unit cost. No framework covers the concept of quality per unit cost effectively. This paper tries to find an answer to this limitation of the existing frameworks. The latest thoughts on ‘lean-6-sigma’ framework (applied to software development)’ emphasize cost reduction in an absolute sense, but fall short of defining quality with respect to a given cost (quality per unit cost). 01 Process Drivers Excelshore: Strategic Objectives operational efficiency, continuous improvement! Competitive Drivers Lean: Reduce waste, increase process speed! Differentiated Value Chain CMMi, 6-sigma: Yesterday’s milestone today’s benchmark! CMM, Agile, ITIL: Develop processes around best practices! Organizational Alignment ISO9001: Document what we do, do what we document! A CIO (or a typical client for an IT services company) would be more interested in a successful project delivery at a reasonable cost that fits the budget. The client’s definition of ‘success’ will include meeting his budget constraints along with other targets such as ‘quality (matching his specifications), ‘quality (meeting business users’ expectations)’, and ‘achieving a product in his ‘go-to-market’ time (schedule)’. Although this seems too easy from a common sense standpoint, many older frameworks do not cover this balance effectively. They lay a tremendous focus on documented evidence-based approach for achieving an absolute quality standard (CMMI or ISO). The developments in the last two to three decades have given rise to Agile methodologies such as Scrum, RAD, XP, and KANBAN and the focus on imbibing ‘lean-6-sigma’ principles from the manufacturing industry are meant to make the quality frameworks more pragmatic and oriented towards the rapidly-evolving business scenarios where perhaps change is the only constant. 02 The Journey so far Yesterday’s milestone is today’s benchmark Bottom up Lean Six Sigma PCMM CMMI level 5 ver 1.3 CMMI Level 5 ver 1.1 Quality management system /ISO 27001 Top Down Disciplined & standardized way of doing things Improve and innovate the process. Build quality around people processes Reduce waste increase process speed Time CMMI (Capability Maturity Model Integration) is a proven industry framework providing a way to manage hardware and software development from product inception through deployment and maintenance. CMMI was developed to improve the software engineering domain. It helps in developing and improving the process maturity of an organization, enabling it to meet its business goals. CMMI allows users to select one or both of the model representations to best suit their business needs. This flexibility, built into every CMMI model, supports both staged and continuous approaches for process improvement with common terminology, architecture, and appraisal methods. CMMI models provide guidance for improving processes that meet the business goals of an organization. They may also be used as frameworks for appraising the process maturity of the organization. They also help eliminate the barriers existing within an organization. 03 However, CMMI implementation requires additional resources, time, and knowledge (mind-share). It also necessitates a major change in the organizational culture. According to the newer generation of Agile practitioners, CMMI is overblown, tedious, and lackluster. The risk of red-tapism is high in CMMI, just as the risk of anarchy is tremendous in Kanban or extreme programming practices. CMMI tends to promote processes over substance, affecting the time-to-market requirements of an organization. At the same time, Agile practices, which may be good enough to deliver a quality product for now, are not mature enough to either create an organizational learning baseline useful for future estimations or to manage the human attrition factor that is so common in the software services industry. CMMI also fails to comprehend various human perspectives, along with the structural and cultural factors that are crucial for the success of any project. To some people, Agile practices are a marked improvement because these practices focus more on product and human interaction, unlike the classical (assembly-line) process models. In the scuffle between classical and modern or Agile frameworks, an adversarial attitude is depicted, which is not only irrational, but also damaging to the common goal of developing high-quality software in the shortest possible time. By selecting appropriate techniques to conquer specific challenges, we can work with a successful mix of frameworks and processes, with the highest possible return on investment. Let’s concentrate on the ‘common goal of developing the highest quality of software in the shortest possible time, and at the lowest possible cost’. We all know that Agile philosophy focuses on client satisfaction via early, frequent, and continuous delivery of relevant and working software. The objective is to welcome changing requirements and harness change for the client’s competitive advantage. Business users, analysts, and developers must work together daily and working software deliveries, which is a measure of progress, should be on a shorter time scale. 04 Take a look at a sample of typical Agile Process work flow Typical Agile Process e & Co de Iteration Pro Test & Validate Temptation to prioritise new features over iterating previous iteration’s problems Requirements g Ima duct R elease Temptation to release before it’s right Agile says: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Agile is a type of software development that is based on increments and iteration. Now, this seems very good with experienced team members and very flat organizations. How does a dynamic IT services industry truly implement Agile within its more vertical framework and achieve ‘compliance on scale’ also, which is a prime need to drive thousands of very young software professionals? Someone who knows these frameworks will say that, Agile, by design, is highly flexible and can hence be shaped into a CMMI-compliant software development process 05 without changing the underlying philosophy of the Agile Manifesto. However, ‘compliance on scale’ remains a problem to be solved. Also, as we add to the flexibility, Agile projects tend to become difficult to predict, from timelines to budgets. As life becomes ‘Agile’, it also becomes a bit ambiguous. Agile Scrum is one of the leading causes of Scope Creep. Without a definite end date, the project management stakeholders are tempted to keep demanding new functionalities. With a mutual trust environment, this is fine and achievable. However, in the client-vendor scenario, an objective measurement of success is almost impossible within an Agile framework. ‘Are the team members committed or otherwise? Has the project completed successfully or otherwise?’ are difficult questions to answer. Attrition or project changes are common in the service industry. If any of the team members leave during a sprint, it can have a huge adverse impact on the sprint’s success. A critic of the Agile methodology states that it doesn’t have enough control and results in undocumented changes and chaos. Scrum addresses parallelization by introducing user stories and enabling every team member to edit every line of code that the team is responsible for. It also describes how to serialize the work using backlog and sprints. However, it does not work well for larger teams (more than 8-10 developers) and it has no solutions for parallelization of the work between multiple departments, controlling work over various phases, and load balancing. Agile does not have enough control over the management of multiple teams. In our pursuit of a perfect framework, to find the answers to the aforementioned questions, we now come to Scalable Agile. It is an Agile software development process that refers to the ability to manage large projects with multiple teams. It is a much-debated subject. Many believe that Agile development cannot be sustained when a project is large or multiple teams are involved. It’s faster. It’s continuous delivery. It enables releases ‘on demand’ by having multiple ‘on-demand’ environments and accepting changes when they are ready. This process is scalable to an indefinite number of contributing individuals and teams by eliminating centralized iteration planning and centralized testing. Now, this opens the door to many types of contributors, not just Scrum teams, or 06 people trained in a particular process. Established Scrum teams can grab a sprint backlog, and work as contributors with no process change. If we are bringing in c ontributors we don’t know, do we control them? Are we managing them? They are managing themselves in unknown ways! Is our project in control? Let’s say we control the backlog, so we control what people work on. We also control the code changes and other changes that we accept. So, we can have an effective control over what goes in the product. Still, we need an answer to the question from the service industry management standpoint—how do we manage these contributors who are required for project success but are not a part of the team? How does the organization structure respond to the competing project needs? A developer’s opinion on the debate depends also on his or her approach to Agile. If you truly believe in Agile, you probably think it’s scalable! The Cybage Agile processes are truly scalable because they are supported by an organizational framework which not only covers software development and project management processes, but also manages the contributions coming from organizational supporting teams via a predictable IT-enabled framework. Moving on from a more standard implementation of Agile, that is Scrum, to a more agile framework, that is Kanban: In this approach, the process—from definition of a task to its delivery to the client—is to pull work from a row. Release date is a matter of choice and doesn’t affect the work stream. Kanban is more flexible and focuses even more on a continuous delivery. By delivering small portions of a project continuously to the client, teams have multiple prospects to manage future iterations with the updated requirements. Kanban revolves around productivity and efficiency, two concepts that also tie back to the reduction of waste. The Kanban system focuses on the reduction of waste in all its forms—over-production, unnecessary motion, defects, over-processing, and waiting. When waste is removed from a process, project productivity goes up. When work is properly re-prioritized as needed and communicated using the Kanban cards (or the IT 07 representation as in some ALM tools) the project resource doesn’t have to question what he or she should work on next. Kanban is definitely less effective in shared-resource situations. Kanban in itself doesn’t remove variability, so unpredictable and lengthy downtimes could provide poor quality of the system in terms of scrap and rework and this could also affect the functionality. It can be rigid to product mix changes and small or random orders do not fit the model well. The advantage of Lean methodology is the increase in efficiency of the development process by eliminating waste. This increases the process of software development, which in turn, decreases project time and cost. The Lean method helps in delivering the product early. That is, your development team can deliver more functionality in less time, hence allowing more projects to be delivered. In Kanban and Lean methodologies, team collaboration and affirmation is very important to the project’s success. These methods believe in less micromanagement and more empowerment. Developers do influence the decisions of how a particular functionality is to be achieved. Even with the usage of ‘lean-6-sigma’ principles, the project is highly dependent on the cohesiveness of the team and individual commitment of the team members. Achievement in the project depends on how well-organized the team members are and how sound their technical skills are. CMMI, ‘lean-6-sigma’ , or Agile methodologies, and many other process frameworks or models still fall short in areas such as loss of a key resource from a team or resources who are misfits in their teams although they do have some relevant but different skills. 08 My Interpretation Risk of Anarchy Need/ Assumption: developers are senior, mature and motivated! Increasing from Waterfall to KANBAN Focus on finishing the product / features as required by user Requires more trust Benefit: More flexibility and responsiveness to business KANBAN AgileSCRUM KANBAN Iterative, Spiral AgileSCRUM Waterfall Iterative, Spiral Waterfall Risk of Bureaucracy More top down Focus on estimations Decreasing from Waterfall to KANBAN More visibility, better projections for senior stakeholders Better organization wide data Benefit: More structure and processes increase predictability Cybage has combined the proven best practices of the classical models such as CMMI and modern set of Agile techniques along with its well-integrated model which facilitates human resource management in projects and improves the productivity and quality per unit cost for its clients. This model of IT-enabled intelligent business decisions, known as the ‘ExcelShore’ model of operational excellence, enables senior managers to make data-driven decisions; thus improving efficiency at every level. 09 Combined with Cybage-specific SDLC and project management processes, ExcelShore ensures delivery excellence in a holistic way. This combination covers the capability and maturity of people along with the capability and maturity of processes. It is a great human capital management ecosystem which also embodies itself into higher productivity for clients via well-managed human hierarchies. It acts as a uniform system handling optimal resource allocation for the right opportunities, overcoming the barriers of various business units. Now, let’s look at another classical quality theory posing a challenge to the software services industry. Business Challenges Operational Excellence Doing right for the first time Defects Lower maintenance cost Time re ho lS ce Ex Productivity Schedule Adherence Doing it efficiently Doing it on-time every time Lower development cost Lower Schedule overrun cost cle y c ife nt L on eme i t ca nag i l p a Ap M 10 When we talk about Cost of Quality, it consists of Cost of Prevention, Cost of Appraisal (reviews), and Cost of Rework or Failure (internal and external). Increase in quality is supposed to save cost also due to lesser defects and lesser reworks or failures. This also results in increased productivity, aiding on-time deliveries, increased client satisfaction, and overall increased return on investment. While the classic quality theory that quality is free or quality pays for itself is generally true, as we invest more and more upfront, both the costs, Cost of Prevention and Cost of Production, increase. Beyond a point, the costs of appraisal and rework don’t decrease proportionately; and soon these costs stop decreasing. The challenge is more especially in software development where capability and maturity of people is as important as the capability and maturity of processes. In fact, it is very difficult to practically separate the Cost of Production from the Cost of Prevention (which is supposed to be a part of COQ—Cost of Quality). For instance, when you have a senior architect working on an architecture or design review, or a business analyst spending time in requirements elicitation with the client and/or training the team in the domain or the PM and the team spending time in establishing simple ALM (Application Life Cycle Management) practices and developing proficiency in a tool, or simply undergoing soft skills training such as ‘accent and voice neutralization’ or ‘cross-cultural sensitivity’; how do we classify this cost? It is clear that these investments will typically result in less rework, less failures, and higher client satisfaction. But how does one attribute these costs to a software project? (Specifically, does it get accounted in COP or COQ?) From the aforementioned analysis, it must be clear by now that it is imperative to look at the quality and productivity in a holistic way, especially from the angle of quality per unit cost. The Cybage process framework is closely interacting with the ExcelShore framework for overall strategic decision-making. This holds good especially from the human capital management standpoint thereby enabling project practitioners to look at quality and productivity from this entirely new angle. The Cybage Project Health Check is a set of well-integrated models that are meant to facilitate project management and improve the software development process simultaneously. Knowing one’s project is a basic requirement. 11 That said, the Cybage KYP – PHC initiative ensures that delivery managers, project managers, and teams understand and appreciate the project in the same way as the multiple points of contacts or project stakeholders understand. A project becomes successful not only by striking the right balance of scope, quality, and schedule with reference to cost (resources), but also by keeping the stakeholders happy! This feat is possible only when you understand the key success factors in line with the needs of the stakeholders of your project. Unique Direction of Process Department Process Review System ‘Evidence Based Compliance’ - focus of SQA’s going forward Wider coverage, fewer questions! Cybage also has its own unique task management system, which not only includes standard task management workflows and time management portal, but also an innovative advisory service to project managers for task allocation. While this service includes standard features of scheduling, it mainly focuses on matching the varying skill levels of individual members of a team with the relative complexity of tasks. Our ExcelShore framework enables this organization-wide experience and skill level matrix. This integrated framework also allows every project to have a systematic knowledge management planning, human shadowing techniques, and excellent risk mitigation strategies with system-suggested ideal project hierarchies guiding the project managers. Thus, the Cybage value proposition is not only in the true implementation of scalable Agile practices and best-in-class CMMI processes, but also through its own unique set of IT systems guiding the projects in human capital management, effective task management, risk management, and knowledge management. 12 Recently many scholars, practitioners, and quality gurus have started to talk about productivity as a function of human talent, focus, dedication, and knowledge or skill level of teams rather than the classical definition based on only process view. In software or any knowledge industry, productivity largely depends on the level of human capital invested. Traditionally, quality frameworks have decided to bypass this important aspect and focus purely on ‘process–driven’ calculation of productivity. Cybage can calculate productivity in the true sense of the word, capturing both the ‘art’ and ‘science’ of it, giving true ‘value for money’ to its clients. Cybage Software Pvt. Ltd. [An SEI-CMMI Level 5 & ISO 27001 Company] HQ: Cybage Towers, Survey No 13A/ 1+2+3/1, Vadgaon Sheri, Pune 411014 | Tel: 91 20 6604 4700 | Fax: 91 20 6604 1701 Pune | Hyderabad | Gandhinagar | Seattle | New Jersey | San Francisco | Atlanta | Austin | London | Frankfurt | Amsterdam | Sydney www.cybage.com © 2014. Cybage Software Ltd. All rights reserved. 13