Principles of software engineering
There are many fundamentals of software engineering – so many that some will get lost over time. Every software engineer has his or her own set of “fundamentals” that they will pass on – fundamentals that even as technology changes, are still appropriate for everyday building.
- Do not work for the future is one of the basic fundamentals of software engineering. It is great to think ahead and plan for a future, but that is often just a waste of time and resources. Focus on building reliable, effective code that you can use in the present.
- You don’t want to repeat yourself. Code is reusable, which is why it has been around for so long. One of the great parts about it is that if you have a problem with the code somewhere and you fix it, you can repeat that fix everywhere. If you try out a new piece of code in one place and it works great, it doesn’t take long to move that code throughout your application. The fundamentals of software engineering make it so that you can change things quickly and easily without having to do too much extra work.
- Remember open source. One of the biggest time wasters in software engineering is building code to do something that someone has probably already written. This is something simple that is fundamental to the operations of your application. There are so many open source options out there. When you have tools that can check your code and keep your software up to date, you will be able to use code from everywhere without having to worry that it will cause a break somewhere.
- Think services. If you write code that does one thing really well, you have succeeded. Do not try to do too much with your code or you will go against the software engineering best practices – and have quite a mess on your hands if it does ever break down. Remember that while complex code might look better, readable code is always better. The member of your software engineering team that wrote the code might not be there when you get an alert that something is going wrong, so you want to make everything self-explanatory.
These fundamentals of software engineering aren’t in place to make things easier for you in the present day, though they do that as well. They are in place so that when you need to make changes somewhere down the line, you will have a team that understands everything and can focus on them.