Explore Open Source Technology

Lets Explore Power of Open Source Technology PHP, MYSQL, APACHE, LINUX(LAMP)

Archive for the 'advanced s/w development life cycle' Category

advanced s/w development life cycle

Sajax PHP

Posted by openstech on January 24, 2008

AJAX and PHP Tutorial: Building Responsive Web Applications

Enhance the user experience of your PHP website using AJAX with this practical and friendly tutorial! This book is the most efficient resource you can get www.cristiandarie.ro/ajax-php/ - 22k - Cached - Similar pages

Ajax Toolkit for PHP - SAJAX - Simple Ajax Toolkit by ModernMethod

An open source XMLHTTPRequest toolkit with PHP, Perl, and Python backends.www.modernmethod.com/sajax/ - 11k - Cached - Similar pages

PHPit - Totally PHP » Ajax & PHP without using the XmlHttpRequest 

PHP file which looks something like this:. <?php. $html = ‘<b>This content came from ourAjax Engine</b>’; ?> div = document.getElementById(’contentdiv’) www.phpit.net/article/ajax-php-without-xmlhttprequest/ - 21k - Cached - Similar pages

PHPBuilder.com, the best resource for PHP tutorials, templates 

XMLHttpRequest and AJAX for PHP programmers. James Kassemi. Introduction:. Although the concept isn’t entirely new, XMLHttpRequest technology is implemented www.phpbuilder.com/columns/kassemi20050606.php3 - 63k - Cached - Similar pages

ajax php

This tutorial explains how to use Ajax with PHP and introduces the Simple Ajax Toolkit (Sajax), a tool written in PHP that lets you integrate server-side www.ajaxtopics.com/ajaxphp.html - 18k - Cached - Similar pages

” » Creating a MySQL connection with PHP/AJAX” by John Wiseman

In this tutorial I will explain how to open a [tag]mysql[/tag] database connection using PHPand the all popular [tag]AJAX[/tag].www.johnwiseman.ca/blogging/tutorials/ creating-a-mysql-connection-with-phpajax/ - 61k -Cached - Similar pages

Developing PHP the Ajax way, Part 1: Getting started

Asynchronous JavaScript and XML (Ajax), is arguably the most popular new Web technology. In this two-part ‘Developing PHP the Ajax way’ series, www.ibm.com/developerworks/xml/library/os-php-rad1/ - 65k - Cached - Similar pages

Tutorials Round-Up: Ajax, CSS, PHP and More | Tutorials | Smashing 

Coding or designing a page, it’s always nice to have some basic templates you can quickly modify adapt your needs. However, at least once know, www.smashingmagazine.com/2007/01/26/ tutorials-round-up-ajax-css-javascript-php-mysql-and-more/ - 138k - Cached - Similar pages

PHP and AJAX MySQL Database Example

The stateChanged() and GetXmlHttpObject functions are the same as in the PHP AJAXSuggest chapter, you can go to there for an explanation of those. www.w3schools.com/php/php_ajax_database.asp - 31k - Cached - Similar pages

AjaxAC - Open-source PHP framework for creating AJAX / JavaScript 

Object oriented Web-application framework offering to build Ajax applications. [Open source, Apache licence]ajax.zervaas.com.au/ - 12k - Cached - Similar pages

Posted in advanced s/w development life cycle, design pattern, framework, linux apache mysql php development, server, web development in php | Tagged: , | 1 Comment »

Important link for PHP Development

Posted by openstech on January 23, 2008

PHP: Hypertext Preprocessor

The PHP development team would like to announce the immediate …. The PHPdevelopment team hereby announces that support for PHP 4 will continue until the www.php.net/ - 42k - Cached - Similar pages

PHP Programs, PHP Tools, PHP Design, PHP Development

PHP Programs, PHP Tools, PHP Design, PHP Development.www.devarticles.com/c/b/PHP/ - 75k - Cached - Similar pages

CakePHP: the rapid development php framework. Home

Official website. Offers a manual for beginners and links towards the last version.www.cakephp.org/ - 32k - Cached - Similar pages

