An intellectually grueling field like software engineering will attract a lot of smart people. It also attracts smart alecks too. There's a big difference.
|Smart person||Smart aleck|
|Uses their smarts to help the project succeed||Tries to get people to think how smart they are. Usually their facts are wrong and their ideas are impractical.|
|Tries to build positive things up - i.e. create new process, actively solve problems||Constantly nitpicking trivia and tearing things down, without offering alternative solutions.|
|Ready to actually implement ideas||Retreats to empirical trivia or theory (perhaps by considering themselves "visionary")|
|Willing to admit they're wrong in order to find the best solution||Avoids offering any criteria for falsification because they don't want to be "trapped" or be wrong.|
|Eager to have their own work reviewed in order to get the best product, and learn from others.||Eager to review (and critique) others work, but resistant to apply the same standard to them self.|
No one likes smart alecks. I don't have a cure, but here's some ways I've found to deal with them:
Encourage them to funnel their efforts into something good. For example, saying things like "That's an interesting idea, why don't you try building it?" or "That's interesting trivia, but do you see anything with a higher rate-of-return to focus on?"
Don't be intimidated - smart alecks often try to intimidate others with big buzzwords or obscure trivia. But you can cut through the buzzwords by asking them to explain it in plain English. Smart alecks are dangerous to a project, so good developers have an obligation to defend the project against the smart aleck's ego.
Put the smart aleck in their place, perhaps using a standard pass-or-fail approach with agreed-upon rules. For example, you may say "if your idea is right, then this C# method should not compile, are we agreed?" Nothing like having the compiler itself crush a smart aleck's ego.
Fire them. It can be tough, but if they're writing bad code, while constantly distracting others with false alarms via pointless trivia and argumentative questions, they may just be "not a good fit" for the company.
There's a saying, "If you have to tell someone you're a lady, then you aren't one." Likewise, smart people don't need to try impressing or convincing others that they're smart, usually people just recognize it as a side affect of the value they add.