Posts

Showing posts from December, 2014

Technology Radar for 2015

Image
With 2014 drawing to a close and 2015 offering fresh opportunities it is up to every software development professional to look at the up and coming technologies which are becoming widely adopted. ThoughtWorks have released their technology radar for 2015 with a list of techniques, tools, platforms, languages and frameworks to either adopt, trial, assess or avoid in the coming year. This is well worth a read - I have to say there were quite a few which I hadn't looked at before - a prompt reminder of how quick it is to fall behind in this profession.

Here's my two tips for 2015 - the top technologies to either adopt or trial in any new projects you are working on.

AngularJS
AngularJS is an excellent JavaScript framework which when used effectively allows you to structure your code to make complex web applications easily maintainable, and promotes code re-use. While the latest version (1.3) is extensively used in both small and major projects across the world, the AngularJS team …

Tutorial: Create great icons with Syncfusion Metro Studio

Image
A key part of any website, desktop or mobile application is icons. These tiny little images can really bring your project to life and improve the look and feel of your apps. Choosing the wrong icon can have a huge impact on the usability of your application. I found creating or finding icons for my projects could be a real time waster - until I found Syncfusion's free desktop application - Metro Studio.

Metro Studio comes with over 4000 pre-made icons which you can customize to meet your needs - change the colors, change the size and export them to any format you want. Here's a quick run through of how to use Metro Studio.

When you open the application you will be shown a list of available icons to choose from:


Here you can browse by category and the search feature is great - finding similar icons. Lets assume we want a shopping basket and we select that icon:



The icon is shown (and defaults to your last configuration - so you can maintain color consistency). On the right hand…

Situational Leadership in Agile

Image
For anyone line managing as well as performing technical leadership, the term situational leadership may have come up in an HR lecture you really don't care about! Join the club.

However, this was once explained to me in terms that really struck home to me and is something that I have learned the hard way in my teams.

Agile works because the team is empowered to succeed - to a certain degree a lot of responsibility is delegated onto the team.

Situational leadership is the theory that there is no right way to manage - but effective leaders effectively bounce between styles. The styles are:

Telling/directing - the leader tells subordinates what to do.Selling/coaching - the leader sells an idea so that subordinates will do it.Participating/supporting - the leader will work with subordinates to get the desired outcome.Delegating - subordinates are essentially able to pick up the work themselves. 

At its most effective, Agile works when most of the team are at the delegation stage. The …

Continuous integration is the key!

Continuous integration (CI) is a key component of any successful software development team - not just an agile team. Doing it right will bring the following benefits to your team:

Provide automated builds of software for testers to pick up. A common, repeatable platform to run tests (unit, integration, automated functional and performance tests).A place to run code quality tools (SonarQube, FxCop, StyleCop, JSHint etc)A place to create production build installers. There are various great tools for setting up continuous integration and you should spend time evaluating what will be best for your project. My personal favorites are:  JenkinsCruiseControl It is imperative that an agile team devotes time early in their project to get their continuous integration system up and running early (sprint 1 or 2) to ensure they have a solid platform to run on. Ideally your continuous integration will run on every commit into your source control system so that the team gets immediate feedback - have th…

The scrum meeting - some quick tips.

The scrum meeting is the key meeting in agile - it promotes communication and resolving issues and is very effective. Everyone does the scrum meeting slightly differently but the basic principle is that each team member answers the following three questions:

What did you do yesterday?What are you working on today?Are there any blocks or impediments in your way? This is a very simple format which works great. However, it's important that you experiment with your team to get a system which works best for you. I find that I typically make the following tweaks with my teams:
I only run them every other day rather than every day - so Monday, Wednesday and Friday. This allows for work from home days (which I standardize as Tuesday or Thursday) to get maximum time in the office together. Daily scrums tend to feel like too much. The time for the scrum is the same every time - and it's first thing in the morning! Nobody like the morning, but I find it helps the team get focused on their …

The first key to agile success - get rid of offices!

If you are new to agile there is one simple change that you NEED to make before you even read up on anything else. Sprints, retrospectives, scrum-masters can all wait - you will instantly improve your development teams productivity by changing your office to open plan with your team co-located. 
Why is co-location so important? 
Communication is easier. People talking to each other to work through problems is the quickest way to resolve blocks. I see it all the time, developers talking to developers, developers talking to testers, testers talking to product management etc. I've yet to experience a major block which hasn't been resolved within a day and that is due to people simply talking to each other. Communication is faster - who you need to speak to is right there next to you.Agile is about working as a team, and for a team to work well you need to feel like a team. Co-location helps improve team spirit, keeps people in the loop as they can hear what is going on, and all thi…