Installing Capistrano 3 on a Linux machine, using RVM

Previously, an entry was written on how to Install Capistrano 3, on Debian. Here is an alternate, quicker way, of installing Capistrano using RVM, on any flavour of Linux – authored by Omar Tamer. This tutorial requires curl, and root level privileges. First stage is to install the ruby version manager, RVM: Step 1: Download […]

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, […]

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 […]

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 […]

Agile Methodologies: Retrospective

At the end of each Sprint/Iteration, team members (developers, customers, managers) get together and analyse how to become more effective.  What is a Retrospective? Retrospections are the time when processes are inspected in order to be improved, successes shared, real numbers are collected to be used for future projects and successful actions are reinforced in […]

Install Jenkins on Debian

Installing Jenkins on Debian is a trivial task – a package is available, through aptitude, and default configuration is sufficient. This tutorial does not cover advanced security topics. By default, port 8080 is open and no authentication required – this poses a major security risk; thus if you rely solely on the instructions below, you […]

Agile Methodologies: Estimation

Once User Stories and Acceptance Criteria are created, developers being estimating tasks. This is done in a “Planning Poker”. Each team member having a set of “cards”, consisting of numbers in the Fibonacci sequence, and assigning a number in this sequence to each task. Planning Poker The Planning Poker aims at providing estimates as accurate […]