cenario: You’re on the couch scrolling through Twitter. You notice buzz around a topic and…EUREAKA - INSPIRATION STRIKES! You just thought of the PERFECT way to solve the problem using code. You turn on your Macbook and open up VSCode. And then…you stop. You have no clue as to what comes next.
Sounds familiar? I believe we’ve all been there when we first started learning how to code. When inspiration strikes for a coding project, honestly, the very LAST thing I do is turn on the computer. Because think about it - what are you going to do? You’ve just barely conceptualized and have done little to no research.
You see, when you fail to plan, you plan to fail. These words could not be more true when it comes to starting your own coding project. Below, I’ll walk you through the steps I take when starting a coding project. We’ll be using the How I’m Feeling project I created using Azure Functions, Flic and Twilio SMS.
Determine your Objective
Figuring out your objective early on will help keep you on track to build what you initially intended to create. Doing this step helps to ensure that the decisions you make later down the road are within scope of the project.
When I created How I’m Feeling, I told myself that I wanted to create a way for someone to send a text message describing their mood to a number with minimal effort.
Find the Knowledge Gaps
Regardless of whether or not you’re using technology in which you’re familiar with, it’s best to take inventory of the skills that are necessary to complete your project. You don’t want to complete 80% of the project only to realize that you need to push your launch day out by a month due to not understanding how something works. Take note of the technologies that will be used for your project and determine whether or not you’re in need of learning something new. If it turns out that you need to acquire a new skill along the way, reach out to your network for how-to resources or just do a simple Google.
I told myself that I wanted to create my app using Python. However, Azure Functions gave me a very big “…not today you won’t!”. Unfortunately, Python is currently in preview for Azure Functions which meant that I needed to use a different language.
I reached out to my network for help prior to starting the project. I wanted my friends over at Twilio and the folks over at Azure to know in advance that I might need some assistance. They were all willing to lend a helping hand!
Note: And I’m glad that I did this because Tierney helped me solve an error that made me almost want to throw away my laptop.
While creating the app and setting up the logic, I hit quite a few speed bumps. However, knowing what to Google helped a lot! I did go down the rabbit hole of Microsoft documentation, however it was all USEFUL content and gave a lot of context to what I was learning.
I was able to learn more about Binding Extensions and even found myself trying out the logic in Visual Studio (I gave up on that, though. But at least I know how to start a project in Visual Studio!).
Decide on the Features and Workflow
Once you’ve determined your knowledge gaps, check to see if your objective is still in tact. Did you need to modify the scope of the project? If so, it’s not the end of the world. It’s better to figure out these things early on rather than near completion of the project.
Take your objective (or refined objective) and consider the features of whatever it is that you’re building. Also take a moment to brainstorm the workflow of you. Those features will help you determine what actually needs to be created.
There weren’t any features per say for my How I’m Feeling app. However, there was a clear workflow that I had to follow:
A person will click the Flic button which will trigger the Azure Function to send the Twilio SMS to a designated phone number.
Break Your Coding into Phases (or Sprints)
Rather than pick any ol’ step in the workflow or feature and start coding, you’ll want to break-up your coding into either phases or sprints. The best way to execute this step will vary by project. You may find that it makes more sense to prioritize the easier coding first and save the tough parts for last. Or you may determine that it’s better to just start with very basic features and add onto the project at a later phase.
Prioritize your features list in a way that’s conducive to your coding style and end goal.
Initially, I wanted to jump the gun and figure out the logic for everything. However, I had to remind myself to slow down and figure out everything in pieces. I figured it made sense to get Twilio up and running to ensure that I knew how to send over a text message with Node.js. So, I completed this Node.js Quickstart tutorial and was successful!
I then needed to get an Azure Function to work. Rather than focus on integrating Twilio, I completed the Create Function Quickstart provided by my team over at docs.microsoft.com and followed up with the Microsoft Learn module as well.
Once I had that figured out and was successful, I then decided to work on connecting Twilio with Azure Functions.
Create a Timeline
Are you on a time crunch? Or are you just doing this project for fun? Regardless of your answer, I urge you to set some time parameters around your project. Only you know the level of effort it’ll take for you to complete something. Be realistic in your timelines and add some buffer in case something goes wrong or if you decide that you need a coding break (or extended hiatus).
So what if you’re coding for fun? I still urge you to set some time parameters. Otherwise, you may end up with a project that’ll never get finished. I strongly feel that the act of completing a task increases endorphins and honestly - who doesn’t wanna be happy?
I knew that as soon as my Flic button arrived, I wanted to work on the How I’m Feeling app. Not to mention, I had set a goal to have it all figured out with a full ready to go tutorial by that Sunday evening. Overall, I had 6 days to get to work!
I had spent 2-3 days learning more about Azure Functions, one day getting Azure Functions, Twilio SMS and Flic to play well together, and then another day to write the blog post.
Dedicating more time to planning can be beneficial for because it enables you to identify risks early on and set yourself up for success as you start to code.
Doing code projects is a fun way to flex your coding skills and show the world what you’re capable of creating. Rather than stress yourself outside, take the time to properly plan out your projects before heading to the code editor.