Showing posts from January, 2017

Agile roles

There are a number of different roles in the agile methodology, and these need to be well-understood to make agile work effectively in your organisation. In particular, the scrum master and product owner need to have enough time to devote to doing their roles properly.

I must mention that as a female developer, I find a lot of the terminology used in Scrum rather macho and off-putting. I would like to see a shift in the culture on this, but unfortunately, the terms seem to be pretty ubiquitous these days.

DeveloperThe agile developer is a team player who commits to standardised development practices and sharing knowledge across the team. They are comfortable in different layers of the stack,m though they generally specialise in one of the layers.

In agile methodologies, the development team gets to decide which of the top priority stories in the product backlog they will work with next.

Scrum masterThe scrum master manages the scrum process. He or she convenes meetings, protects the team …

Agile artefacts

For agile methodologies to succeed, there needs to be maximum transparency and planning. A number of agile artefacts have been developed to ensure that the team and the stakeholders have a clear understanding of what's happening.

Burndown chartFor each sprint, the development team commits to developing the features described in a number of user stories. Each story is assigned a number of points during the estimation meeting.

In order to ensure that all the promised features are developed during the sprint, the scrum master keeps a burndown chart to measure the team's velocity.

On day one, the total number of story points is marked on the top left of the chart. The next data point represents the remaining story points after the stories completed on day one have been subtracted.

The ideal trajectory is a straight line. If the team slows down (indicated by the "actual tasks remaining" line being above the "ideal tasks remaining" line) then they need to speed up a …

Agile methodology in the wild

Agile methodologies like Scrum sound amazingly efficient when presented by people who have implemented them in a non-hostile environment. But conditions are not always perfect, and things can sometimes go wrong.

One of the key features of agile project methodologies is that they have different types of meetings. Each different type of meeting has a very specific function. They can become tedious and unproductive if they deviate from the prescribed form and function. With that in mind, let's look at the different types of meeting, how they are meant to work, and what can go wrong.
Three AmigosThis is a relatively new type of meeting in the agile toolkit, and was developed in 2013. Essentially, this is a meeting during which the business analyst (BA) presents the requirements and tests for a new feature. The Three Amigos (BA, developer, and QA) discuss the new feature and review the specification. The aim is to create a common understanding and shared vocabulary across these individual…

Getting agile to work for you

Different project management tools will work for different types of work and different scales of organisation. Depending on the context, your project may work better with agile, lean, scrum, kanban, or some hybrid approach.

Use the right methodology for the projectAgile methodologies like Scrum work really well for development projects, usually ones where the team is focusing on one project at a time.  Agile approaches to marketing have also been devised, as the funnel approach to marketing lends itself particularly well to an agile process. According to the Scrum Alliance,
Scrum is an Agile framework for completing complex projects. Scrum originally was formalized for software development projects, but it works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple.For tasks that are a one-off instance, such as support requests, a system like kanban, which enables staff to prioritise incoming tasks, may work better. The …

Upload a PDF and link to it from your blog

Sometimes you need to upload a printable document, such as a flyer, a newsletter, or an information sheet to your blog or website.

The Blogger tool (unlike Google Sites) doesn't have the facility to attach documents.

Fortunately, you can create a public folder for documents on Google Drive, and link to it from your blog.

Here is a step-by-step guide to how to do that.

Step-by-step guide: Creating a public folderYou only need to do this once for any group of documents associated with a particular site or project. Open Google Drive and click on the NEW button.
Select Folder
Give your folder a name and click CREATE
Right-click on your newly-created folder and select Share...
Click on Advanced 
Click on Change...
Select 'Public on the web' and click SAVE, then DONE
Uploading a fileNext, you need to upload the file you wish to publish to your folder. You should avoid uploading Word documents for use as forms; use Google Forms instead. Open Google Drive and double-click on the public folder …

jQuery style switcher

It's often the case that you want to provide more than one CSS stylesheet for your app or website. You can do this by including a style switching function in your app. Here's how to do it in jQuery.

The solution uses jStorage to store the user's preference between sessions, but you could use cookies instead.

Here is the jQuery:
$(document).ready(function () {
    var myStyle = $.jStorage.get('myStyle', '');
    if (myStyle !== '') {
        $("#colors").attr("href", myStyle);
    $('.styleswitch').on('click', function () {
        $("#colors").attr("href", $(this).attr('resource'));
        $.jStorage.set('myStyle', $(this).attr('resource'), { TTL: 28800000 });
        return false;
});Here is the HTML in the <head> section:
<link rel="stylesheet" type="text/css" href="css/colors.css" id="colors"/>
And here are the butto…

Angular promises

I have been struggling to understand Angular promises for months, and I finally found an answer on Stack Overflow that explains them really well. There's also this really helpful cartoon which has a nice story explaining the fetching of data. However, the Stack Overflow answer was what really did it for me, and fully deserves its current status of 383 upvotes.

The problemThe problem that promises set out to solve is that when you make asynchronous calls to a server where the results of one call are dependent on another call, you need to return the results in the order of your dependencies, not in the random order that will happen depending on which server call returns its results first.

ExampleSay I have a page where users can subscribe to or unsubscribe from email mailing lists and RSS feeds. The data displayed on the page is an amalgam of two different services fetching data from two different servers.

The unsubscribe action and the subscribe action both send calls to the server. A…