One of the pitfalls that software engineers easily fall into is a lack of investment of time and effort upfront. We often make excuses like “We don’t have time.”
What do we need to think about before working on software? What does investing time and effort mean in software engineering? These just pop in my head. I’m sure there is a lot more…
- Software Architecture
- Source Control Structure
- Promotion Strategy
- Continuous Integration
- Continuous Delivery
- Binary Storage (such as Artifactory)
- Automated Testing (part of CI/CD)
- Test Environment
- Alerting System
- Network Security
If you don’t plan and just go ahead and code, the wrong things remain there for years because “we just don’t have time.” No, we HAVE to make time to do things right and you (and I) are responsible for persuading the stakeholders that you are spending some extra time upfront. In the end we get to save so much time, energy and money.
It’s never perfect, but make sure to think about your software or even some scripts you want to write for automation purposes at many different levels upfront before you even start to write code and your software will be successful for a long time.