6 tips to accelerate your agile software development
There are many aspects that influence software development lead time. Aside from the traditional aspects of development (time, money, people, quality and complexity), we now also need to consider security, trust, data, regulations, availability and scalability in order to provide a product or service that meets today's standards.
With the transition to agile ways of working, we now also need consider these parameters in a, let’s say, 2-week time frame, thereby converting developers from long-runners into sprinters. We finally learned not to do big bang releases. Instead, we now deliver minimal viable products (MVPs) as soon as possible. In iterations of usually just 2 weeks we are improving and broadening the product features. We check product owner demands, tackle hard solutions first, define products on the go, focus, learn fast or even fail fast.
The agile way of working gave us a lot more speed in software development. But there are many other effective methods to accelerate our software development cycles even further. We listed our 6 favorite methods here for you. Let's look at them together.
We developers love a challenge. Whether it is learning a new technology, figuring out complex problems or coming up with ingenious solutions. But not all work is fun and games. Repetitive and unchallenging tasks are part of the job. But if you put one of us on a boring task for a long time, you can expect delivery rates to decline over time as we lose interest.
An interesting solution to the loss of speed through loss of interest is to have your team start co-developing with other developers. This can be within the company, or even with developers from other companies. It can be on a specific project or at hackathons. Not only are developers more likely to keep interested when learning from each other, but developers from outside the team or company could come up with fresh insights that might help automate repetitive or unchallenging tasks for your team.
Have an outsider look at an issue and the penny might just drop.
2. Peer review and code evaluation
Two of the most time-consuming tasks in development are bug hunting and searching for solutions to small development problems.
A lot of bugs are simple typos or overlooked errors and alternative scenarios. Those can be effectively addressed by peer programming or code evaluation. Small development problems can be solved easily by software architects or senior developers reviewing each user story that the team is working on and passing on their knowledge of what solution to use or what direction to take. This way, the developer will be put on the right track early on in the process, saving valuable time.
3. Accept the challenge
As a developer, you probably know this situation: You have a question and the answer is not immediately obvious to you. Something blocks you from asking for help. So you enter a few magic words in Duck-Duck-Google and browse through the options that are provided. You see a Stack Overflow page with a snippet of code that you can copy-paste.
Try to resist this temptation. Borrow is sorrow. The internet gets older and so do the solutions. There is potential for acceleration here; don’t take the shortcut but think for yourself. It would be a shame if you are stuck in a depreciated functionality. Instead, study the subject and try to master it. Yes, it might be slower on the short term. However growing in problem-solving will help you get faster in the future and more valuable as a team member. You will only improve when you are challenged, so welcome the challenge and get stuck in.
The first 3 tips for acceleration are focused on the work of the developer himself. Let’s now broaden the horizon a bit.
4. GitHub or code NuGet packages
A popular way to incorporate quality code quickly is to use NuGet packages or GitHub. This is indeed a great way to accelerate your software development projects.
It is great concept: maintained, tested, open source frameworks and libraries for free. Often maintained by contributors, which means it's serviced and there's a stage for any questions you have. At the same time, you can't expect too much dedication with it being completely supported by volunteers.
Using this tactic will give you a small quality and speed boost, and it will bring down complexity in a cost-effective way. Behind the curtains, however, there are some concerns like the amount of alien code you are importing into your project, possible unwanted dependencies, more testing, possible security vulnerabilities.
Overall, this is good accelerator. But there is more.
My work is your work. Sharing is caring. How great would it be if coders elsewhere in the world had created a solution to a complex problem that you have and it was already available for you to integrate into your solutions? And what if it cost far less than creating it yourself?
Awesome! We have our fifth accelerator: the API. Short for application programming interface. A solution based on internet architecture for providing functionality, coded by experts, maintained by the same people and available to you with a single internet call.
These APIs are the jack of all trades and provide benefits for our traditional parameters (time, money, people, quality, complexity), as well as our newer parameters (security, trust, data, regulations, availability and scalability). Looking for the right APIs for your solution might be challenging though, certainly as this technology is currently still finding its way to its target audience.
That’s why more and more API stores are popping up. Specialized companies recognize the potential of providing Functions as a Service (FaaS) via APIs. APIs are becoming an essential part of the current business model and they are moving towards being well-documented, maintained, versioned and available 24/7. Use them to your own advantage!
The Dutch Tax and Customs Administration (Belastingdienst) states: "We cannot make it more fun, but we can make it easier". They have used this slogan for many years and still they haven't implemented a gamification component in the tax return process to make it more fun. Sometimes you have to spend coin to make coin.
Truth is that gamification mechanisms don't apply to all people. Even developers differ in what makes them tick. If done well for different profiles, gamification could give you a boost in time and people (happiness/teamwork).
Take a look at what happens if you add a gamification component to the performance of your own developmental product. Consider this: What would happen if you would simply tie a threshold to a group dinner where the best performer in the game can choose the type of food? It costs a pretty penny to develop but do the math and see for yourself why it's worth it.
We have listed 6 ideas for accelerating your software development that don't need a lot of investment. For some of them you'll have to do the math. Co-creation and code evaluation will break boundaries and up the quality. Accepting the challenge and digging in will help you become a better coder and accelerate in the longer run. Using GitHub and NuGet packages will help save time and money instantly. The API model will buy you freedom, time, flexibility, scalability and many more advantages. And gamification will trigger the ones that needs to be challenged.
Image credits to Jake Blakeley for the model.