background preloader

Lean software development

Lean software development
Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System,[1] a pro-lean subculture is emerging from within the Agile community. Origin[edit] The term lean software development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck.[2] The book presents the traditional lean principles in a modified form, as well as a set of 22 tools and compares the tools to agile practices. Lean principles[edit] Lean development can be summarized by seven principles, very close in concept to lean manufacturing principles: Eliminate waste[edit] In order to eliminate waste, one should be able to recognize it. A value stream mapping technique is used to identify waste. Amplify learning[edit] Software development is a continuous learning process with the additional challenge of development teams and end product sizes. Decide as late as possible[edit]

Agile software development Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing,[1] cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.[2] Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being 'Agile'. The Manifesto for Agile Software Development,[3] also known as the Agile Manifesto, was first proclaimed in 2001, after "agile methodology" was originally introduced in the late 1980s and early 1990s. The manifesto came out of the DSDM Consortium in 1994, although its roots go back to the mid 1980s at DuPont and texts by James Martin[4] and James Kerr et al.[5] History[edit] Incremental software development methods trace back to 1957.[6] In 1974, E. The Agile Manifesto[edit] Agile principles[edit]

Lean forklaret for sjuskehoveder - Kommunikationsforum Lean er et begreb du lige så godt kan forholde dig til. For det komme rogså til dig på et tidspunkt. Her er en stribe artikler og links om lean (klik på fx artikler i feltet for at få listen): Lean på kforum.dk & her er en tidligere artikel, der giver dig overblik over emnet på 10 minutter: Begrebet lean er opfundet af forskerne Jim Womack og Daniel Jones. Forbedringer på 50 % Det er 40 år siden, Toyota begyndte at arbejde med at trimme virksomheden. De fem principper i lean Lean blev i første omgang udviklet i Toyotas industriproduktion som fem grundlæggende principper. Forstå, hvad der skaber værdi for kunderne og se den værdikæde, hvormed råvaren tilføres værdi frem til, at kunden får dækket sit behov. Husmetaforen De fem principper er generelle for lean. De ni trin i leanhuset Når man skal indføre lean i sin organisation, skal man ifølge forfatterne følge de ni trin. Trin 1: Organiser opgaverne For det første er det vigtigt, at man organiserer opgaverne. Trin 2: Overtag styringen 7. 8.

Unified Process The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). Other examples are OpenUP and Agile Unified Process. Profile of a typical project showing the relative sizes of the four phases of the Unified Process. Overview[edit] The Unified Process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. The name Unified Process as opposed to Rational Unified Process is generally used to describe the generic process, including those elements which are common to most refinements. In 2012 the Disciplined Agile Delivery framework was released, a hybrid framework that adopts and extends strategies from Unified Process, Scrum, XP, and other methods. Unified Process Characteristics[edit] Iterative and Incremental[edit] Risk Focused[edit]

An ideal case (part 1 in the series including 1, 2, 3, 4) Let’s imagine an ideal scenario for software development. In this scenario, there are some users who have real needs that you can identify. Further, some of these users are paying customers who will gladly give you money if you can deliver value to them. You can express their needs as a set of criteria to be satisfied, and these criteria can be measured. Your customers bring you their business because: not only do you promise to identify what they want and build them a solution, you also promise to deliver a solution quickly. The flow of information is something like: latent demand -> characterized demand -> value-adding design -> production -> deployed solution …and your goal is to have smooth and continuous flow through this process, gently accelerating for all eternity. That is only a very high level description. As information flows through the system, we must have some representation of it: …or… what does the user want?

Capability Maturity Model Integration Un article de Wikipédia, l'encyclopédie libre. CMMI, sigle de Capability Maturity Model + Integration, est un modèle de référence, un ensemble structuré de bonnes pratiques, destiné à appréhender, évaluer et améliorer les activités des entreprises d'ingénierie. CMMI a été développé par le Software Engineering Institute de l'université Carnegie-Mellon, initialement pour appréhender et mesurer la qualité des services rendus par les fournisseurs de logiciels informatiques du département de la Défense des États-Unis(DoD). Il est maintenant largement employé par les entreprises d'ingénierie informatique, les directeurs des systèmes informatiques et les industriels pour évaluer et améliorer leurs propres développements de produits[1]. Le modèle CMMI[modifier | modifier le code] CMMI est un cadre générique de processus qui se décline en trois modèles (appelés constellations) : Maturité[modifier | modifier le code] Historique[modifier | modifier le code] « Initial » (niveau de maturité 1)

