Photo by Jess Bailey on Unsplash
5 Myths in Software Engineering busted.
Software myths in software engineering
Introduction
Software engineering is the process of designing, developing, and maintaining software systems. Software is everywhere, and you are using it to read this blog. A software engineer in some part of the world developed and built the software you are using.
The demand for skilled software engineers reflects the importance of software engineering. There will be a growing demand for professionals who can create, develop, and maintain high-quality software systems.
As the demands increase people have developed some myths about software engineering. I am Sagarmoy Sengupta, I am developing software since 2012. I am a Lead Engineer and my code helps one of the biggest retail brands in the world to serve 150M requests monthly. I will burst some of the common myths of software engineering in this blog post.
Common Myths of Software Engineering
Myth #1: Anyone can be a programmer
Anyone can be a programmer if they have these qualities:
Dedicated to learning.
Love to Solve problems.
Patient and ready to find new ways in case things don’t work.
99% of aspiring programmers quit at stage 1.
Programming in general is like cycling, you get better at it over time and there are no shortcuts, no finish line.
If you belong to non-technical background a guide or a mentor can help you. You can start following them over social media or just drop the
Myth #2: The code is self-explanatory
Writing well-organized code is important but it is not enough of its own. Without background or context, you won't understand the purpose of the code. So, it is very important to include these:
Documentation helps to make the code more transparent and maintainable. It provides context to other developers.
Proper Commit Message is important to have a clear record of what are the changes made, why are they made, and by whom.
Link to the task is important for the future developer to know the holistic view of the code in the business
Myth #3: Debugging is easy
This is the area that makes elite software engineers. Anyone can write code from scratch but it takes an expert to fix problems in an existing codebase.
This skill can't be learned by reading a book, a video, or a podcast. The skill of debugging comes from only two activities:
Practice - writing code year after year.
Experience - in fixing bugs. I mean a lot of bugs.
If you want to read a great story on what makes a person an expert, head over to this famous story.
https://patrickthomson.tumblr.com/post/2499755681/the-best-debugging-story-ive-ever-heard
Myth #4: More developers are equal to faster development
This statement used to be true some years back, but now with the introduction of AI, this is not true anymore. There's a diminishing line between a frontend engineer and a backend engineer or a mobile developer. The industry now works on Software Engineers who ship a product end to end.
We should consider large projects like cloud providers, space tech, etc. These projects are very hard and take a lot of specialists to develop. But this is a very small number of projects in the entire software world.
A specialist can do the work of 5 engineers, so it's best to hire a specialist early on in your project.
The downside of having too many developers on the team
Not everyone is going to get the best work.
A lot of time is spent on coordination and developers need to coordinate all the time.
Capacity is the most important stage while starting a project because if hired unmindfully the project deadline is going to decline.
It is best to hire Project Managers in this situation because they will have better experience in capacity planning.
Myth #5: You don’t need Maths for software engineering
This is the most controversial topic of them all.
Computer Science is Mathematics.
If you are good at maths it means you're good at problem-solving. Software engineering needs you to solve problems, that's the job.
You can quickly come up with solutions if you have a basic mathematical aptitude. It also doesn't mean you'd need Calculus or Discrete Mathematics on a day-to-day basis. Most of the time you'd solve simple quantitative problems.
Machine Learning, AI, and Data Science use Advanced Mathematical concepts. The foundation of advanced mathematical concepts is a huge advantage for you if you want to pursue these fields.
To sum up, having a solid foundation in Maths is beneficial to any programmer.
Conclusion
There are many other prevailing myths in the field of software engineering. I have explained the most common myths that I see or observe day to day.
Anyone can be a programmer
The code is self-explanatory
Debugging is easy
More developers are equal to faster development
You don’t need maths to do software engineering.
I request every reader to stay informed and not believe all the Myths that they hear and always consult an expert whenever in doubt.
I wish to help all my readers and write about better software engineering, distributed systems, and interview preparation strategy.
If you liked it, do follow me on Twitter. It helps new writers like me.