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 …
A 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
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
Posted in advanced s/w development life cycle, design pattern, framework, linux apache mysql php development, server, web development in php | Tagged: PHP, sajax | 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
A 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 PHP. …qcodo.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
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
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: PHP, php-development | 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,