…
I've always lived that way. It's nice, it's pleasant if you can do it. I'm lucky in my life that I can do this.”
-Richard FeynmanLos Alamos From Below: Reminiscences 1943-1945 - Caltech
Feynman said this after he pretty much told, physics legend Neil Bohr, off. During a discussion, Feynman said following about Bohr’s idea
"No, it's not going to work. It's not efficient. . . Blah, blah, blah."
and
"That sounds a little bit better, but it's got this damn fool idea in it."
In the above mentioned Feynman's words, there is a good lesson for everyone; especially for those of us who call themselves Software Engineers. When you are providing input to someone about architecture, design or anything CS in general, be very honest. If someone tells you how to do “software things” and you think the specified method is flawed, speak up. Always be worried about computer science and software engineering like Feynman was about Physics. Just because someone has 15-20 years of experience, doesn't mean that every idea they'd propose is going to be great. Don't argue for the sake of argument but if you see a problem, point it out. There are more than enough people in the world who would think that having a flash button is far better than a static gif because "you can feed text to it via a parameter and it would become whatever button you want it to be". Might sound cool but generally speaking, this is definitely not a good enterprise design idea (instantiation cost, compatibility etc). If a senior developer wants to put config settings in the database, and you see that they don’t belong there, question it. If that person also loves technology, simplicity and good design, they would concur with you once they see their mistake. Otherwise, you’ll always have the option of singing “I told you so” when the thing starts crumbling. Without courting with your ego, fight till you can and make your case from a technology standpoint. Do not sign off on a technical design just because the next person did. It’s important that you practice your judgment in software design; such people are definitely an asset to every software team.
Remember Me