UnityのGameObjectの名前のつけかたとかInspectorについて言及しました。
ベストプラクティス

0から開始の方が便利。プログラマ的に。
デザイナーが絵だけかければいいと思ったらダメ。スキルがないとかではなくても、きちんとこういう心遣いが出来るのが重要。
明らかに親子関係がある場合は、GameObjectも親子関係にしたほうが便利
Button01の中にラベルがあるので明らかにTextが子ども。
uGUIでのUI/ButtonやNGUIでのUIButtonの場合は勝手にUnityがやってくれる。
Editor拡張でコンポーネント表示

これをダウンロードして解凍して、Editorフォルダの中に入れておく。
中途半端なプレハブを強制的に外す
これで出来ます。
https://gist.github.com/shinriyo/c4a347f391870611fc51
NGUI使っててdepthの調整が面倒なときはこれ使いましょう。
ショートカットでdepthをかえられます。
1増やす・・・Control + Shift + k 1減らす・・・Control + Shift + j
バッドプラクティス
もし、あなたの会社にいればクビにしましょうみたいなバッドプラクティス。
それによって、エンジニアのスピードも上がりリリースが早くなること請け合い。
採用時にUnityのアプリが提出であればこの辺を見て不採用にするのが吉。
悪い名前
論外

Button01 (1)
・・・??はぁ?(1)とか残ってる。
これは仕事サボってるレベル。
command
+ D
とかで複製したのをそのままにしてる時。
混乱を招く命名
これはGameObjectのDQNネームの私が命名したい。
tex
テクスチャなのかテキストなのか区別できないようになっている。
col
Collider
なのかColor
なのかわかりにくい。
まだあれば追記する
悪い数字

00 -> 02 -> 01って???
画面上揃ってるように見えるが名前がめちゃくちゃ。
もしインスペクタでドラッグするときに間違ってしまい、バグの温床となる。
特に、そのままGameObject[]の変数にInspectorでドラッグするときにそのまま入れてしまう。
シリアライズしないのにInspectorに公開
public class Title : MonoBehaviour
{
public bool hoge;
ってやってる場合、しかしInspectorにて使わない場合、これは放置しないこと。
Unityが勝手にシリアライズしてしまいます。(Inspector上に出てしまう)
public class Title : MonoBehaviour
{
[HideInInspector] public bool hoge;
のように、[HideInInspector]
をつけましょう。
または、↓のようにプロパティがベスト!
public class Title : MonoBehaviour
{
[HideInInspector] public bool Hoge {get; set;}
無駄に可視性を広げた変数
public Gameobject[] bar;
やたらとpublicにする人が多いが、
日本の出版社が入門書出しまくったせいでの弊害。
publicはいらない。
[SerializeField]
+ private
でOK。
[SerializeField] Gameobject[] bar;
まだ、たくさんあると思うので編集リクエストやコメントがあれば採用します。