PHP Developer Center - Yahoo! Developer Network

PHP Builder : A popular site with many PHP tutorials and code samples. Sitepoint : Makers of fine books and tutorials on PHP and other web development tools developer.yahoo.com/php/ - 21k - Cached - Similar pages

Eclipse PHP Integrated Development Environment

The PHP IDE project will deliver a PHP Integrated Development Environment framework for the Eclipse platform. This project will encompass the development www.eclipse.org/proposals/php-ide/ - 17k - Cached - Similar pages

Development Infrastructure for PHP

The PHP development environment that I have devised was created by taking a set of sample programs which I had assembled for a previous language and www.tonymarston.net/php-mysql/infrastructure.html - 94k - Cached - Similar pages

ONLamp.com — Simplify PHP Development with WASP

Brian Fioca shows off WASP, a PHP framework for building maintainable database-backed websites.www.onlamp.com/pub/a/php/2006/01/19/wasp_intro.html - 28k - Cached - Similar pages

PHP Development & Production Software - PHP Tutorials Training 

Zend provides PHP programming platform, PHP development & Production tools, and PHPTraining & Certification to enable delivery of business-critical www.zend.com/ - 26k - Cached - Similar pages

Home - PHP Development

Free web scripts (PHP, JavaScript, etc), internet-related software, web development.www.php-development.ru/ - 23k - Cached - Similar pages

Qcodo - PHP Development Framework

The Qcodo Development Framework is an open-source PHP 5 framework that focuses on freeing developers from unnecessary tedious, mundane coding. qcodo.com/ - 11k - Cached - Similar pages

PHP: Credits

PHP Group. Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans,  PHP Data Objects Layer, Wez Furlong, Marcus Boerger, Sterling Hughes, www.php.net/credits.php - 16k - Cached - Similar pages

PHP Help, PHP Programming, PHP Code, PHP Tutorials

Formerly referred to as “Personal Home Page Tools,” PHP Hypertext Preprocessor is an open Terracotta simplifies application architecture and development www.devshed.com/c/b/PHP/ - 69k - Cached - Similar pages

Eclipse PHP

Developed by Zend and IBM, an IDE which focuses on the development of complex PHP-driven web applications. The Eclipse site also offers IDEs for other other www.eclipse.org/pdt/ - 35k - Cached - Similar pages

Zend Studio - The Leading PHP IDE from the PHP Experts - Zend.com

Zend Studio is the only Integrated Development Environment (IDE) available for  Zend Studio is integrated with Zend Platform’s powerful PHP intelligence www.zend.com/en/products/studio/ - 20k - Cached - Similar pages

PHPBuilder.com, the best resource for PHP tutorials, templates 

PHPBuilder.com, the resource for PHP tutorials, templates, PHP manuals, content management systems, scripts, classes and more for the PHP developer.www.phpbuilder.com/ - 68k - Cached - Similar pages

PHP Oracle Web Development: Data processing, Security, Caching 

A practical guide to combining the power, performance, scalability, and reliability of the Oracle Database with the ease of use, short development time, www.packtpub.com/ PHP-Oracle-Web-Development-XML-Ajax-Open-Source/book - 29k -Cached - Similar pages

PHP Development Studio v2.0 - JoomlAtWork

PHP Development Studio is a pre-packaged Eclipse version aimed at the PHP / MySQL developer. This version is packed with even more features than its www.joomlatwork.com/products/free_ products_for_joomla/php_development_studio_2.0.html - 19k - Cached - Similar pages

Amazon.com: PHP and MySQL Web Development, Second Edition: Books 

Amazon.com: PHP and MySQL Web Development, Second Edition: Books: Luke Welling,Laura Thomson by Luke Welling,Laura Thomson.www.amazon.com/ PHP-MySQL-Web-Development-Second/dp/067232525X - 209k -Cached - Similar pages

Amazon.com: Dreamweaver MX: PHP Web Development: Books: Bruno 

