良い方法を提案してくれる。なにをやるのか明確にしてくれる。なにをやらないのか明確にしてくれる。重要なのが、『なにをやらないのかを明確にする』という部分です。リアルのお仕事でもここが重要でありできていない人が多いです。要は作業範囲を明確にしてくれるってことです。何をやってくれるのかを明確にはしてくれるけど、何をやらないかを明確にする人はすごく少ないし、これができる人は仕事できる人ですね。要は、やらないことまで明確にしないと後でモメるんですよ。こちらはやってくれて当然と思っていることでも、最初の作業指示・要求にないことは基本『やらない』ことであり、あとからこうしてほしい、これバグなんだけど、と言っても『仕様です』、『要求にありません』、『機能追加(別料金)になります』で片付けられることが多いです。動かないツールを納品してきて『仕様です。あなたの要望通りに作った結果ですよ?』っていうこともこの業界ではよくあることです。みんな自分を守るのに必死なんですよ...わたしも含めて...。良いエンジニアというかわかっている人だと、こういう作業範囲のところでよく問題が起こるためはっきりさせてくれる人が多いです。逆に言うと、依頼する側としても作業範囲をしっかり明確にしておくべきです。『なにをやって』、『なにをやらないのか』。ついでに『誰がやるのか』というところも。それでも要求が漏れてしまうことはありますが、エンジニア側からもカバーしてくれる人だと良い人ですね。バグは仕方がない...すみません、どんなに優秀なエンジニアでもバグは許してやってください...。してもバグは出てしまうものなんです...。自転車のボルトを100の力で締めるところを99にしてしまったというミスが起こってもほぼ100%問題にはなりませんが、ソフトウェアの場合は1文字間違えただけで飛行機や電車のシステム全体が止まったりするし、地球の裏側まで飛んでいって修正しに行かなければならなかったりします...。設計がアホみたいに悪くなければ、いつかかならずバグは収束しますので...。止まってニュースになる電車や空港のシステム。あれもきっとたった1行ミスっただけなんですよ。裏では犯人探しが始まり、犯人が特定され、担当者は死にたくなるような想いをしているんです。いう事情を知っていると、『プログラミングなんて簡単』、とか絶対に言えないわけですよ。悪いエンジニアとは?簡単に言えば、悪いエンジニアは、良いエンジニアに並べた項目のことができない人です。