Original Post
Preface:
I have just completed a small project that involved 4 warm bodies of varying skill levels and skill sets that required us to provide a proof of concept. So off we went and came up with a pretty good design (C++, involving CORBA, XML, XSL and implementing the ACE socket libraries among the technologies used) and we were all tasked to research, design and implement the various modules that would at a later date be integrated and then ported onto Solaris from NT.
Ok we did it, but I think that ''they'' will reject the proof on concept because off all the problems, mostly caused by the team leader, that were encountered.
The Team leader, a person for whom I had great respect for, made a mountain out of a mole hill, re-wrote every ones code, and pretty much frustrated everyone with his STL evangelism. So now we all have lost a great deal of respect for him and have no wish to work with him again.
I find it frustrating that a person with his ability can screw up a project so badly, it''s as if the team did not exist. BTW, I have 14 years, another has 12 years and the other guy has 6 years experience, the Team Leader has about 14-16 years.
Saying that... on to the topic of the thread.
I, and I believe pretty much every SE, practice the following:
The 3 Cardinal Tenets of Software Engineering
Tenet 1. Keep It Simple
Corallary: Don''t build a suspension bridge to ford a puddle.
Tenet 2. If it isn''t broken then don''t fix it.
Corallary: Don''t rewrite code based on aesthetic principals.
Tenet 3. There is always more than one solution.
Corallary: Don''t assume that your way is the best way.
Now most of us have learnt these leasons the hard way, in fact that is the only way to learn them, in my opinion.
So I was wondering if there were any other SE''s out there that bare the scars of past short sighted mindsets wether they were based on ignorance or evangelism, and what they are.
The idea here is to share lessons learnt.
D.V.
Carpe Diem