Being a software developer can certainly have its challenges as well as rewards. As we go through our day sometimes we work on a few projects a day and sometimes its one project for three months. It just depends on the complexity and the time it takes to complete the project. Since the world is currently in a pandemic (coronavirus), the demand for the job has been higher than ever. If you are currently working in the industry you may have had to work more. No problem right? But what if you want to have a work life balance or you have kids that are learning remotely at home.
Map It Out
How many times have you just wanting to dive straight into a project thinking you know exactly how you are going to attack a problem? Separate yourself from the average developer and create a UML diagram of what the program is going to look like. In addition, create a use case diagram to show the relationship between different actors involved. It helps when you can have it laid out in front of you to see the program flow instead of keeping it in your head only to forget later.
In some cases a UML diagram might be to much. That's when I like to create an algorithm model first as initial documentation and then later expand on that. Simply writing down the steps is sometimes all it takes. Keep it simple.
If you don't have any formal training or experience in development then you may not know its best to start your development by planning what the objective of the software is. This process is often the most skipped and although I love to preach this, I have missed this planning phase and jump straight into coding. Its a bad habit to get into to jump straight from initial idea to coding. I know you may be thinking, well I'll just think of it on the fly. On a small project that may be OK, however anything over a few hundred lines of code really needs to have planning. For design I usually use Adobe XD or a piece of paper to make sketches. For programming, always look to a UML diagram first before coding anything.
Keep through code as reusable as possible. There is an acronym, DRY, which stands for Don't Repeat Yourself. This is just as important as any other best practice. The point is too not reuse the same piece of code over and over, but use the same function over and over. This way if you need to change the functionality, it will be changed where ever it is being used.
Try to write your code in small modules or functions. The more your code is modularized, the better chance somebody else won't have headaches maintaining it.
Testing in software development is something that can't be an oversight. If you want a successful project, you need to test, period. Fortunately there are different kinds of software testing that is available to us so when can rest assured that our project will build and be deployed successfully.
In the process of testing we can start with our application or website. There are different types of tests: integration tests, functional tests, unit tests and performance tests. Whenever you decide on which test you want to be running, you will have to write the test. This can be intensive, fortunately we can automate this process. For applications and websites we like to use Selenium. The implementation is really up to you on what you want to include or exclude in your tests.
Source Code Repositories
Hopefully you've never lost your source code on a project. The feeling is horrible and you are at a loss of words. The frustration is deafening as well as you just feel like a failure. If you have ever been in that situation you know exactly what I am talking about.
There are some good options for source code repos.
Here is my list of source code repositories:
Each have their own differences as well as similarities on the concept of how they work. You will have to know the difference of how they work in order to choose which is right for you and your business.
Thus far we have described a workflow. The workflow that you put together is entirely up to you. After all, you will be the one working with it. There is no "this is the best way", but there is best practices.