460 likes | 1.13k Views
Theoretical Reflections on Agile Development Methodologies [1] & Can We Manage Agile in Traditional Project Environments ?[2]. Chandrika Seenappa 23 rd February 2015 Professor: Hossein Saiedian. Agenda [1]. Introduction Strategic T hinking Design M etaphor
E N D
Theoretical Reflections on Agile Development Methodologies [1]&Can We Manage Agile in Traditional Project Environments?[2] Chandrika Seenappa 23rd February 2015 Professor: Hossein Saiedian
Agenda [1] • Introduction • Strategic Thinking • Design Metaphor • Conceptualization of Software Development • Holographic Organization • Conclusions
Agenda [2] • Introduction • Agile - Unique Project Management Concept • Principles of Agile • Agile vs Conventional Project Management • Research • Results • Conclusions
Introduction • In the past decade, there has been much debate among software developers over contradictory perspectives of the traditional plan-driven approaches vs. the agile philosophy of software development • Identify theoretical and conceptual support for the emerging epistemology (a branch of philosophy that investigates the origin, nature, methods, and limits of human knowledge) • Enriches our understanding of the agile phenomenon by examining its theoretical roots • Software development is a complex undertaking beset with many problems, called “wicked problems” termed by Horst Rittel, an urban planner who pioneered the concept of issue-based information systems to facilitate the formulation and clarification of complex administrative decisions
Wicked Problem • Problem are unique and difficult to formulate • Solutions evolve continually as the designer gains a greater appreciation of what must be solved • Need to satisfy multiple conflicting viewpoints makes it difficult to devise a test to determine the effectiveness of solutions • “Argumentation” critical for problem solving
Wicked Problem Characteristics • There is no definitive formulation of a wicked problem • Wicked problems have no stopping rule • Solutions to wicked problems are not true-or-false, but good or bad • There is no immediate and no ultimate test of a solution to a wicked problem • Every solution to a wicked problem is a "one-shot operation"; because there is no opportunity to learn by trial and error, every attempt counts significantly • Wicked problems do not have an enumerable set of potential solutions, nor is there a well-described set of permissible operations that may be incorporated into the plan • Every wicked problem is essentially unique • Every wicked problem can be considered to be a symptom of another problem • The existence of a discrepancy representing a wicked problem can be explained in numerous ways. The choice of explanation determines the nature of the problem's resolution • The social planner has no right to be wrong
Strategies to Tackle Wicked Problems • Cannot be tackled by the traditional approach in which problems are defined, analyzed and solved in sequential steps • No clear problem definition of wicked problems • In a paper published in 2000, Roberts identifies the following strategies to cope with wicked problems • Authoritative : Tame wicked problems by vesting the responsibility for solving the problems in the hands of a few people • Competitive: Attempt to solve wicked problems by pitting opposing points of view against each other, requiring parties to come up with their preferred solutions. Advantage is that different solutions can be weighed up against each other and the best one chosen. • Collaborative: Aim to engage all stakeholders in order to find the best possible solution for all stakeholders
Design Concepts in Architecture • Chris Alexander, a professor of architecture at the University of California, Berkeley, pioneered in the 1970s work on patterns in architectural design • Inspired development of software design patterns • Design patterns are proven design experiences and best practices for solving problems across domains • Early model conceived design as an instrumental process dictated by technical rationality • Aimed to identify the optimal means to a predictable end by employing scientific methods used in problem solving in the engineering disciplines • Reduced design to a linear sequence of well-defined steps, with analysis preceding synthesis • Key activity in analysis- systematic problem decomposition, hierarchical top-down functional decomposition
Design Concepts Development • As early as 1963, key aspects of design are • Continuous feedback among phases, communication, and iterative cycles of analysis and synthesis • Argumentation involving stakeholders became an essential part of the design process inspired by wicked problem • Need to integrate multiple viewpoints did not explicitly include the concept of learning • Model of design process viewed design as a learning process in which the solution evolves through repetitive cycles of problem formulation, solution evaluation, and documentation • Designers use their own personal expanding knowledge to continually reframe the problem and devise an appropriate solution
Insights of Nature of Design • Complexity • Problems are recognized as wicked, or not easily tractable • Emergence • Design conceived as a repetitive emergent process interlacing argumentation, introspective reflection, learning, and continual problem and solution refinement • Integrative • Integration of multiple perspectives is critical to problem resolution
Strategic Thinking • The dominant paradigm for strategy formulation is a formal process to identify the best fit between an organization and its environment • Predicated on the assumption of a foreseeable and unchanging world • Mintzberg, conceptualizes strategy formulation as a craft, likening strategists to craftspeople whose minds work in concert with their hands as they learn and improvise in shaping an artifact • Effective strategies evolve through a learning process involving skills, experience, and insights gained through the dynamic interplay among formulation, implementation, and critical reflection • Strategy is an emergent process in which strategy formulation and implementation are inseparable
Design Metaphor • Design metaphor incorporates learning and acknowledges the connectedness of knowing and doing (thought and action), the interwoven nature of means and ends, and the need to reconcile multiple worldviews. • Approach is “substantially rational” facilitating learning and adaptation through the constant questioning of assumptions • Constantly reexamining assumptions and evaluating discrepancies against existing norms and values fosters double-loop learning , which is “generative” by increasing both learning and the ability to innovate and use change to one’s advantage • The traditional school of design is more in the spirit of single-loop learning or “adaptive learning” , in which routine problem solving parameters and preset rules, norms, and contrasts determine goal-seeking behavior
Conceptualization of Software Development • Trend in management thinking, moving from a deterministic/mechanistic view of problem solving to a dynamic process, characterized by iterative cycles and the active involvement of all stakeholders, is reflected in software development • Agile methods are people-centric, recognizing the value competent people and their relationships bring to software development • Focuses on providing high customer satisfaction through three principles: quick delivery of quality software; active participation of concerned stakeholders; and creating and leveraging changemethods • Important features of this approach include evolutionary delivery through short iterative cycles of planning, action, reflection intense collaboration, self-organizing teams, and a high degree of developer discretion
Holographic Organization • Holographic organization draws its inspiration from the fact that every fragment or piece of a broken holographic film contains the information required to completely construct the image represented in the whole film • Can be accessed through any of its parts, as each one is a reflection of the whole • Agile philosophy facilitates formation of holistic teams through a culture that encourages the interchangeability of roles or jobs based on autonomy • Builds both specialized and generalized skills among members so they become multifaceted and exhibit overlapping knowledge so they can self-organize in response to emergent requirements
Holographic Organization (Cont.) • Agile practices include • Continuous code integration • Refactoring to improve design and code • Reflection workshops and stand-up meetings to determine what worked and what didn’t • Instant feedback from participating stakeholders • Agile practices facilitate double-loop learning, supporting the principle of “learning to learn”
Conclusions • Agile methods depart from the traditional orthodoxy of software development • Metaphor of design and the theory of holographic organization offer a strong theoretical basis for the conceptual foundation of agile methods • Efforts to understand the theoretical roots of software development practices by examining the evolution of design ideas in architecture, strategic management, and other disciplines are more relevant as system domains extend beyond simpler to the complex social aspects of software applications
Introduction • Agile project management is the execution of projects in a highly flexible and interactive manner, in opposite to the waterfall model • Agilehas gained much attention and controversy as a contemporary project management approach • Great benefits and advantages over traditional execution methods • Others experienced disappointments or outright failures • Results of a three-year field study into the practices of agileproject management at 37 technology-intensive companies
Introduction (Cont.) • Agile principles are applicable to most projects which are • Independent of their nature • Size or IT-orientation • Improving resource effectiveness • Project execution time • Overall project success • Large and highly complex projects • Carefully modified to fit the organizational processes and cultures of the enterprise
How did Agile Project Management Philosophy Emerge? • Up to 1980s the waterfall model was the prevailing method for project execution • Dramatic changes in the business environment • Required project management to be reengineered • Deal effectively with new challenges • Balance efficiency, speed, and quality • New technologies, in computers and communications • Created enormous opportunities and challenges • Transformed global economy into a hypercompetitive enterprise system
How did Agile Project Management Philosophy Emerge? (Cont.) • To survive and prosper project leaders had to • Deal effectively with time to-market pressures • Innovation, cost, and risks in an increasingly fast-changing global business environment • Iterative, incremental project management gained momentum in the 1990s • Norm for developing and introducing new products, systems, and services gradually replacing the traditional waterfall model • Agile plus its derivatives, such as Extreme, Lean and Guerilla project management were introduced in 2001 • Iterative lifecycle or adaptive project life cycle or change-driven methods • Facilitate change and require a high degree of ongoing stakeholder involvement
Agile - A Unique Project Management Concept • Agileis an extension of the multi-phased approach to project management • Promotes concurrent execution of tasks segments • Requires more intense and effective interaction among overlapping task teams • Need for strong cross-functional cooperation, integration and team involvement • Creates both managerial benefits and challenges the operational and strategic values
Agile - A Unique Project Management Concept (Cont.) • Wide spectrum of benefits to the enterprise • Validating functionality of work-in-progress • Better communication and information sharing among all stakeholders to total project lifecycle thinking and strategic alignment • Effective cross-functional collaboration, and full integration of the project management process with the total enterprise and its supply chain • Systematic approach to integrated project execution • Emphasizes parallel, integrated execution of project phases • Replaces the traditional linear process of serial engineering and expensive design-build-rollout rework
Principles of Agile • Customer satisfaction by rapid delivery of useful software • Welcome changing requirements, even late in development • Working software is delivered frequently • Working software is the principal measure of progress • Sustainable development, able to maintain a constant pace • Close, daily cooperation between business people and developers • Face-to-face conversation is the best form of communication (co-location) • Projects are built around motivated individuals, who should be trusted • Continuous attention to technical excellence and good design • Simplicity the art of maximizing the amount of work not done is essential • Facilitate self-organizing teams • Regular adaptation to changing circumstances
Agile vs Conventional Project Management • Agile project management relies on the iterative, incremental project execution • Involvement and collaboration of all project stakeholder groups • Top management, suppliers, partners, users and customers • Deal with changes and uncertainty by aiming for quick, short-term results, called releases • New product or service system developed in short activity cycles called sprints • Shared power and responsibility concept between product owner and scrum master
Action Research • Summarizes the last three years (2010-2013) of this investigation with focus on Agile management practices and experiences of 35 project management teams in 17 high-technology enterprises dealing with major product developments • Qualitative methods for data retrieval • Participant observation, in-depth retrospective interviewing, questionnaires • The questionnaires were personally introduced to 230 team members and 35 team leaders, yielding an overall return of 75% • The focus was on four interrelated sets of variables • Risk • Team • Team leader • Project environment
Summary of Field Sample • Projects were on information system, financial services, automotive, airplane, computer and pharmaceutical products • Three project sizes • Small medium-sized projects with 50 team members or less • Large projects with over 50 team members • Mega projects with over 1000 team members • Data evaluated via content analysis and standard statistical methods
Results • Findings of study organized into three sections • First, a simple summary of Agile usage across project categories is presented • Second, the reaction of managers to the 12 Principles of Agile is summarized and discussed with focus on benefits, challenges, limitations and performance impact of managing agile • Third, the lessons learned from this study are summarized based on effective agile management
Intensity of Agile Application on Project Type • One size does not fit all project
Experiences from Agile with Focus on twelve Agile Principles
Experiences from Agile with Focus on twelve Agile Principles (Cont.)
Agile Principles in Large Projects • To be truly agile, management process must be • Iterative, that is take several cycles to complete • Incremental, delivering the product and/or service in workable pieces • Rely on self-organizing teams • Evolve regarding its work structures and processes as needed during the project lifecycle • Difficult to realize in large projects • Require more execution formality and discipline to deal with specific complexities, contractual requirements and project interfaces • Airplane developments, advertisement campaigns, Olympic Games or aerospace missions, cannot be delivered incrementally • Hybrid approaches: Simulations, emulations, focus grouping, user-centered design and computer modeling achieve objective of early validation of deliverables and flexibility in changing requirements
Agile Challenges in Projects with Long Development Cycles • Major challenge to agile methodology is rapidly (or immediately) delivering functionality • Difficult to achieve without compromising long-range optimization of overall results
Integrating Agile Approaches into Traditional Project Systems • Featured benefitsof agile • Flexibility • Responsiveness to changing environments • Active user involvement • Iterative requirements verification • Difficult to realize in traditional or large project environments with established client relations and specific contractual procedures • One of the biggest challenges relates to process execution conflict
Challenges to Established Standards, Norms and Processes of Professional Project Management • Agile often is unworkable in projects that need to be executed to meet specific results within given time and resource constraints • Difficult in large projects and special categories of projects, such as government contracts, where the overall requirements and project scope must be established up-front and becomes the basis for performance measurements • Despite these challenges, some organizations are able to use agile at least in part or in principle, even for very large and complex projects. • Agile is not a “do as you want process” • Hard work and skillful leadership required to introduce a general process template to a specific work environment
Not all Project Activities fit Agile • Documentation, training or other logistics support not part of agile, but require major adjustment • Agile can often be adapted • As stated by a project manager responsible for implementation of large training program: “I hear people saying all the time that Agile is not meant for this kind of project. The reality is that no method will guarantee you success. You have to fine-tune it to your specific situation. I select the pieces that are appropriate for my projects. Agile gives me a framework for interacting with my user community, testing out deliverables before we go to a major training session.”
Not all Challenges are Limitations • Challenges and barriers to agile are perceptions, but not necessarily true limitations. • The culture or process is fixed and not under the control of the project manager • The process of agile is not a rigid template, but a guideline that must be adapted to a specific project situation, especially if the situation is outside the framework for which agile was originally designed for • As explained by a senior manager of a large transport system development: “Just because you're following the process doesn't mean you're doing it right. You really need to think creatively and have talented people who understand the objectives of the agile principles to adapt the ideas to work in our environment, and to do it right. If you’re not involving your team, and constantly evaluating your practices what works, what doesn't and hat needs to be fine-tuned, you're likely to fail.”
Lessons Learnt • Introduce Agile to your organization incrementally. Start with agile practices that already support existing processes and organizational cultures • Examine the various components of your project management process • for opportunities for applying Agile principles without compromising existing management processes and controls; identify compatible and incompatible assumptions, and encourage synergism between agile and traditional methods
Lessons Learnt (Cont.) • Examine customer interfaces and contracting practices, redesign procedures to support agile execution • Examine progress measurement, reviews and payment practices for realignment with agile execution • Win the hearts and minds and support of senior management, convincing them that Agile is a more effective way of executing projects leading to higher success rates and customer satisfaction • pay attention to people issues, such as empowerment, collaboration, commitment and ownership which are at the backbone of Agile and crucial to its successful practice
Conclusions • Agile has great potential for improving project management effectiveness in our ultra-competitive, fast-changing business environment • In spite of the challenges, the principles and basic philosophy of agile can be integrated into traditional project management processes • In order to be effective, change leaders must go far beyond issuing new procedures and guidelines • Each component of agile, including underlying assumptions, must be carefully examined to determine the degree of adaptability, redesigned and fine-tuned if necessary to fit into the existing management system • Companies are combining, integrating and synchronizing agile andtraditional processes to create a unique agile hybrid system which fits specific project situations, together with their people, organizational cultures and the total enterprise business environment
References • Nerur, S., & Balijepally, V. (2007). Theoretical reflections on agile development methodologies. Communications of the ACM, Vol. 50(3), pp.79-83. • Thamhain, H.J. (2014). Can We Manage Agile in Traditional Project Environments?. 2014 Proceeding of PICMET (Portland International Conference on Management of Engineering and Technology): Infrastructure and Service Integration, pp. 2497-2505.