The attitude that every engineer should have, in every filed of engineering is :
I can solve the problem the right way.
Whatever the problem is , there's always a right way to solve it. the right way can been known , and it can be implementd. The only valid reason ever to not implement something the right way is lack of resources. However,you should always consider that the right does exist, you are able to solve the problem the right way, and that given enough resources ,you would solve the problem the right way.
The "right way" usually means "the way that accounts for any resonably possible future occurrences , even unknown or unimagable occurrences".
A bridge that could stand up to any resonably possible environmental condition or any resonably possible amount of traffic without constant maintenance would be built the right way. Software code that maintained its simplicity while providing the flexibility needed for resonably possible future enhancements would be designed the right way.
There are lots of invalid reasons for not solving a problem the right way:
-
I don't know the right way. Often this requires more understanding or study, to figure out the right way. When I run into this situation, I walk away from the problem for a while, and then often I'll come up with a solution when I'm just out walking, or the next day when I come back to it. I try not to compromise on something that isn't the right way just because I don't know what the right way is yet.
-
The group can not agree on what the right would be, sometimes a group of people have argued about what would be the right way and the subject has gotten very confused. Groups are not very good at making decisions. As we all known ,you don't design software by committee, and I suspect that "design by committee" in other fileds of engineering is just as bad. The solution here is to assign an experienced and trusted engineer who understands the basic laws of the subject you are working in to determine the right way by himself or herself. Probably after carefuly studying the existing arguments, collecting relevant information, following standard, valid engineering procedures.
-
I'm too lazy/tired/hungry/discombobulated to do this right way, right now. This happends to everybody from time to time. It's 1 in the morning and you have been working on the project for 15 hours straight, you just need the damn thing to work right now. Give it a rest though, and come back later. The world isn't ending, and the problem will still be there and solvable later. Go to sleep, go eat something ,tak a walk. Do whatever it takes to get into a mental space where you are willing to solve the problem the right way and come back. If you are in a state where you can't solve the problem the right way, it's really time to take a break. You're not being delinquent in you duties if you do so, you just actually correctly taking responsibility for the success of the project by saying "this need to be done the right way. the way to do it right right now is to take a break and come back later" Mostly, It all takes the constant and continual belief in yourself that you can solve the problem the right way.