background preloader

Methods

Facebook Twitter

Lean. Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain.

Lean

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. The Poppendiecks' involvement in the Agile software development community, including talks at several Agile conferences [3] has resulted in such concepts being more widely accepted within the Agile community. Kanban. This article is about the process management and improvement method.

Kanban

For the lean manufacturing process, see Kanban. 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.

Agile software development

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] Scrum (development) Scrum is an iterative and incremental agile software development framework for managing product development.

Scrum (development)

It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called "requirements churn"), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. Later, Schwaber with others founded the Scrum Alliance and created the Certified Scrum Master programs and its derivatives. Scrum – Beginners Guide To Scrum.

Scrum is an agile way to manage a project, usually software development.

Scrum – Beginners Guide To Scrum

Agile software development with Scrum is often perceived as a methodology; but rather than viewing Scrum as methodology, think of it as a framework for managing a process. In the agile Scrum world, instead of providing complete, detailed descriptions of how everything is to be done on a project, much of it is left up to the Scrum software development team. This is because the team will know best how to solve the problem they are presented. Extreme programming. Planning and feedback loops in extreme programming.

Extreme programming

Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,[1][2][3] it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Critics have noted several potential drawbacks,[5] including problems with unstable requirements, no documented compromises of user conflicts, and a lack of an overall design specification or document.

History[edit] Although extreme programming itself is relatively new, many of its practices have been around for some time; the methodology, after all, takes "best practices" to extreme levels. Origins[edit] The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. XP - intro. Issue & Project Tracking Software. Exploratory testing. Exploratory testing is an approach to software testing that is concisely described as simultaneous learning, test design and test execution.

Exploratory testing

Cem Kaner, who coined the term in 1983,[1] now defines exploratory testing as "a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project. "[2] While the software is being tested, the tester learns things that together with experience and creativity generates new good tests to run. Selenium - Web Browser Automation. Empathic design. Empathic design is a user-centered design approach that pays attention to the user's feelings toward a product.[1][2][3] The empathic design process is sometimes mistakenly referred to as Empathetic design.[4] Characteristics of empathic design[edit] The foundation of empathic design is observation and the goal is to identify latent customer needs in order to create products that the customers don’t even know they desire or, in some cases, solutions that customers have difficulty envisioning due to lack of familiarity with the possibilities offered by new technologies or because locked in an old mindset.

Agile Architecture: Strategies for Scaling. 1.

Agile Architecture: Strategies for Scaling

Towards Agile Architecture Architecture provides the foundation from which systems are built and an architectural model defines the vision on which your architecture is based. The scope of architecture can be that of a single application, of a family of applications, for an organization, or for an infrastructure such as the Internet that is shared by many organizations.Regardless of the scope, my experience is that you can take an agile approach to the modeling, development, and evolution of an architecture.

Here are a few ideas to get you thinking: There is nothing special about architecture. 2. Figure 1. Figure 2 depicts the agile/basic lifecycle described by the Disciplined Agile Delivery (DAD) framework. Figure 2. An alternative to this light-weight approach to initial architecture modeling, is to attempt to define your architecture completely before implementation begins. 3. Spark Innovation Through Empathic Design. Almost every company competes to some degree on the basis of continual innovation.

Spark Innovation Through Empathic Design

And to be commercially successful, new product and service ideas must, of course, meet a real—or perceived—customer need. Hence the current managerial mantras: “Get close to the customer” and “Listen to the voice of the customer.” The problem is, customers’ ability to guide the development of new products and services is limited by their experience and their ability to imagine and describe possible innovations. How can companies identify needs that customers themselves may not recognize? How can designers develop ways to meet those needs, if even in the course of extensive market research, customers never mention their desires because they assume those desires can’t be fulfilled? A set of techniques we call empathic design can help resolve those dilemmas. Developing the expertise, however, is a worthy investment. When Questions Don’t Yield Answers.

Experiences from Industry. Challenges of Doing Empathic Design: Experiences from Industry Carolien Postma, Elly Zwartkruis-Pelgrim, Elke Daemen, Jia Du Abstract Empathic design aims to build creative understanding of users’ experiences for new product development (NPD).

Experiences from Industry

In this paper, we review the literature of empathic design, and we discuss our own experiences with introducing and practicing empathic design in several NPD projects at Philips Research over the past years. Having experimented with empathic design in an industrial context, we experienced success but also encountered eight challenges that relate to discrepancies between the theory of empathic design as described in literature on the one hand, and the application of empathic design in an industrial context on the other. Full Text: PDFHTML.