I just graduated and started my career as a junior software engineer. The one thing I am struggling with right now is not knowing when to stop doing something from scratch.
Last week I was told to simulate a warehouse environment and tell my boss what sorts of layout should be optimal. I spent days trying to build that in Simpy, Netlogo, Google OR tools. Even though I was aware there's a software tool called AnyLogic for doing all this for you, I just didn't use it.
After spending almost two weeks with partial development my boss wasn't satisfied with my work. And now I'm watching AnyLogic tutorials. I am not sure whether I should keep working on improving my partial work or switch to AnyLogic and save time.
I would highly appreciate if you give me some suggestions to know when to go for the built in stuff and when not to. I know it sounds very simple but it's actually not. Requirement analysis of a project is very tough.
Thank you. :D
If future flexibility (upgrading, knowing how it works, etc.) of doing it from scratch benefits you more than using a prebuilt system saves you time, do it from scratch. Otherwise it's not worth it. Time is money, and you can't get time back.
As long as you understand what exactly it is that you are doing with a prebuilt system then there is no issue in using it. When I code, am I doing something wrong by using VSCode instead of writing my own text editor? No, I know what a text editor does and how it does it.
When I use VSCode, am I doing something wrong by running it in Microsoft Windows or Linux, and not custom developing my own operating system? No, because I know what an operating system does.
The flexibility of writing my own software to do these tasks does not outweigh the time saved by using a prebuilt solution and therefore I will end up being more productive, and probably make more money in the end, by using them.