Amazon.com: Dreamweaver MX: PHP Web Development: Books: Bruno Mairlot,Gareth Downes-Powell,Tim Green by Bruno Mairlot,Gareth Downes-Powell,Tim Green.www.amazon.com/ Dreamweaver-MX-PHP-Web-Development/dp/1904151116 - 221k -Cached - Similar pagesMore results from www.amazon.com »

FirePHP - Firebug Extension for AJAX Development

FirePHP adds a ‘Server’ tab to each request in the Firebug Net and Console panels displaying data from the FirePHP-Data response header.www.firephp.org/ - 18k - Cached - Similar pages
 

PDT (former PHP IDE) Project Downloads

PDT project downloads downloads from the PDT (former PHP IDE) project. On this page you can find the latest builds for the PDT project. download.eclipse.org/tools/pdt/downloads/ - 16k - Cached - Similar pages

PHP on TRAX - PHP Framework :: Rapid Development Made Easy

PHPonTRAX is a model view controller php framework built in PHP and PEAR.www.phpontrax.com/ - 10k - Cached - Similar pages

Qcodo - PHP Development Framework

“Accelerated MySQL/PHP Application Development Using a Code Generation Framework” The “Qcodo Development Framework” is an open-source framework for PHPqcodo.com/demos/ - 15k - Cached - Similar pages

Enterprise PHP development - eZ components

Welcome! 0/34. Free and Open Source software Conference 2006. 2006/06/25. Tobias Schlitt - <ts@ez.no>talks.php.net/show/ezc-intro-froscon - 9k - Cached - Similar pages

ONLamp.com — Three-Tier Development with PHP 5

Luis Yordano Cruz demonstrates three-tier PHP application design with PEAR::DB_DataObject, Smarty, and PHP 5.www.onlamp.com/pub/a/php/2004/12/09/three_tier.html - 34k - Cached - Similar pages

PHP: Using CVS for PHP Development

All PHP development is done through a distributed revision control system called CVS. This helps us track changes and it makes it possible for people us3.php.net/cvs-php.php - 13k - Cached - Similar pages

No Nonsense XML Web Development With PHP - SitePoint Books

Learn how to start using XML to build intelligent ‘Future-Proof’ PHP applications today.www.sitepoint.com/books/xml1/ - 31k - Cached - Similar pages

Michael Kimsal’s weblog » Continued sad state of PHP development

Kimsal has posted some more thoughts on what he calls the “sad state of PHPdevelopment” pointing out some of the practices […] fosterburgess.com/kimsal/?p=390 - 74k - Cached - Similar pages

PHP Development India

PHP Development India. EzineArticles. Retrieved January 20, 2008,  PHP-Development-India&id=879027 (accessed January 20, 2008) ezinearticles.com/?PHP-Development-India&id=879027 - 41k - Cached - Similar pages

Web Development Company Conkurent, LLC > custom php programming 

A software development company providing offshore IT outsourcing services and specializing in custom web applications development, e-commerce solutions, conkurent.com/ - 14k - Cached - Similar pages

 PHP In Action: A Look At Modern PHP Development | Vancouver PHP Group

If you’re happy with your PHP development skills, but haven’t been exploring the evolution ofdevelopment in recent years, you might want to check out this vancouver.php.net/node/576 - 12k - Cached - Similar pages

Php MySQL Web Development - PHP MySQL Programming - Website 

php mysql web development company (MidasSoft) has team of professional php mysql web developers, programmers experienced in php mysql web application www.midassoft.biz/web-design-india-services/ php-mysql-development-india.php - 37k -Cached - Similar pages

PHP IDE - NuSphere PhpED - Complete PHP IDE for PHP Development.

PhpED - PHP IDE integrated development environment for developing web sites using PHP, HTML, Perl, JScript and CSS that combines a comfortable editor, www.nusphere.com/ - 35k - Cached - Similar pages

Getting Started with Eclipse PHP Development Tools (PDT) | 2 

