This week, I picked up the book called The Agile Samurai. It is a book that explains in detail what Agile development is, and a lot of great tips on how to become a better Agile developer. Before we get into what I learned from this book, what is agile?
Agile development is an approach to software development. Typically, each team has a different “flavor” of Agile, but in essence, the teams who use agile work in iterative development cycles called “sprints”. This Is where the work is broken down into small, digestible chunks called stories. Members on the team will focus on working on different stories to complete the project they are working on. They typically give each story a point value, on how much effort and work it will take to complete the story. The agile team is very collaborative, and have daily “scrum” meetings, where they talk about what has been completed, what they are working on, and share any issues they are currently experiencing.
In the book, I learned that there a few qualities that make you a “Agile Samurai”. First, you need to be a Generalist, and be able to work within the entire stack of the project. If you only specialize in one language, then you will only be able to help your team in only one aspect of the project. Being able to wear many hats is a way that helps you complete more stories and collaborate with more of your team members.
You also must be able to accept change. Many things change when we are working on a project. The languages we use change, requirements change, teams change. When we work on software projects, you need to be able to adapt to your surroundings, and not panic when a curveball is thrown at you.
You also need to be able to check your ego at the door. You need to be comfortable in your own skin, be not afraid to share and help others, and sincerely enjoy learning and growing with others. Nobody wants to have someone on their team that is protective over “their turf” of the code. Being able to check your ego at the door, and work with your team as one, instead of being protective over the code that you provided to the project is something that will help you while on your team, as well as in life.
I also learned that when you work on a team, testing becomes very important. Sure, if you are working on a project by yourself, you can create an application by throwing in scaffolding, and crank out the project in no time, since you know what all your code is doing. However, this allows more bugs to creep into your code, and the bugs will pile up. Once you have an infestation, it can become very frustrating. Also, when you have other people working on the same code base, you need to be certain that the code that you are writing does not interfere with the code that others have put in. Being able to write tests is a very valuable skill, and even though writing tests may feel like a slower approach to developing, you encounter fewer bugs, and you know for a fact that the code you put in works. It is very valuable to write tests and getting into the habit of writing tests before you write any code.