For years I have been working with two methods, one a bit longer than the other, two methods that are very complementary in ways that I will outline in this article.
Agile / scrum
For the few people that don’t know what scrum and agile is, here are a few links for you to look at. Take your time and read them and more if you can find them…
- Comprehensive Guide to the Agile Manifesto
- The Beginner’s Guide To Scrum And Agile Project Management
- Scrum Methodology
If you are lazy, in short (and don’t quote me):
Agile is a way of working in short periods of time (sprints) that each deliver a small and working piece of (for instance) Software. The team consists of all the disciplines necessary and coordinates a lot with the client. As the client is involved in the process a lot of feedback is collected, thus resulting in something the client actually needs and wants.
I hope that all of you have read my previous post on Progressive enhancement or even visited my workshop. In short, progressive enhancement is a way of building in layers, so that you build a stable and robust experience for all of your users, leaving no one behind.
Agile and PE, the combination
So this is all and well, but what are these two together.
In short, perfect.
If you do Agile, you want to do PE, trust me. I will give you one example here and will do a workshop on the two anytime soon if I can find the time.
Example 1: search
Take a fairly standard piece of functionality on most websites search.
It will more often than not, have a piece of Ajax built in, so that if you type a few characters, a list of suggestions will be given to the user.
In the days of old this would be one piece of functionality, but with Agile and PE we can split this up in some pieces and built those if and when we need them.
Remember that building a small piece of working software I mentioned earlier? Building with PE we can separate the search from the Ajax stuff. After all a search form that takes you to a new page with the results is fully functional.
Doing the fancy Ajax does not necessarily need to be done in the same sprint. In fact it can be postponed to after the first release if the client thinks that other things are more important.
Example 2: the loathed Carousel
Recently I was asked to build the thing all web devs loathe, a carousel. No reasoning from me helped, the client (Marketing in particular) was firm. A carousel they wanted and I had to built it.
But, with Agile you first refine the work that needs to be done and chop it into the smallest possible working pieces of software. Thus minimising the risk and giving the client the possibility of seeing what she/he will get.
The carousel that they wanted had only 3 slides, so we built the static version. One of the slides had a more prominent place and the other two were shoved to the sides. Each new page had a different order, which we did on the backend.
A surprised client found that almost all of their wishes were fulfilled in this static version…
Later we will, maybe, build the animated version. But as the project had a limited budget, this is being built later on. When more pressing matters are being dealt with first.
So agile and PE brings clarity to the work and lets you focus on the most important things first, without leaving out core functionality.
Example 3: Sticky images
One designer I worked with thought up a large image on the left side of the page, this image should be sticky and not scroll with the rest of the page.
This was easy, using position:sticky
Getting it to work in IE11 is more work. Seeing the extra costs the client decided to not do this. In IE the image scrolls along with the text…
The client saw the true cost of supporting all browsers and decided against if.
Agile and PE together can help you build something in a way that benefits not only your visitors, but your budget and planning as well.
If you want to talk to me about this, hit me up on twitter and ask me anything.
And if you want me to talk about this at your event or company, ask away, I will be more than happy to come and rant for you :).