Software Development Tips – Planned Development vs. Improvisation

As software developers we often have set procedures to work from. They’re great to have, but they’re not always going to be the best way forward one hundred percent of the time, and that means we also need to know how to improvise. To help you do that, today I’m going to give a few software development tips designed to help you know when it’s time to work by the book, and when it’s time to go ‘off-script’. As an added bonus, I’m also going to touch on some of the areas within a project that are most suitable for improvisation too – are you ready? Then let’s get started!

Consider the impacts on your team and the project

We kick off our list of software development tips with a reminder to check whether or not you have access to all of the resources your project requires. Consider the following situation, for instance: you know that you want to build the software. You know you want to be able to track its progress easily, and stay motivated during development of a tool that is clearly going to include some great functionality, and be something special. There’s just one problem though – you’re missing some of the resources you need to accomplish your goals.

The next move is up to you. You might want to stop development and demand the things you need – just as written in PMBOK, BABOK and other System Development Life Cycle bibles. However, if you do that you’re going to hold the project up (and likely other people involved in it, whether they require the same resources you do or not). As a result, the first of today’s software development tips is to consider how you proceed in such situations carefully. If you really NEED that key resource, it might be worth waiting and working by the book – however, it may also be better to improvise and come up with a workaround that allows you to proceed without it.

Consider who you are developing for

When starting a project, asking yourself what you want to offer through your project is fine  – the second on this list of software development tips deals with the step beyond that. When deciding on the relevant factors of your software project, you should consider the basic needs and style of the client too.

One of the last things any development team would want with any project is to nearly get to the finish line and be told that it’s not exactly what the client had in mind. Working collaboratively with the client and truly understanding who the end users will be can give software development teams a lot of insight before the project goes to actual development.

Remain agile while keeping project goals in mind

Adaptability is the next piece of advice we have on our list of software development tips. As a developer who will be dealing with various types of software projects, you have to be adaptable and remain agile throughout the whole development phase.

Once you begin the actual software development part of the project, your project plan can help you keep yourself and your team on track. However, sometimes the unexpected just happens, and there’s nothing you can do about it. In such cases you might have to modify the original System Development Lifecycle plan using only the tools at your disposal, such as:

  • Feedback loops / iterations (standups, grooming and planning, demos, retros)
  • Goals and monitoring
  • Progress and monitoring
  • Processes and monitoring
  • Risk management
  • Documentation

You won’t need all of these solutions to overcome every problem, and you won’t need to improvise every time there is a problem, but sometimes you will. Don’t always stick religiously to what it says in your development bible of choice, but equally, don’t improvise just for the sake of it. The key to success is remaining agile and knowing when to use each approach – something these software development tips can help you with!

Making a start, gaining (and learning from) experience

A simple list of software development tips can’t cover every eventuality though, and so to close we want to talk about some techniques and methods that will help you learn when to apply each approach successfully.

Some call one way of doing this the Shu-Ha-Ri method, others know it as the Learn-Improve-Create method. Some just develop an intuition through hard work and trial-and-error. Whatever the case may be for you however, feel free to:

  1. Go slow at first. Get a feel for things. Try, fail, ask for help, then try again. Reflect on what happens and learn.
    Scrum can really help here.
  2. Get better and faster at the things you attempt. Test out new ways of doing things. Improve your knowledge. Motivate your team and others to do the same.
    Create things that are needed – a combination of scrum and RUP processes for example – and watch it grow.
  3. Sense. Feel. Innovate. Live and breathe development frameworks.
    Build processes that drive the project or product around the idea and vision. Create art.

Remember that even though these software development tips can help you towards finding a good solution to any development problems you may face, there is no ‘golden ticket’ in software development, nothing that ‘always works’ to get you out of a jam. You need to apply common sense and always be aware of your options. Likewise, you need to realise that each of your development hours can be a learning tool. If what you do works, then great – but even if that learning experience comes through failure, you can still learn ‘what not to do’ and why, and apply that knowledge to your next attempt.

…And if you’d like some more software development tips:

…then Mooncascade are the people to talk to! Don’t hesitate to get in touch with us so that we can discuss how we might best help you to achieve your software development goals.

Published by Martin Küngas

. Martin is a Project and Product Manager at Mooncascade. Helping with digital products and end-to-end software projects while raising awareness about best product and project strategies. Martin is advocating goal-based solutions and empowering every client to achieve their vision.