background preloader

Programming Methodologies & Paradigms

Facebook Twitter

Team TIBET(tm) Software prototyping. Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed.

Software prototyping

It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing. A prototype typically simulates only a few aspects of, and may be completely different from, the final product. Prototyping has several benefits: The software designer and implementer can get valuable feedback from the users early in the project. Prototype JavaScript Framework: Class-style OO, Ajax, and more. Waterfall model. The unmodified "waterfall model".

Waterfall model

Progress flows from the top to the bottom, like a cascading waterfall. Rapid application development. Rapid Application Development (RAD) Model Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping.

Rapid application development

The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. Object-oriented programming. Overview[edit] Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object".

Object-oriented programming

An object has state (data) and behavior (code). Objects correspond to things found in the real world. 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] Philippe Kruchten, an experienced Rational technical representative was tasked with heading up the original RUP team. This journey began with the creation of the Rational Objectory Process (ROP) in 1996, when Rational acquired the Objectory Process that had been written by Ivar Jacobson and company. This was renamed Rational Unified Process (RUP) in subsequent releases, in part to align the name with that of the Unified Modeling Language. 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] Incremental software development methods trace back to 1957.[6] In 1974, E. The Agile Manifesto[edit] Agile Chronicles. This entry is about what processes I came from, my definition of the Agile/Scrum process, and how stress has been spread out throughout the project vs. at the end.

Agile Chronicles

Skip Intro Preface. The Backlog. Caveats I continually abuse 2 terms below, Backlog and Sprint.

The Backlog

Sprints don’t have to be 2 weeks, but for the sake of simplicity, I assume they are. Also, Backlogs contain user stories, not requirements or features. However, I assume for the sake of this article your features are already formed into user stories. Finally, I assume that once I capture a requirement, it’s thrown into the Backlog. Technical Debt. This article will discuss what Technical Debt is from a Flash/Flex developer perspective, how it negatively affects my Scrum projects, and what are some of the prescribed ways to prevent it.

Technical Debt

Nothing ground breaking here folks, just corroboration that TD IS a major problem, and not even Scrum is immune. What is Technical Debt? Martin Fowler has a good summary about what Technical Debt is. Here are 2 quotes from his wiki: You have a piece of functionality that you need to add to your system. Git-r-done vs. doing it right. Another quote which describes the metaphor: …doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. He goes on to mention that unlike money, you cannot effectively measure technical debt. Signs of Technical Debt There are various signs of Technical Debt. System fragility examples include when you move a login button, the entire login form doesn’t work.

Another is when you fix a bug. 3 times. Pullback & Reassess Done? 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. Trying to find a new Scrum/Agile project management tool, using. Tackle. Agile Chronicles.