Agile Software Development For The Resistant Coder

Deijah
5 min readApr 16, 2020

Leveraging GitHub To Get Things Done

“We are uncovering better ways of developing software by doing it and helping others do it.” — Agile Manifesto

Pair Programming

Coding in teams to complete a project is a beautiful thing, managing said project is a different story if there is no process to follow and everyone works differently.

If you are managing a team of developers or simply working on your own project, you may find that your productivity will increase with the implementation of Agile development.

What is Agile Software Development?

a·gil·i·ty /əˈjilədē/

noun

ability to move quickly and easily.

ability to think and understand quickly.

According to the Agile Alliance, Agile software development is a term for a set of frameworks and practices focused on how individuals work together and creating solutions through self-organizing cross-functional teams and collaboration. Cross-functional means that, when creating the team, there is an emphasis on having the right skill sets on your team and not specific roles for each individual.

Agile development does not rule out the need for management, it justs sets the stage for teams to have the ability to work out their approach separately. Managers will step in simply to resolve issues that the team may not be able to alone.

The Path of Least Resistance

There are many frameworks that allow for the streamlined implementation of Agile development principles, some of which include Scrum, Kanban, and Extreme Programming (XP).

scrum board

If you’re tasked with managing a team of developers, more than likely, if they haven’t worked with Agile frameworks, learning one can feel like a hindrance to their already established workflow. Although, many coders are very adaptable and already agile in many ways due to ever-changing coding languages and constant updates, having to learn a new framework can feel foreign and become a time-sink.

Using Agile Development principles and leveraging the GitHub project management and code review features are a wonderful way to create an agile team using a software development platform they’re already accustomed to.

Stand-Up

Also known as “huddle”, “the daily scrum” or “roll-call”, daily stand-up consists of each individual standing up and discussing what they have completed, what they are working on that day, and whether there are any “blocks” (blockages) that may be preventing them from moving forward. Each team member has 15 minutes to speak and does this while standing, so as to encourage a speedy meeting. Every topic that requires a more in-depth discussion is placed in what is referred to as a “parking lot” list and discussed by the people it involves once the meeting is adjourned. Who doesn’t like a short meeting?

Stand-Down

Very similar to stand up, except stand down takes place at the end of the day and team members discuss what they have managed to complete.

pairing

Pair-Programming

Programming with another brain is glorious! I personally find that working with another developer on a project and having an extra set of eyes and a brain to pick allows for faster debugging and getting features completed in a more efficient matter. Pair programming, also known as “pairing”, is the act of working with another developer at a single workstation. Pairing is also time-boxed. One person is the “driver” (focused on the actual act of programming at the keyboard), while the other person navigates (director). The pair will swap roles after each allotted amount of time, usually every few minutes.

Using Project Boards In GitHub for Feature-Driven Development

Creating a project board allows for prioritizing features and organizing the development process. You can create a project board in GitHub by creating or opening an existing repository and selecting the “Projects” tab.

You are able to choose a template that best suits your workflow when creating a new project. A basic kanban-style board will get you started with columns for To-do, In progress and Done.

You can also add a “Backlog” column to truly get into the agile development spirit. Backlog will contain tasks (i.e. features, user-stories, etc.) that are queued up to be worked on. You should have at least 5–8 items in the To-do column to be discussed during stand-up along with what is currently in progress. The “In progress” column may contain a few things you may be blocked on or diligently working on. Once your code has been tested (see test-driven development using the code review feature in GitHub) that task can be moved to the “Done” column. To learn more about automating a project board visit this link.

Project boards hold metadata for issues and pull requests. You can make edits to your issues and pull requests by clicking on its title. You can also post notes to columns (see adding notes to a project board). After customizing a Project board you can also reuse it by copying it for similar projects.

I hope that you consider using Agile principles when creating your next amazing app using a great team of developers. Not only will it limit frustration and miscommunication, but it will greatly cut down on the amount of time spent organizing your project and syncing the very different minds on your team.

Resources

Agile Alliance

If you are interested in using something other than GitHub for agile teams, check out Jira.

Code Review in GitHub

GitHub Integrations

Meet the Author

Deijah is a cyber risk and compliance analyst, member of Data Visualization Society, and is also a developer. She is a closet screenwriter, cinephile and mom of three fur children with her dear husband. She is on a journey of self-teaching french and living one day at a time.

“Life is like a box of chowc-litts…you never know what you gonna get” — Forrest Gump

This article was in no way sponsored by GitHub or any of the aforementioned technologies. All illustrations are provided by unDraw.

--

--

Deijah

Cyber Risk and Compliance Analyst. Developer. Data journalism enthusiast. Cinephile.