background preloader

Development

Facebook Twitter

IBM Rational Unified Process. The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.[1] RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs.

IBM Rational Unified Process

RUP is a specific implementation of the Unified Process. History[edit] Combining the experience base of companies led to the articulation of six best practices for modern software engineering: Develop iteratively, with risk as the primary iteration driver[2]Manage requirementsEmploy a component-based architectureModel software visuallyContinuously verify qualityControl changes a tailorable process that guided developmenttools that automated the application of that processservices that accelerated adoption of both the process and the tools.

Dual Vee Model. The Dual Vee Model builds on the V-Model to cleanly depict the complexity associated with designing and developing systems.[1][2][3] In systems engineering it defines a uniform procedure for product or project development.

Dual Vee Model

The model depicts concurrent development of a system’s architecture as one Vee with each entity of that architecture as another Vee that intersects the architecture Vee. This clearly shows interactions and sequences in developing a complex system and a system of systems. Background[edit] Waterfall Model[edit] The unmodified "waterfall model". Spiral model. The spiral model is a risk-driven process model generator for software projects.

Spiral model

Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping. 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.

Each sprint is started by a planning meeting. What is monolithic development in software development. Monolithic solutions are putting as many features as possible in one big application or suite of applications.

What is monolithic development in software development

It is the opposite of "best of breed". Monolithic approaches to software development tend to come from very large corporations because it requires complex development teams with project managers, coders, testers, business analysts, etc. The monolithic applications are usually sold to customers with lots of money in their budget for software. Monolithic development is rarely open in its architecture because it does not intend to integrate with outside applications except in specific instances such as commerce data exchange.

The APIs in monolithic development are not conducive to replace entire modules in one implementation with a better module written by another company. Kanban (development) This article is about the process management and improvement method.

Kanban (development)

For the lean manufacturing process, see Kanban. Kanban in the context of software development can mean a visual process management system that tells what to produce, when to produce it, and how much to produce inspired by the Toyota Production System[1] and Lean manufacturing.[2] The name 'Kanban' originates from Japanese[看板], and translates roughly as "signboard" or "billboard".

It was formulated by David J. Anderson[3][4] as an approach to incremental, evolutionary process and systems change for organizations. Start with existing process The Kanban method does not prescribe a specific set of roles or process steps. Agree to pursue incremental, evolutionary change The organization (or team) must agree that continuous, incremental and evolutionary change is the way to make system improvements and make them stick. Respect the current process, roles, responsibilities and titles Leadership at all levels 1. 2. 3. 4.

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.