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!

Do you like Xamarin?

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.

Academy

Related Videos

Successful developers do more than just write code

It takes more to be a great coder than you might think! Check out this video from NDC Sydney featuring Adam Cogan, Michael Smedley and Matt Goldman on the importance of teamwork and good communication in software development. Learn about SSW’s new mobile app and how it connects us with the software development community.  

Pragmatic DevOps | Tech Tips NDC Sydney 2019

Pragmatic DevOps It’s easy to feel like DevOps is too hard to implement because the theory is hard to apply in their company. Rather than give up, it’s important to be pragmatic and try to solve the problems. To do this effectively, you need the theory. With books like The Phoenix Project and The Unicorn…

C# 8.0 – New Features & Beyond with Filip Ekberg | Tech Tips NDC Sydney 2019

New features of C#8.0 SSW’s Andreas Lengkeek talks with ‘the C# guy’ Filip Ekberg on the new features of C# 8.0 and what’s coming down the line. They discuss: – Nullable Types – Async Streams – Pattern Matching – Coming up features

docs.microsoft.com and the Mother of all Migrations | Tech Tips NDC Sydney 2019

Explore the impressive new features on docs.microsoft.com with Brendan Richards and Dan Fernandez. Docs.microsoft are awesome… and now have code samples that run! See how the magic happens via Azure containers that provide interactive docs that execute .Net code samples and Azure CLI operations in real-time. Also, hear behind-the-scenes stories on how one documentation site…

Up and running with the super-fast gRPC in .NET Core 3 | Liam Elliott

Remote procedure calls (RPC) have been around since the beginning of time – most of them never copped a speeding ticket! Many of us have lived through XML-RPC – SOAP – .NET Remoting – WCF – JSON-RPC and most recently – REST. Back in 2015 Google threw their hat into the ring with gRPC, promising…

NDC Sydney: So many highlights in just one week!

NDC was one of our highlights for 2019! NDC hosted so many great presenters including some of our very own developers. The release of the SSW Rewards app was also a great success with so many on the show floor taking part in the SSW Treasure Hunt.

Journey to DevSecOps! | Danijel Malik

“Hey Dev, stop for a Sec… it’s not all about Ops!” Admit it! Ever since you adopted DevOps, things are spinning way faster than you thought they would. Tools are taking care of the CI/CD process, an APM platform gives you insights into issues in production, and you are fully focused on your code. Having…

Facebook and Cambridge Analytica – Adam Cogan’s Analysis

Quick analysis of the Cambridge Analytica scandal currently facing Facebook.

Office 2019 will only work on Windows 10 + what’s the difference between an MSI and Click To Run? | Adam Cogan

Office 2019 will only work on Windows 10. We also cover Windows installer technologies; what’s the difference between an MSI and Click To Run?

I have a container… now what? | Thiago Passos

This is not the same container 101 talk you’ve seen a dozen times. The point of this talk is how to ship a container to production, once you’ve built it. We’ll containerize a .net core app, debug locally, set up continuous deployment, set up a container cluster and deploy to it.