Posts Tagged ‘development’

What Does Agile Look Like?

Monday, June 15th, 2009

So you think you might already be using an agile philosophy. Here is my take on what agile looks like.

Agile Teams

It’s a team effort, agile teams tend to be small (ten or less people), they work very closely together in the same location if possible sharing the same code and development tasks.

There are short daily face to face meetings, with each person speaking for a maximum of two minutes on what they achieved the previous day and what they are working on today.

Working Software

People focus on outcomes not blame. The only measure of success is working software.

Delivering What Users Want

You work very closely with the client showing them the latest version of the software early and often to get constant feedback.

Business owners should make business critical decision, do not guess what the user wants ask them. Keep records of these discussions and your project progress in a wiki or blog that everyone can see.

Feedback

You get constant feedback from the code you are writing via automated build and automated and continuous testing. You will refactor often to make the code more usable and elegant.

Iterations and Sprints

Work progresses in small iterations (small blocks of time one to two week sprints), where you identify a set of features, implement and release them. Time boxing means that during an iteration features can be skipped but the deadlines that cannot be extended. All the time demoing the iteration to the client to get feedback to check you are on the right track.

Business owners and the development team should work at a pace that you can continue forever.

Agile Software Development

Saturday, June 13th, 2009

In 2001 seventeen people got together to discuss a better way to develop software, these people coined the term “agile” and developed the agile manifesto to describe a re-focused approach to software development. The main values of this new approach were:

  • Value individuals and interaction over process and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change rather than following a plan

“Agile development uses feedback to make constant adjustments in a highly collaborative environment.”

Basically it was a shift from a plan based approach to a more continuous natural style. You expect the requirements to change even late in the project and that is ok as you have a flexible results driven approach; responding to change is more important to following a plan.

The project is released in small phases to the client with constant feedback from the client to check you are on the right track. Constant communication between the team, the client and the business decision makers are crucial to the success of the project. Success is determined by working software that the fulfils the users needs.

So how do you know if you are an agile company? I will detailing my thoghts on that in the next post.

Designers And Developers At War

Thursday, March 5th, 2009

Working in a technology office that places a large emphasis on design, we have a larger than normal ratio of designers to developers.

I was listening to an interview between Joe Stump (lead architect) and Daniel Burka (creative director) of Digg, which made me think a lot about the designer, developer relationship.

This relationship is often a strained one, often there is clear separation of teams with designer and developers often working in separate offices.

I am generalising somewhat but developers tend to be more pragmatic and see the whole picture, where as designers are much more creative and grand with their visions. There needs to be a compromise in order for the two teams to work well together.

Here are my tips for a productive working relationship between designers and developers:

1. Sit Together

If you all work in the same space then it is much easier to see what the other team do, and appreciate the skills that they have. You will also get to know the designers personalities and that helps when communicating with them.

2. Collaborate start to finish

From the very start of the project designers and developers should work together. This ensures that the best ideas are highlighted, and there are no nasty surprises later in the project, when the developers see a signed off design and freak out as it cannot be done.

3. Developer sign off

Any design that gets sent to the client has to be signed off by a developer first, so they can assess whether the design is actually possible, and can be built in the time line specified.

4. Keep talking

Always keep talking, have round table meetings, cross team brainstorms and make sure you developers keep your techie speak to a minimum.

5. Educate each other

The more you can educate designers on what is and isn’t possible the easier it will be the next time, simply saying that it cannot be done is not acceptable, always give reasons.

6. Mutual respect is the key

Both teams must respect and work together if you want to create an amazing product. Each team cannot do it by themselves.

7. Naive knowledge

I have often seen very elegant solutions suggested by designers as they do not really understand the technical points. Sometimes developers can over analyse and be too risk adverse.

8. Pause before you speak

Listen to what the other party is saying and then pause before you reply, really consider their point of view. This is universal for all teams.

9. Don’t say no – developer’s default response tends to be “No”

We have all done it and it is not healthy, remember there are shades of no, only use a flat out no if it really isn’t possible. Most developers love a challenge and no should not be part of their vocabulary.

10. Compromise

There is always middle ground, if you are asked to build the impossible, give options and suggest alternatives.

11. Don’t be afraid to challenge

Don’t be afraid to challenge each other ideas even if they are not in your field. I often challenge a design that I see even though I am not a designer. However you should always defer to the experts, at the end of the say if I challenge a design but the designers over rule me, then fine they are the experts in design.

Conclusion

We have a lot of healthy banter between the development and design teams, words like spot uv, belly band and matt lam, always make me laugh. Recently the developers were talking about extreme programming, this prompted the designers to come up with extreme design, which involved designing while snow boarding.

As a developer I personally hold designers in very high regard and have huge respect for their skills and expertise, I have learnt a lot from them, and hopefully I have taught them something in return.

Developer and designer can work very well together, given the right environment and ethos, and when they do, amazing things happen.

Design Does Not Always Solve Everything

Wednesday, March 4th, 2009

I am often called in to consult when a site, software or systems are not working correctly, either they do not deliver the benefits they were built for, or they are not as successful as the owners expected.

Working in an agency that places a heavy emphasis on design, it is easy to say that a new design solves all problems. Most creatives place a lot of emphasis on refreshing or changing designs, however this is just one part of the solution and needs to be used with a more holistic approach.

If you site is not giving you the returns that you expect, the design of the site is probably only one part of the solution.

Think about the following aspects of your site:

  1. Navigation – can users find what they want quickly and easily
  2. Signposting – are you highlighting the most important information
  3. Leading and Calls To Action – make sure users know what to do on each screen
  4. Information Architecture – grouping and arranging data into logical groups
  5. User Feedback – engage with your target audience and get their input
  6. Analytics – watching users move around your site can yield surprising results

Remember that if your site is not working, giving it a new set of clothes will not fix anything, using a more balanced approach will fix the real root of the problem.