Agile Methodologies: Agile Manifesto and Principles

As part of my learning process about Agile Methodologies, I am adding a few notes about Agile in general and some of its methodologies in particular. Part of a series of posts, the first entry is about the Agile Manifesto and Principles. This and the following entries rely on the ‘Agile Software Development Ecosystems’ book, […]

Create a JavaScript jsonP Class

Classic AJAX requests are limited to the same domain. JSON with padding allows us to make requests to different domains. Below is an example of how to create a jsonP class, and handle requests using PHP. JSON with padding works by making a JavaScript script request, using a SCRIPT tag and a callback function. The back […]

Agile Methodologies: SCRUM

According to Ken Schwaber, co-creator of Scrum: “You can’t predict or definitely plan what you will deliver, when you will deliver it, and what the quality and cost will be”.  Scrum is focused on delivering working software regularly, monitor features delivered and adjust plans according to the results. Unlike XP, which puts more emphasis on […]

Tools for Agile: Puppet

Capistrano provides server automation; by running a set of predefined scripts on remote servers. Puppet is a tool providing configuration management, provisioning and reporting. Puppet Enterprise extends Puppet by adding application deployment. Below is a quick introduction to what Puppet is, how is used and links to tutorials.  An Agile environment requires Continuous Deployment, for constantly […]

Agile Methodologies: User Stories and Acceptance Criteria

Both Scrum and XP rely on User Stories to describe features required for delivery at the end of a Sprint/Iteration; and provide a basis for Time Estimates and Acceptance Criteria. This entry covers what User Stories and Acceptance Criteria are, how to write, and use. What are User Stories? User stories are a short description […]

Symfony2: Version and Install Steps

This post marks the start of a series of Symfony2 focused entries, describing how to install Symfony2 and prepare the environment for a new project. Relying on the “Installing and Configuring Symfony” chapter of the Symfony Book, this entry provides details about choosing the right version, and an introduction to composer; followed by step by […]

Agile Methodologies: eXtreme Programming

“Always be doing the most important thing that you can be working on.” – Kent Beck. While Scrum puts more emphasis on project management, XP is more focused on programming. XP surfaced from the need for flexibility, speed and quality. None of the XP practices are wholly new, but it takes existing ones to a […]

Create Capistrano Recipes for NodeJS Applications

This, and the following entry, are the main focus of this tutorial. Here you will learn how to create a Capistrano project, recipe – for deploying your application code, run tests, stop and restart the NodeJS server; and maintain roles. The assumptions are that git, npm and NodeJS are already installed on target servers, and […]

Prepare your NodeJS Project Using Forever, Nodeunit and ExpressJS

Prior to creating Jenkins jobs and Capistrano recipes you should prepare NodeJS dependencies and scripts. This article does not provide in-depth details about NodeJS. The assumptions are that nodeunit is used for unit testing, forever for process management, and ExpressJS for creating a web server. Step 1: Create a package.json file: NodeJS dependencies and utility […]