Getting Started with Eclipse PHP Development Tools (PDT). posted August 22nd, 2007 at 9:17 pm by chad. Eclipse Splash Screen Are you ready to take a step 2tbsp.com/content/getting_started_ eclipse_php_development_tools_(pdt) - 55k -Cached - Similar pages

Amazon.co.uk: PHP and MySQL Web Development, 3rd Edition: Books 

Amazon.co.uk: PHP and MySQL Web Development, 3rd Edition: Books: Luke Welling,Laura Thomson by Luke Welling,Laura Thomson.www.amazon.co.uk/ PHP-MySQL-Web-Development-3rd/dp/0672326728 - 154k -Cached - Similar pages

Amazon.co.uk: PHP and MySQL Web Development, 2nd edition: Books 

Amazon.co.uk: PHP and MySQL Web Development, 2nd edition: Books: Luke Welling,Laura Thomson by Luke Welling,Laura Thomson.www.amazon.co.uk/ PHP-MySQL-Web-Development-2nd/dp/067232525X - 139k -Cached - Similar pages

Oxyscripts - PHP Development, tutorials, articles, news 

Oxyscripts.com is a PHP development resource site with PHP tutorials, PHP news, PHParticles, PHP forums.www.oxyscripts.com/ - 49k - Cached - Similar pages

API for CakePHP : The PHP Rapid Development Framework :: version 

The API · 1.1.19.6305 · 1.2.0.6311-beta · About CakePHP · Donate · CakePHP · Bakery · API · Manual · The Show · Forge · Trac api.cakephp.org/ - 5k - Cached - Similar pages

Adobe - Developer Center : Setting up a PHP development 

This article describes how to set up a development environment on a Windows or a Macintosh computer that lets you build PHP web applications with Adobe® www.adobe.com/devnet/dreamweaver/ articles/setting_up_php.html - 27k -Cached - Similar pages

PHP Development Tools (PDT) 1.0 Overview | Eclipse Live