Architecture orientée services Un article de Wikipédia, l'encyclopédie libre. Pour les articles homonymes, voir SOA. Ce terme est apparu au cours de la période 2000-2001[1] et concernait à l'origine essentiellement les problématiques d'interopérabilité syntaxique en relation avec les technologies d'informatique utilisées en entreprise. Cette conception a évolué pour désigner maintenant le sous-ensemble particulier d'architecture de médiation en fonction de la technologie disponible. Historique[modifier | modifier le code] Au cours de la décennie 1980-1990, la problématique de l'interopérabilité des systèmes d'information, particulièrement complexe lors de fusion ou de l'acquisition d'entreprises, a donné naissance au domaine de recherche de l'interopérabilité des données ; c'est à cette époque que l'on distingua l'interopérabilité syntaxique de l'interopérabilité sémantique des données. Les deux principales exigences fonctionnelles qui se sont dégagées au cours de cette période sont : La définition des WebServices

Model driven architecture Un article de Wikipédia, l'encyclopédie libre. L’architecture dirigée par les modèles ou MDA (pour l'anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l'OMG. C'est une variante particulière de l'ingénierie dirigée par les modèles (IDM, ou MDE pour l'anglais Model Driven Engineering). D'autres variantes de l'IDM ont été développées, par exemple par Microsoft (DSL Tools). Introduction[modifier | modifier le code] L'OMG fournit des spécifications des standards plutôt que des implémentations, le plus souvent après avoir reçu une demande de proposition (Request for Proposals). Les standards liés au MDA[modifier | modifier le code] L'approche MDA est liée à de nombreux standards tels que : CWM (Common Warehouse Metamodel)EDOC (Enterprise Distributed Object Computing)MOF (Meta-Object Facility)MOFM2T (MOF Model-to-Text language)QVTSPEM (Software Process Engineering Metamodel)UML (Unified Modeling Language)XMI (XML Metadata Interchange)etc.

Unified Modeling Language Un article de Wikipédia, l'encyclopédie libre. Pour les articles homonymes, voir UML. En informatique UML (de l'anglais Unified Modeling Language), ou Langage de modélisation unifié, est un langage de modélisation graphique à base de pictogrammes. UML est l'accomplissement de la fusion de précédents langages de modélisation objet : Booch, OMT, OOSE. UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires au bon développement d'un logiciel orienté objet. Activité d'un objet/logicielActeursProcessusSchéma de base de donnéesComposants logicielsRéutilisation de composants Les méthodes objets ont commencé à émerger au début des années 80, ces méthodes avaient pour but de remplacer les méthodes structurée et fonctionnelles, trop liés à la machine. Le nombre important de méthodes et les différences entre celles-ci, se réduisant, font reculer la technologie objet au point que Jim Rumbaugh et Grady Booch s’unissent en 1994 afin d’unifier leur travaux.

The New Methodology In the past few years there's been a blossoming of a new style of software methodology - referred to as agile methods. Alternatively characterized as an antidote to bureaucracy or a license to hack they've stirred up interest all over the software landscape. In this essay I explore the reasons for agile methods, focusing not so much on their weight but on their adaptive nature and their people-first orientation. Probably the most noticeable change to software process thinking in the last few years has been the appearance of the word 'agile'. We talk of agile software methods, of how to introduce agility into a development team, or of how to resist the impending storm of agilists determined to change well-established practices. This new movement grew out of the efforts of various people who dealt with software process in the 1990s, found them wanting, and looked for a new approach to software process. This essay was originally part of this movement. From Nothing, to Monumental, to Agile .

Lean as the solution to scale agile methodologies Agile Methodologies have already proven how efficient they are when applied on small teams to deliver software with great quality, predictability while nurturing team spirit and fostering people engagement. There are tons of literature on that very subject out there and, in 2010, Gartner predicted that by 2012 80% of software development project will be carried out using Agile methodologies. As these methodologies have proven their value and became industry standards for small projects (PMI added the PMI Agile Certified Practictioner as a new certification which says a lot about how well this methodological toolbox has been integrated into corporatica), the detractor voices became less and less audible but for one point : scalability. The official anti-agile persona (usually not comfortable with the change of culture related to the implementation of Agile methodologies) know they have a point here : how to scale agile on large projects with many teams ? The scalability conundrum

Related: