At the very end of the day, in software engineering every aspects of application development boils down to the startup dilemma.
- If you manage to survive as a company, you don’t have the time to build a flying unicorn product.
- If you take the time to build the flying unicorn product, you don’t survive as a company.
An idea comes up that seems fairly unique and great and you would like to devise a product out of it. Unfortunately, you don’t have the money to survive for the time it takes and the quest for VCs starts.
Now, suppose you’re no longer (or you’re not) a startup. You have built a few products; survived as a company; found investors. You’re a full-fledged company now. You have products made of software and the services you sell rely on internal software systems.
How do you write software effectively? First, let’s define “effectively”.
Effective is not what yoy may show off on LinkedIn. Effective is not to impress impressionable peers at industry shows and webinars. Effective is not for the technology it uses. Effective results from three facts.
- Always know your business domain
- At least occasionally, make ad hoc decisions
- Very often swim counter stream
It’s ultimately pragmatism.
Pragmatism in software development refers to a practical and results-oriented approach that prioritizes solutions that work effectively in real-world situations. It emphasizes the importance of making decisions based on practicality, cost-effectiveness, and user needs, rather than rigid adherence to theoretical or idealistic principles.
Pragmatism or practical reason?
Practical reason refers to Immanuel Kant. Practical reason represents the ability to determine what one ought to do based on the moral law, transcending personal desires and emotions. Kant’s ethics emphasize the autonomy of practical reason in determining universal moral maxims.
Replace moral with software-related and you’re there.
Pragmatism is simply having things done in a way that allows you to keep on doing things, avoiding roadblocks or having an easy way to go around them.