This webinar will include a short history about the PHP Development Tools framework project, some statistical information (downloads, committers, live.eclipse.org/node/352 - 18k - Cached - Similar pages
Adobe Flex and PHPwww.Flex.org/PHP      See What Developers Build with Flex and PHP. Try Flex Free for 30 Days!

TemplateTamer - php template development tool

TemplateTamer is php development tool for template based web applications.www.templatetamer.com/ - 6k - Cached - Similar pages

PHPBuilder.com, the best resource for PHP tutorials, templates 

Cross-Platform Database PHP Development. Daniel Williams. PHP developers often encounter instances when their PHP scripts must adhere to a variety of www.phpbuilder.com/columns/daniel_williams20070621.php3 - 49k - Cached - Similar pages

Carson Workshops: Building Professional sites with PHP by Nick 

Professional PHP Development. by Nick Nettleton, developer of DropSend. This practical, hands-on workshop is aimed at helping PHP and other language www.carsonworkshops.com/dev/php/24-25AUG2006.html - 16k - Cached - Similar pages

VCL for PHP :: PHP Web Application Development Framework

Below you will find more info, depending if you want to use the framework or you want to collaborate on the development. VCL for PHP is an Open Source www.qadram.com/vcl4php/ - 12k - Cached - Similar pages

DevNetwork Forums • Index page

Tutorials on PHP, databases and other aspects of web development. Before posting a question, check in here to see whether there’s a tutorial that covers www.devnetwork.net/ - 40k - Cached - Similar pages

trajic - PHP and web architect, web development job or freelancing 

php/sql/javascript freelancer, web architect. should you need a thorough, open-minded, precise and hard-working expert for web development, look no further. www.demoscene.hu/trajic/ ?target=phpwebdevelopment&lang=en - 17k -Cached - Similar pages

Open Directory - Computers: Programming: Languages: PHP 

PHP4HS - The spot for people using HomeSite for PHP or ASP development to find help and to exchange add-on extensions, resources, help, links, tips, www.dmoz.org/Computers/Programming/ Languages/PHP/Development_Tools/ - 19k -Cached - Similar pages

Setting up a PHP 5 development environment with Apache 2 and MySQL 

PHP 5.0 has finally arrived. Here’s a step-by-step guide to setting up a cutting-edge Webdevelopment environment with PHP 5.0, Apache 2.0, and MySQL 4.1.3.search.techrepublic.com.com/ 404.php?page=5100-6374-5290304 - 45k -Cached - Similar pages

ASP4HS: ASP/PHP/.Net/etc Development Extensions for HomeSite

ASP4Hs/PHP4Hs is the spot for people using HomeSite for web development in ASP (Active Server Pages), ASP.Net, PHP, XML, XSLT, Tridion CMS or other wilk4.com/asp4hs/ - 18k - Cached - Similar pages

SEO Experts, Web Design & PHP Development Services Company Canada 

We are Experienced Ethical SEOs who combine SEO & PHP Development to design dynamic search engine optimized linux solutions. We are located in Victoria, www.quenet.org/ - 9k - Cached - Similar pages
 

 

Posted in Web Services, advanced s/w development life cycle, design pattern, framework, linux apache mysql php development, server, web development in php | Tagged: , | 2 Comments »

SCRUM Development Process

Posted by openstech on December 24, 2007

 

1

SCRUM Development Process

Ken Schwaber

Advanced Development Methods

131 Middlesex Turnpike Burlington, MA 01803

email virman@aol.com Fax: (617) 272-0555

_______________________________________________________________________

ABSTRACT. The stated, accepted philosophy for systems development is that the

development process is a well understood approach that can be planned, estimated, and

successfully completed. This has proven incorrect in practice. SCRUM assumes that the

systems development process is an unpredictable, complicated process that can only be

roughly described as an overall progression. SCRUM defines the systems development

process as a loose set of activities that combines known, workable tools and techniques

with the best that a development team can devise to build systems. Since these activities

are loose, controls to manage the process and inherent risk are used. SCRUM is an

enhancement of the commonly used iterative/incremental object-oriented development

cycle.

KEY WORDS: SCRUM SEI Capability-Maturity-Model Process Empirical

________________________________________________________________________

1. Introduction

In this paper we introduce a development process, SCRUM, that treats major portions of

systems development as a controlled black box. We relate this to complexity theory to

show why this approach increases flexibility and produces a system that is responsive to

both initial and additional requirements discovered during the ongoing development.

Numerous approaches to improving the systems development process have been tried.

Each has been touted as providing “significant productivity improvements.” All have

failed to produce dramatic improvements.1 As Grady Booch noted, “We often call this

condition the software crisis, but frankly, a malady that has carried on this long must be

called normal.”2

Concepts from industrial process control are applied to the field of systems development

in this paper. Industrial process control defines processes as either “theoretical” (fully

defined) or “empirical” (black box). When a black box process is treated as a fully

1 Brooks, F.P. “No silver bullet—essence and accidents of software engineering.” Computer 20:4:10-19,

April 1987.

2 Object Oriented Analysis and Design with Applications, p. 8, Grady Booch, The Benjamin/Cummings

Publishing Company, Inc., 1994

2

defined process, unpredictable results occur. A further treatment of this is provided in

Appendix 1.

A significant number of systems development processes are not completely defined, but

are treated as though they are. Unpredictability without control results. The SCRUM

approach treats these systems development processes as a controlled black box.

Variants of the SCRUM approach for new product development with high performance

small teams was first observed by Takeuchi and Nonaka3 at Fuji-Xerox, Canon, Honda,

NEC, Epson, Brother, 3M, Xerox, and Hewlett-Packard. A similar approach applied to

software development at Borland was observed by Coplien4 to be the highest productivity

C++ development project ever documented. More recently, a refined approach to the

SCRUM process has been applied by Sutherland5 to Smalltalk development and

Schwaber6 to Delphi development.

The SCRUM approach is used at leading edge software companies with significant

success. Industry analysts believe SCRUM may be appropriate for other software

development organizations to realize the expected benefits from Object Oriented

techniques and tools.7

2. Overview

Our new approach to systems development is based on both defined and black box

process management. We call the approach the SCRUM methodology (see Takeuchi and

Nonaka, 1986), after the SCRUM in rugby — a tight formation of forwards who bind

together in specific positions when a scrumdown is called.8

As will be discussed later, SCRUM is an enhancement of the iterative and incremental

approach to delivering object-oriented software initially documented by Pittman9 and

later expanded upon by Booch.10 It may use the same roles for project staff as outlined by

Graham11, for example, but it organizes and manages the team process in a new way.

3 Takeuchi, Hirotaka and Nonaka, Ikujiro. January-February 1986. “The New New Product Development

Game.” Harvard Business Review.

4 Coplien, J. “Borland Software Craftsmanship: A New Look at Process, Quality and Productivity.”

Proceedings of the 5th Annual Borland International Conference, June 5, 1994. Orlando, Florida.

5 Sutherland, Jeff. ScrumWeb Home Page: A Guide to the SCRUM Development Process. Jeff Sutherland’s

Object Technology Web Page, 1996 <http://www.tiac.net/users/jsuth/scrum/index.html>

6 Schwaber, Ken. “Controlled Chaos: Living on the Edge.” American Programmer, April 1996.

7 Aberdeen Group. Upgrading To ISV Methodology For Enterprise Application Development . Product

Viewpoint 8:17, December 7, 1995.

8 Gartner, Lisa. The Rookie Primer. Radcliffe Rugby Football Club, 1996

<http://vail.al.arizona.edu/rugby/rad/rookie_primer.html>

9 Pittman, Matthew. Lessons Learned in Managing Object-Oriented Development. IEEE Software,

January, 1993, pp. 43-53.

10 Booch, Grady. Object Solutions: Managing the Object-Oriented Project . Addison-Wesley, 1995.

11 Graham, Ian. Migrating to Object Technology. Addison-Wesley, 1994.

3

SCRUM is a management, enhancement and maintenance methodology for an existing

system or production prototype. It assumes existing design and code which is virtually

always the case in object-oriented development due to the presence of class libraries.

SCRUM will address totally new or re-engineered legacy systems development efforts at

a later date.

Software product releases are planned based on the following variables :

· Customer requirements - how the current system needs enhancing.

· Time pressure - what time frame is required to gain a competitive advantage.

· Competition - what is the competition up to, and what is required to best them.

· Quality - What is the required quality, given the above variables.

· Vision - what changes are required at this stage to fulfill the system vision.

· Resource - what staff and funding are available.

These variables form the initial plan for a software enhancement project. However, these

variables also change during the project. A successful development methodology must

take these variables and their evolutionary nature into account.

3. Current Development Situation

Systems are developed in a highly complicated environment. The complexity is both

within the development environment and the target environment. For example, when the

air traffic control system development was initiated, three-tier client server systems and

airline deregulation did not have to be considered. Yet, these environmental and

technical changes occurred during the project and had to be taken into account within the

system being built.

Environmental variables include:

· Availability of skilled professionals - the newer the technology, tools, methods, and

domain, the smaller the pool of skilled professionals.

· Stability of implementation technology - the newer the technology, the lower the

stability and the greater the need to balance the technology with other technologies

and manual procedures.

· Stability and power of tools - the newer and more powerful the development tool, the

smaller the pool of skilled professionals and the more unstable the tool functionality.

· Effectiveness of methods - what modeling, testing, version control, and design

methods are going to be used, and how effective, efficient, and proven are they.

4

· Domain expertise - are skilled professionals available in the various domains,

including business and technology.

· New features - what entirely new features are going to be added, and to what degree

will these fit with current functionality.

· Methodology - does the overall approach to developing systems and using the

selected methods promote flexibility, or is this a rigid, detailed approach that restricts

flexibility.

· Competition - what will the competition do during the project? What new

functionality will be announced or released.

· Time/Funding - how much time is available initially and as the project progresses?

How much development funding is available.

· Other variables - any other factors that must be responded to during the project to

ensure the success of the resulting, delivered system, such as reorganizations.

The overall complexity is a function of these variables :

complexity = f(development environment variables + target environment variables)

where these variables may and do change during the course of the project.

As the complexity of the project increases, the greater the need for controls, particularly

the ongoing assessment and response to risk.

Attempts to model this development process have encountered the following problems:

· Many of the development processes are uncontrolled. The inputs and outputs are

either unknown or loosely defined, the transformation process lacks necessary

precision, and quality control is not defined. Testing processes are an example.

 

· An unknown number of development processes that bridge known but uncontrolled

processes are unidentified. Detailed processes to ensure that a logical model contains

adequate content to lead to a successful physical model is one such process.

 

· Environmental input (requirements) can only be taken into consideration at the

beginning of the process. Complex change management procedures are required

thereafter.

Attempts to impose a micro, or detailed, methodology model on the development process

have not worked because the development process is still not completely defined. Acting

5

as though the development process is defined and predictable results in being unprepared

for the unpredictable results.

Although the development process is incompletely defined and dynamic, numerous

organizations have developed detailed development methodologies that include current

development methods (structured, OO, etc.). The Waterfall methodology was one of the

first such defined system development processes. A picture of the Waterfall

methodology is shown in Figure 1.

Figure 1 : Waterfall Methodology

Although the waterfall approach mandates the use of undefined processes, its linear

nature has been its largest problem. The process does not define how to respond to

unexpected output from any of the intermediate process.

Barry Boehm12 introduced a Spiral methodology to address this issue. Each of the

waterfall phases is ended with a risk assessment and prototyping activity. The Spiral

methodology is shown in Figure 2.

The Spiral methodology “peels the onion”, progressing through “layers” of the

development process. A prototype lets users determine if the project is on track, should

be sent back to prior phases, or should be ended. However, the phases and phase

processes are still linear. Requirements work is still performed in the requirements phase,

design work in the design phase, and so forth, with each of the phases consisting of

linear, explicitly defined processes.

12 Boehm, B.W. 1985. “A Spiral Model of Software Development and Enhancement,” from Proceedings of

an International Workshop on Software Process and Software Environments, Coto de Caza, Trabuco

Canyon, California, March 27-29, 1985.

Planning

Analysis Design Development Implement

6

Figure 2 : Spiral Methodology

The Iterative methodology improves on the Spiral methodology. Each iteration consists

of all of the standard Waterfall phases, but each iteration only addresses one set of parsed

functionality. The overall project deliverable has been partitioned into prioritized

subsystems, each with clean interfaces. Using this approach, one can test the feasibility

of a subsystem and technology in the initial iterations. Further iterations can add

resources to the project while ramping up the speed of delivery. This approach improves

cost control, ensures delivery of systems (albeit subsystems), and improves overall

flexibility. However, the Iterative approach still expects that the underlying development

processes are defined and linear. See Figure 3.

Prototype

Evaluate alternatives;

Identify, resolve risks

Determine objectives,

alternatives,

constraints

Plan next phases

Concept

Requirements

Design

Implement

Develop next level product

7

Figure 3 : Iterative Methodology

Given the complex environment and the increased reliance on new “state-of-the-art”

systems, the risk endured by system development projects has increased and the search

for mechanisms to handle this risk has intensified.

One can argue that current methodologies are better than nothing. Each improves on the

other. The Spiral and Iterative approaches implant formal risk control mechanisms for

dealing with unpredictable results. A framework for development is provided.

However, each rests on the fallacy that the development processes are defined,

predictable processes. But unpredictable results occur throughout the projects. The rigor

implied in the development processes stifles the flexibility needed to cope with the

unpredictable results and respond to a complex environment.

Despite their widespread presence in the development community, our experience in the

industry shows that people do not use the methodologies except as a macro process map,

or for their detailed method descriptions.

The following graph demonstrates the current development environment, using any of the

Waterfall, Spiral or Iterative processes. As the complexity of the variables increase even

to a moderate level, the probability of a “successful” project quickly diminishes (a

successful project is defined as a system that is useful when delivered). See Figure 4.

System Test

Module Test

Coding Detail Design

Preliminary

Design

Requirements

Analysis

8

Figure 4

Defined Process Risk/Complexity Graph

4. SCRUM Methodology

The system development process is complicated and complex. Therefore maximum

flexibility and appropriate control is required. Evolution favors those that operate with

maximum exposure to environmental change and have optimised for flexible adaptation

to change. Evolution deselects those who have insulated themselves from environmental

change and have minimized chaos and complexity in their environment.

An approach is needed that enables development teams to operate adaptively within a

complex environment using imprecise processes. Complex system development occurs

under rapidly changing circumstances. Producing orderly systems under chaotic

circumstances requires maximum flexibility. The closer the development team operates

to the edge of chaos, while still maintaining order, the more competitive and useful the

resulting system will be. Langton has modeled this effect in computer simulations13 and

his work has provided this as a fundamental theorem in complexity theory.

13 Langton, Christopher. Artificial Life. In Artificial Life, Volume VI: SFI Studies in the Sciences of

Complexity (Ed. C. Langton) Addison-Wesley, 1988.

0.9

0.1

probability(Success) 0.5

Low Medium High

Complexity

Inflexible response to

unpredictability (internal & external)

causes sharp drop in p(Success)

as complexity increases

9

Methodology may well be the most important factor in determining the probability of

success. Methodologies that encourage and support flexibility have a high degree of

tolerance for changes in other variables. With these methodologies, the development

process is regarded as unpredictable at the onset, and control mechanisms are put in place

to manage the unpredictability.

If we graph the relationship between environmental complexity and probability of

success with a flexible methodology that incorporates controls and risk management, the

tolerance for change is more durable. See Figure 5.

Figure 5 - Risk/Complexity Comparison Graph

Figures 4 and 5 reflect software development experiences at ADM, Easel, VMARK,

Borland and virtually every other developer of “packaged” software. These organizations

have embraced risk and environmental complexity during development projects.

Increased product impact, successful projects, and productivity gains were experienced.

The best possible software is built.

Waterfall and Spiral methodologies set the context and deliverable definition at the start

of a project. SCRUM and Iterative methodologies initially plan the context and broad

deliverable definition, and then evolve the deliverable during the project based on the

environment. SCRUM acknowledges that the underlying development processes are

incompletely defined and uses control mechanisms to improve flexibility.

0.9

0.1

probability(Success) 0.5

Low Medium High

Complexity

Edge

of

Chaos

Increased

probability(success))

