DAVE'S NOTES — KANBAN, CONTINUOUS INTEGRATION/DELIVERY, & DEVOPS KANBAN. A lean, just-in-time, customer-driven, demand-based workflow project scheduling system and method of production adapted for systems and software engineering, where system and software requirements are analyzed, designed, developed, validated, and shipped one at a time in order to reduce throughput and cycle time of any individual requirement, increase end-to- end delivery speed, increase quality due to a singular focus and elimination of degenerative multitasking, reduction of bureaucratic non-value adding overhead tasks called work-in-process (WIP), the use of WIP limits to regulate, reduce, and carefully manage the amount of work flowing through the project system, and increase customer satisfaction by giving end-users what they want, at the price they want it, and at very high quality levels. (Note. Intended to eliminate large traditional and medium agile batches.) CONTINUOUS INTEGRATION. A systems and software development practice where people design, develop, test, and integrate systems and software components into a shared version control repository representing the current systems baseline dozens of times a day. Each check-in is verified by an automated build allowing teams to detect problems early. Static analyzers may be run as the code is checked in to fully automate manual code inspections. During this process, unit, module, component, system, acceptance, GUI, security, certification, and accreditation tests are run for each component as it is checked in to the repository (eliminating the need for manual testing and independent testing groups). System and software defects are detected earlier and easier by integrating frequently. Continuous integration enables teams to rapidly try new solutions and solve problems, because of frequent integrations. There is significantly less overhead, wait times, and systems debugging time when defects are discovered, allowing projects to spend more time adding value, new features, and satisfying customers. Continuous Integration is fast, easy, and inexpensive, whereas traditional projects fail for lack of its use. Data shows fast cycle times and delivery speed are correlated to frequent integrations, and the converse is true when the time between integrations is far too long. Continuous integration reduces rework times by an order of magnitude over traditional, infrequent, and often last-minute integration in the 11th hour. Project schedules and success rates are significantly greater using continuous integration. Automatic project status reporting, document generation, and delivery/deployment are enabled using continuous integration. (Note. AKA continuous regression testing). CONTINUOUS DELIVERY (1). A method of getting systems and software components released to end-users in an easy, risk- free, and quick manner. It is a set of technical principles and practices enabling rapid, iterative delivery of innovative, high quality, and value-adding system components to end-users. This is achieved through complete build, testing, and deployment automation. Development, test, and IT operations collaboration and cooperation is also key. New system functions, enhancements, and fixes are delivered in seconds, minutes, and hours vs. days, weeks, months, and years. Continuous delivery can be used on programs and projects of all sizes, including those with monolithic, large, medium, and very small system and software component baselines. CONTINUOUS DELIVERY (2). A systems and software discipline where system components are developed so they can be released into production or delivered to customers at any time. Continuous delivery allows projects to deploy system components throughout the entire system life cycle, not just the end or at infrequent release points. Ensuring system components are releasable at any time becomes a major goal, objective, and priority of project teams. Project teams ensure systems are instantly deployable, not just piling on more features for delivery at some later date. As soon as a new feature is added, enhanced, or changed, rapid automated feedback is instantly provided to all stakeholders including decision-makers, project managers, developers, and operators. Continuous delivery enables single-click, on-demand delivery of systems, components, and new baseline versions at any time. Continuous delivery goes hand-in-hand and is enabled by the use of continuous integration, where project teams develop, build, scan, test, debug, and fully-certify components one-at-a-time. Continuous delivery can be used for direct delivery to customer systems or staging and test-bed environments, where system components will be further evaluated for end-user suitability, requirements compliance, and final release when customers are ready for new system versions. CONTINUOUS DELIVERY (3). A system and software development practice to create a repeatable, disciplined, and highly- automated process for product and service delivery. Continuous delivery is based upon automated unit testing, continuous integration, and automated deployment. This enables the high-speed development, evaluation, packaging, and delivery of certified, high-quality systems and software components. These components can then be deployed to staging areas, test beds, or actual customer sites. It is a repeatable, reliable, and fast way of delivering new, enhanced, or repaired system components. It reduces risk, bureaucratic administrative overhead, and expensive manual and labor intensive effort, often called work in process. Continuous delivery is a key enabler to agile methods such as Extreme Programming, Scrum, and Open Source software development paradigms, including Lean-Kanban. However, continuous delivery is now considered a unique enterprise-level discipline replete with its own roles and responsibilities. CONTINUOUS DELIVERY GRAPHICS: http://continuousdelivery.com/wp-content/uploads/2014/02/01_CD_the_idea_low-res.jpg http://continuousdelivery.com/wp-content/uploads/2014/02/02_CD_test_strategy_low-res.jpg http://continuousdelivery.com/wp-content/uploads/2014/02/03_CD_automated_acceptance_test_low-res.jpg http://continuousdelivery.com/wp-content/uploads/2014/02/04_CD_managing_data_low-res.jpg DEVOPS. A set of emerging principles and practices that seeks to integrate systems and software development with information technology, infrastructure, operations, and maintenance teams, organizations, functions, and disciplines. Much of this involves dissolving the silos between traditional organizational functions with as much automation as possible and linking their information technology infrastructures. DevOps is not just a set of technologies, but a mindset, culture, and willingness of people, teams, projects, organizational functions, firms, suppliers, and developers to communicate, collaborate, and build an environment of trust in the best interest of enterprise and customer efficiency, effectiveness, and satisfaction. This includes a high degree of cooperation between systems and software developers with information technology infrastructure personnel such as system administrators, system operators, and a variety of other systems management professionals. It seeks to involve all of these disciplines in a single project cadence, so that systems and software developers don't simply throw ill-conceived components over-the-wall. DEVOPS INFORMATION: http://scaledagileframework.com/devops http://theagileadmin.com/what-is-devops http://dev2ops.org/2010/02/what-is-devops Email, [email protected] Business Card, http://davidfrico.com/pbcard.jpg Twitter, @dr_david_f_rico Agile Book, http://davidfrico.com/agile-book.htm Website, http://davidfrico.com LinkedIn, http://www.linkedin.com/in/davidfrico .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages1 Page
-
File Size-