When it comes to developing software, I like to have a clear vision of what the software should do. Before I ever even start coding, I plan things out, then write a map of what they code should do. Without a clear roadmap of where things should go, there’s a high likelihood that a software development project will fail.
Even if it’s a small project, I need a clear vision. Case in point: I have using a website that uses the Python programming language to write and play music. It’s called Tunepad and I have had fun learning how to use this environment. For years, I have been looking for the right environment to code music and I believe I have found it. The main driving force within my search is my grandfather’s “panacoustic” chord system. While ultimately, I want to use Tunepad to develop his work, right now, I am finding Python structures useful for developing small practice pieces.
One such piece is a song called “El Shaddai” by Amy Grant. My wife and I play through it (she’s an absolutely amazing singer) and it sounds good. However, I want, very much, to record it someday and I want to develop the arrangement within Tunepad. First, i build the parts within Tunepad, Then, i transport them via MIDI files into Ableton Live. But before I even start writing code, I map out all the chords and melody lines so that I can write the Python structures more efficiently and accurately. Really, the result will sound the same if I just play and record, but, I like to keep up to date on coding skills and Tunepad allows me the opportunity to keep my coding skills fresh.
Regardless, the point is that I spend far more time planning and mapping out how I want the code to behave. In a real-world software development project, developing a clear roadmap saves both time and money. Yet, this process is often the most overlooked aspect of a software development project. In software development, as in life, without a strong roadmap, it’s almost impossible to get to the desired goal. I continue to develop my own roadmaps and I encourage everyone to do the same. The results will be far better, I promise.