Flexible response to

unpredictability improves

p(Success) to Complexity

relationship

10

The primary difference between the defined (waterfall, spiral and iterative) and empirical

(SCRUM) approach is that The SCRUM approach assumes that the analysis, design, and

development processes in the Sprint phase are unpredictable. A control mechanism is

used to manage the unpredictability and control the risk. Flexibility, responsiveness, and

reliability are the results. See Figure 6.

SCRUM Methodology

Planning &

System

Architecture

Sprints

Closure

Develop Wrap

Review

Adjust

Figure 6 : SCRUM Methodology

Characteristics of SCRUM methodology are :

· The first and last phases (Planning and Closure) consist of defined processes, where

all processes, inputs and outputs are well defined. The knowledge of how to do these

processes is explicit. The flow is linear, with some iterations in the planning phase.

· The Sprint phase is an empirical process. Many of the processes in the sprint phase

are unidentified or uncontrolled. It is treated as a black box that requires external

controls. Accordingly, controls, including risk management, are put on each iteration

of the Sprint phase to avoid chaos while maximizing flexibility.

· Sprints are nonlinear and flexible. Where available, explicit process knowledge is

used; otherwise tacit knowledge and trial and error is used to build process

knowledge. Sprints are used to evolve the final product.

· The project is open to the environment until the Closure phase. The deliverable can

be changed at any time during the Planning and Sprint phases of the project. The

project remains open to environmental complexity, including competitive, time,