Basics of Agile and Scrum as Software Development Framework

Two Rugby teams playing in Scrum position Summary:

  • Basics of Agile and its manifesto
  • Definition of Scrum
  • Scrum and its three pillars (qualities)
  • Scrum Guide and its history

Basics of Agile

Historically, Waterfall model was used in software development projects which is a sequential (non-iterative) design process. Waterfall model is a predictive method in which you need to define and plan as much as possible in advance.

On the other side, changing market conditions, evolving technology, unpredicted challenges, emerging customer requirements are leading to an understanding that some problems can not be fully understood or defined in a predictive or planned manner – accepting the need of an adaptive design process.

To find the answer of such an adaptive design process, a group 17 different independent thinkers met on February 11-13, 2001, and formed The Agile Alliance to offer a manifesto as a better way to develop projects. You can read more about Agile Manifesto at:

Here are 12 principles behind Agile Manifesto:

Note: Agile is an adaptive product development methodology. And, Scrum is a process framework to manage development (it is not a process or technique for building products) within which people can employ various process and techniques.

Definition of Scrum

Scrum is an iterative and incremental agile software development framework for developing and sustaining complex products.

As per the definition mentioned in Scrum Guide:

Scrum (n): A framework within which people can address complex, adaptive problems, while productively and creatively delivering products of the highest possible value.

Qualities of Scrum:

  • Lightweight – Little documentation of Scrum framework make it quick
  • Simple to understand – Easy, quick and less jargons make it simple to understand
  • Difficult to master – It is short and simple but that is what makes it difficult to master as people and companies are still evolving and working to understand new ways of software development

Scrum and three pillars

Scrum follows empirical process control theory, or empiricism. Empiricism mentions that knowledge comes from experience and making decisions based on what is known.

Using Scrum, below three pillars are part of  every implementation of empirical process control:

  1. Transparency
  2. Inspection
  3. Adaptation

Transparency: This pillar ensures that there is a common understanding by defining common standards to ensure significant visibility during the process. E.g. common language for communication and common definition of “DONE” to perform and accept work

Inspection: It is an important part to monitor progress and detect any variances in the process. Frequency of inspections by skilled inspectors should be reasonably planned i.e. not too many and not too less.

Adaption: Once a variance is identified by an inspector then an adjustment must be made as soon as possible to minimize further deviation.

Scrum Guide and its History

Ken Schwaber and Jeff Sutherland developed Scrum, written and provided Scrum Guide. Find latest version of Scrum guide at

Credits: This post is created to put all my notes for comprehensive understanding of Scrum. It has been adapted and edited from different sources like, Wikipedia and Management Plaza

10 Years $10 – New campaign by Packt Publishing

10 Years $10 - Packt Publishing

July 2014 marks 10 years since Packt Publishing embarked on their mission to deliver learning and information services to IT professionals. To celebrate this huge milestone, they are offering ALL of eBooks and Videos at just $10 each for 10 days until July 5th. Visit this link to learn more

If you’ve already tried a Packt title in the past, you’ll know this is a great opportunity to explore what’s new and maintain your personal and professional development. You can get ANY eBook or Video for $10 in this offer – browse all their categories at the bottom of this page.

All eBooks and Videos are $10 – Visit this link to learn more

URL Rewriting in CodeIgniter

CodeIgniter Logo

As mentioned on EllisLab website, CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. At the same time, there are few simple things which may stall beginners with this framework.

I faced a problem with URL rewriting in CodeIgniter experiment and with the help of community found a solution as well so posting it as a blog post for everyone’s help so that you don’t need to find the whole internet for this simple solution 🙂

Problem 1) Removing index.php file from codeigniter URL and adding .html suffix to it:
1. Create an .htaccess file in the root directory of CodeIgniter installation
2. Make sure to double check .htaccess extension as notepad might turn it as txt file when saved in default mode so select “All Files” option while saving it as .htaccess file
3. Add the following rules to .htaccess file to have URL rewriting option ready to remove index.php file from URL:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

4. Then find the following line in your application/config/config.php file:

$config['index_page'] = 'index.php';

5. Set the variable empty as below:

$config['index_page'] = '';

6. If it still doesn’t work, find the following line in your application/config/config.php file: and try to replace following variable with these parameters. For me, AUTO option worked after having above steps:

$config['uri_protocol'] = 'AUTO';

7. To add .html suffix, find following line in your application/config/config.php file and add .html as default suffix:

$config['url_suffix'] = '.html';

That’s all. Here you go 🙂 – good luck!