According to Microsoft,The EnsureChildControls() method is called in order to make sure that child controls have been created.
I see many developers call EnsureChildControls() in CreateChildControls() or Render(). Also, I have figured out that most web parts or controls works fine even without explicitly calling EnsureChildControls().
Any thoughts on when and how calling EnsureChildControls() make sense?