background preloader

Development Methodology

Facebook Twitter

Refactoring

Approaches. DSDM. Scrum. Practices. Using Spikes. The XP practice of ‘spiking’ has been around for a while but there isn’t a whole lot written about it. Why Spike? The XP site states that the purpose of a spike is “to figure out answers to tough technical or design problems”. Spikes are considered useful when a more accurate time (and cost) estimate is required for an upcoming piece of work.

Unsurprisingly the practice of spiking is frequently viewed as a method for improving planning accuracy, but it’s got more to offer: An aid to design Design sessions can be difficult to focus. Expand knowledge Pulling in information from the outside world, searching for similar problems and the solutions used to tackle them exposes the team to new ways of thinking, new techniques and new technologies.

Generate ideas Often the effort involved in figuring out potential solutions generates new understanding and insight that can be applied to other areas of how we work and the systems we create. Prevent stalling Safely cover more ground Avoid expensive mistakes.

Project Inception

User Stories. Retrospectives. Lean Enterprise Academy - Home. Methods. Outside-In Software Development. BDD. TDD. Feature Injection: three steps to success. Feature Injection is a business analysis process framework that allows teams to exploit the value of the traditional business analysis techniques in projects involving frequent iterative deliveries, such as the ones implemented using agile and lean processes. It focuses test-driven-development and behaviour-driven-development on delivering business value and ensures that a team only builds features and projects that deliver value, avoiding the wastes of scope creep and just-in-case code.

This article is a high level introduction of Feature Injection and related techniques. We explain the key elements of the framework and support them with a realistic example. To keep the article relatively short, we also provide references for further investigation instead of going into details of individual tools and techniques. Why should you care about Feature Injection? Three steps of Feature Injection Feature Injection was discovered through practice rather than designed as a process. Hunt the value. SOLID (object-oriented design) In computer programming, SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is a mnemonic acronym introduced by Michael Feathers for the "first five principles" named by Robert C. Martin[1][2] in the early 2000s[3] that stands for five basic principles of object-oriented programming and design.

The principles when applied together intend to make it more likely that a programmer will create a system that is easy to maintain and extend over time.[3] The principles of SOLID are guidelines that can be applied while working on software to remove code smells by causing the programmer to refactor the software's source code until it is both legible and extensible. It is part of an overall strategy of agile and adaptive programming.[3] GRASP (object-oriented design) General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, consists of guidelines for assigning responsibility to classes and objects in object-oriented design.

Larman states that "the critical design tool for software development is a mind well educated in design principles. It is not the UML or any other technology. " Thus, GRASP is really a mental toolset, a learning aid to help in the design of object-oriented software. The Controller pattern assigns the responsibility of dealing with system events to a non-UI class that represents the overall system or a use case scenario. A Controller object is a non-user interface object responsible for receiving or handling a system event.

A use case controller should be used to deal with all system events of a use case, and may be used for more than one use case (for instance, for use cases Create User and Delete User, one can have a single UserController, instead of two separate use case controllers). Agile Modeling (AM) Home Page: Effective Practices for Modeling and Documentation. Xplor/impediments/100Impediments.pdf. Www.netobjectives.com/files/anti-patterns-table.pdf. Agile.