What Our Software Development Process Looks Like
By: Kristen, Upstate Interactive
Tags: Agile, Software Consultancy, Upstate New York, Software Development, Scrum

So you need a software engineer…

If you’ve already weighed out the pros and cons of hiring internally and externally and settled on a software consultancy (more on that here), we’re happy to share about how it all works at Upstate Interactive.

Making software simple is our main philosophy, and that simplicity is seen in all parts of our process.

Our Agile Process

We begin with discovery, a method that we’ve outlined in detail in this blog. In short, we get organized by clarifying project goals, gathering assets, and scheduling our regular check-in meetings. Then we get clear on the who, what, and why of the project.

This means we perform stakeholder and user interviews to learn everything we can about pain points being solved, your business, and your needs to fully understand the project from all sides.

From that information, we create user personas, user stories, and mockups to define how end users will interact with the application and which features are needed.

The user stories start our product backlog and get us rolling on our agile development sprint cycles. The product backlog is essentially our roadmap; it contains all the tasks we need to do to get the job done.

It also includes our sprint backlog, which organizes those tasks into shorter, time-blocked pieces (called sprints). This breaks the project down into smaller pieces to get feedback from clients at each milestone. This allows us to more easily adapt to any changes required as we go.

Our design and development processes are grounded in technology and user experience, using our clients’ technology or our own — we’re flexible! This process ensures we’re meeting the needs of users and the business with applications that are easy to use and well-functioning.

Components of Our Agile Scrum Process

If you want a more detailed look at our process, we use the agile scrum method for development.

Scrum is a framework for software development that operates under the agile umbrella, where people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.

The Scrum Team is made up of three roles:

The Product Owner: The PO is responsible for managing the dynamic list of product requirements (what we refer to as the product backlog), and measuring the development team’s progress in order to communicate results and forecast project timelines. They set goals for each sprint and make sure the project stays focused on the value the project will provide.

The PO is responsible for managing the dynamic list of product requirements (what we refer to as the product backlog), and measuring the development team’s progress in order to communicate results and forecast project timelines. They set goals for each sprint and make sure the project stays focused on the value the project will provide. The Scrum Master: The scrum master coaches the team and educates them on scrum practices.

The scrum master coaches the team and educates them on scrum practices. Development Team: A cross-functional and self-managing development team, which forgoes the usual titles (designer, engineer, etc) in favor of a more collaborative environment where everyone contributes where needed.

Every scrum team follows specific scrum “events” during a sprint:

Daily scrum stand-up meetings for the development team to determine that day’s tasks.

for the development team to determine that day’s tasks. Sprint planning where the entire team decides which product backlog items can be accomplished that sprint in order to meet a specific goal

where the entire team decides which product backlog items can be accomplished that sprint in order to meet a specific goal Sprint review meeting where the scrum team and stakeholders review progress, gather feedback, and update the product backlog as needed.

where the scrum team and stakeholders review progress, gather feedback, and update the product backlog as needed. Sprint retrospective meeting for the scrum team to review what worked and what didn’t, and what may be done differently in the next sprint

As a client, you are kept in the loop as often as you’d like (daily, weekly, or every other week) and are always aware of where we are in the development process. We show demonstrations and working prototypes as we go so you are able to give real-time feedback, allowing us to adjust quickly to your user’s needs.

Tracking Our Progress

As we move through the product backlog, we keep track of our progress by using story point estimation.

Story points quantify the complexity and relative effort needed to complete a task. This helps us determine our velocity, which is the amount of work the development team can complete in a sprint, which allows us to forecast when we can accomplish the backlog. The forecast isn’t a 100% guarantee, but we use reliable information and evidence to make our best assumptions for the sprint.

Within a sprint, we use a burn-down chart (example above), which is a graphical representation of what work there is left to do versus how much time remains.