In this short presentation, Gerard Beckerleg – SSW Solution Architect – shows us how we can use Agile to more effectively develop our mobile applications.
This presentation was part of the Sydney Xamarin Hack Day line-up. Head over to the Xamarin Hack Day website to apply to attend (or even run your own hack day!)
Let us know how you feel, take the poll!
Video Transcription
Gerard Beckerleg: Okay, morning guys. I’m going to be very quick because I don’t want to take up too much of your time talking about Agile. A little bit about me, so my name is Gerard Beckerleg, solution architect at SSW, but the thing that’s probably important that I want to get across to you here is that I’m a mentor at the FireBootCamp, okay? And FireBootCamp is something that we’re really proud of at SSW. This is a nine-week intensive .Net training program where you get to build a real-world product over nine weeks and you’re using all the latest technologies, and also wrapped up in using an Agile process. So you get to learn about Agile, you get to learn about building products, and you get to learn using the latest .Net technologies from all the lessons that we’ve learned over the years.
So this is really good for people who are just out of university and want to get that step up, because I know when you go to interviews people are telling you you don’t have any experience. So you can say, “Okay, I’ve got nine weeks experience building a product.” And alternatively, the other types of people that we get on here are normally contractors who, their skill sets have become a bit outdated and they want to just refresh and learn some new things in a really short space of time. So I wanted to highlight that to you.
So one of the things that we do in BootCamp is we teach Agile. So I thought, okay, maybe what I can do today is I can give you a really brief, take out the best parts of the Agile, give them to you. Because pretty soon, in maybe a couple of hours, you’re going to join your own teams and maybe you can put some of these hacks into your projects that you’re going to join. So my challenge then is for you guys to listen to these lightweight processes, I’m just going to bring up four of them.
Join a team. So at the end of the day, in a couple of hours, there’s going to be a couple of teams for you to choose from, join a team. And then if you can, try and apply one, a few, or all of these hacks to the team that you’re joining and then see what happens. So we’re just going to cover four. Okay, so the first one, begin with the end in mind. So I see a lot of teams that they start off without setting a clear goal of where they want to go. And then without having a clear goal you then drift off into one guy does this, one guy does this, and then you’re all going off in your own different directions.
So what I want you to do is when you start your team, make sure you set your goal really clear. So a really good way that I find to do this is you’ve probably all seen these product landing pages when you go out on the internet. And you’ve probably all used a Twitter bootstrap and it gives you a landing page similar to this. And these are a really good way for you to think about your project. And the one that I’ve chosen here is HipChat. And the reason that these are good is that it highlights a good way to structure and to think about building products.
So what we have here a the top is we have your goal. In this situation it’s HipChat and their goal is to bring your team to life through group private chat file sharing. So they’ve constantly got that goal that they can refer to when they’re building their product. They also have their “Epics,” so these are the big, high-level features that help them achieve the goal, okay? And then inside the Epics they then have their features.
So it’s really interesting to think about a product in this way. And sometimes, obviously you’re not going to have time today, but in real life to create a product page like this so you can think about where you’re going and you can think about what you’re building and then you can constantly refer back to this and make sure you’re going on the right path. So hack number one, set a goal, break the goal down into Epics, and then break the Epics into Features. And then you’re just going to call this your Backlog.
Okay, so the next hack, time-boxing. So it’s very easy, especially on a day like today where we’ve not got much time, it’s very easy for people to go off in all different directions and to lose track of time. And before you know it, you’ve got to the end of the day and you’ve not really achieved anything and the team’s all going in one direction. So if we can have one goal, then the next hack for you is to then work out how much time you have and split your time into small, little boxes, okay? That way then it will raise your awareness of time and allow you to work in smaller chunks rather than one big chunk, okay?
So the next hack, it’s very slow, this, to respond, work out how much time you have available, dead easy, divide this into time-boxes and then call these your sprints. Okay, next one, “In preparing for battle I have always found that plans are useless, but planning is indispensable.” So this is a really interesting point because normally when people start Agile they want to get going as soon as possible and they think if we do Agile it means that we don’t have to think about the planning stage. And it’s true that the plans are useless but the actual creating of the plan is a really beneficial process.
So when you sit down and you think, “Okay, what do I have to do first? Then what do I have to do? Then what do I have to do?” That actual process of thinking about what you’re going to do before you actually set out and build it is really, really valuable. The idea for this also comes from financial planning and stuff like this. So financial people will make forecasts. And these forecasts are relatively useless because who can predict the future of the economy? And if you could predict the future of the economy you would be a multimillionaire, if everybody could do it. So the actual process of trying to forecast is as useful as the actual forecasts themselves.
So hack three, set a small goal that will move you towards your main goal. Make a plan to achieve this goal in a sprint using some items from your Backlog. So take a few items from your Backlog, make a plan about how that’s going to move you towards your main goal, and then we can just call this list your sprint backlog. Easy. Okay, so here’s the hard part, executing the plan. But this is the easy thing, so just hack away.
Take your time-box, create your plan, have a few items in your plan, then hack away. When your timer finishes, you stop. So set a timer, execute your plan, and stop when it finishes. Okay, so “No battle plan survives contact with the enemy.” It’s a very famous phrase. So we spend this time to create this plan, then we execute the plan and we realize that nothing went to plan. We couldn’t install Xamarin or this widget didn’t work the way that we wanted it to. So this is the important part then, is that we then re-evaluate what we did and then make an effort to change the next time-box according to what we’ve learned from the previous time-box.
So hack number four, inspect and adapt. So work out what went well the time before, keep doing more of that. Work out what you can improve on the next sprint. And then just rinse and repeat that process. So I was going to say, a really lightweight process. Basically what you’ve done there is the basic core of scrum in a very, very small way, okay? And I think that this will help you as self-organizing teams because it’s a very lightweight process that I’ve given you that you can apply to a group of individuals to help you meet your goal, and then allow you to adapt to meet that goal.
So obviously this is a small version of scrum. At SSW we’ve been doing scrum since its inception and we’ve got lots of experience in it. We also do a lot of training with scrum. We’ve got the posters available over there or you can get the posters online. If you text this number I think, yeah, so if you want these slides and you want the poster and some information about FireBootCamp you can just text this number. It will send you back a link that you can then just download. I think it’s on one drive. So you can download it when you get home, okay?
About the speakers
Mr Agile
Scrum guru Gerard Beckerleg has been a Solution Architect at SSW in Sydney since 2011.
He also lists Scrum and agile practices as a passion. Using these skills and frameworks, Gerard has brought to life a raft of successful projects, such as Toll, Sydney Airports, McDonalds, Event Cinemas, and National Australia Day Council.
An established and confident speaker and trainer, Gerard has delivered numerous courses including SharePoint 2010 and .NET MVC at the University of Technology in Sydney, and is also a regular speaker at the Sydney and Canberra .NET User Groups.