Software development has changed so much over the last few short years. Not only has technology and how we use it pushed the boundaries of what we can achieve with software, businesses have adapted to new ways of working to ensure they reap the benefits. However, as we’ll discuss in this post, there are tricks and tips to working better, bridging the gap between what clients want and what great software development teams can deliver.
The three primary topics are communication, accuracy and speed. Let’s break these down into scenarios:
With so much to consider when embarking on a new project, it’s so important to ensure lines of communication are robust and reliable. Agile software development teams hit the ground running, and the process of working through projects is just what the name implies: agile! This means the team needs to know who’s answering the questions client-side as well as in-house, and the information needs to come in thick and fast.
A thin brief is no good to anyone, because it leaves room for questions. Too many questions means a project can fall behind, or become bogged down. Detail is a primary reliever of many pain points! More detail at every important stage of development means the software team can focus on delivering an accurate representation of the brief, and has room to breathe and suggest more creative ways of delivering innovative results.
Agile software development teams get down to the fine details with great focus, and they do this because they work in sprints. This means they will focus on a specific task for a week or two before tackling the next task. Of course, this means they can’t wait around for extra information. Speed is of the essence!
A good example of all of these facets is when recently trying to onboard users via a client’s back-office system. Our Interact platform allows key pieces of back-office data to connect to the client’s back-office, which is a third-party system, where we call an API and either send or retrieve data back and forth. Once the agile team is ready for it in the sprint, we have to obtain information such as what API to call, how to call it, what information to give, what security credentials to send with this, and so on. In this particular case, we spoke to our business analyst (BA) – there were good, in-depth conversations about the API documentation, and how to go about finding out what we needed. However, we quickly realised that the team was asking for very technical information and the BA wouldn’t be able to easily communicate it to the client without losing context.
The solution was simple. We asked to be in direct communication with the client’s back-office company (especially the technical support team) so that we could raise our requests with them. After a few emails and meetings between developers and quality assurance (QA), they were aware of our goals and provided the information we needed. They even provided us with test data to enable QA to verify the functionality on the test system, and advised us on the way the APIs should be used, and how we verify that it was done correctly.
Our communication continued, with the back-office team notifying us when any system downtimes were planned. This meant that our agile team was fully aware of any ‘out of action’ times, so we could plan our sprints and do those tasks that didn’t require the third-party API to be used, thus not have any ‘waiting’ times. Great communication, more detail and a speedy process for getting things done – all achieved with a team of people who know and understand their roles. Let’s look at these roles in more detail.
The importance of the business analyst
The key to a successful project is having a good business analyst. After all, what use is an innovative solution when it doesn’t solve a client’s problem? A business analyst is the person who analyses the business (the clue’s in the name, right?) to ensure client goals are clear, are translated well to others, and are cost effective. They provide efficiency where there is drag, and clarity where there is confusion, talking through requirements directly with the client and defining user story details and acceptance criteria. They are the synapses for the project, connecting disparate elements of the tasks involved and making sure solutions are properly implemented. They are the organiser, communicator, translator and presenter to ensure everything is smooth and buttery for the technical team from a requirements perspective!
The importance of the technical team
The technical team (aka developers and QAs) work effectively with the business analyst and the client’s third-party technical teams. Their collective responsibility is to design robust, scalable and extensible technical solutions that meet the client brief, and of course implement them. Great developers not only code solutions, they’re also able to understand and translate client requirements into a deliverable system. This means they’re staying up to date with new developments across the industry, new skills and techniques, and new programming languages. They know how to work in an agile environment that’s dynamic, collaborative and fast-paced.
QAs set the standards for every facet of the project, from specifications to test plans and test cases, monitoring all stages of software development. Their job is to explore, identify and resolve issues that may crop up, with the end goal being to meet quality standards.
Underestimate any of these roles at your peril! They are essential cogs in your grand vision to tackle the three pain points mentioned above, being able to communicate well, deliver accurate results, and at speed. Tackling these pain points will become even more crucial as agile development becomes more popular. For companies, it means improving collaboration across projects, enhancing levels of detail required for high quality results, and working with talented, agile teams that help you achieve your goals.
What companies can do to be project-ready
It’s often difficult for companies to know how to approach their digital transformation. It can be a bit like shopping for baking a cake, but not taking the recipe with you. There’s an element of not knowing which questions to ask, nor who to ask, nor how! Yet, the best way to kick-start a development project is to do as much homework as possible, digging into the finer details and making sure you can communicate what you want to achieve to the BA and the development team. Through open discussion about these goals, everyone can understand and begin to formulate what’s possible and what’s achievable.
Setting aside time to do this is crucial. If you’re talking about the future of your company, take as much time as you need! Making the time to consider the details of the project is time well spent, and means everyone can be on point. And if there is confusion or the possibility of miscommunication along the way, drop everything and be a part of putting it right. Too often, companies hire incredibly talented software development teams and then leave them to it, as if the magic will suddenly happen. The risk here is that the team may get on with what they think you want, and work at such pace that they can’t wait for you to answer their queries two weeks after they contacted you. And you miss out on the excitement of being a vital part of the project! You’re in it together, and creating separation from the development project will mean it’s harder to maintain lines of communication, therefore speed and accuracy. Be a part of the energy that every great software development project requires.
An effective agile software development team isn’t tucked away in a dark corner furiously tapping away on hard-worn keyboards and drinking too much coffee (though some of this is definitely true!). They reach out to clients to make sure they’re not wasting energy, collaborating to ensure that all of the three pain points never rear their heads. Companies looking to transform their businesses into modern, digital-first operations should consider the importance of what goes into working with an agile team, and prepare accordingly. Not doing so isn’t just a waste of time and money, it’s a waste of a great opportunity.