Hi,
Your first sentence is correct: If story A depends on story B, then story B must be finished before A can be.
iceScrum avoids story nesting and offers two solutions instead, depending on your case:
– Case 1: A story is so big that it is actually an individual and valuable product feature that will take several sprints to complete. In iceScrum, this is called a feature. Features have their own backlog, a feature can have zero, one or many child stories and it gives its color to its child stories. A story can have zero or one parent feature. Read more about features in the dedicated documentation.
– Case 2: a story is a bit too big so it is divided into individual separate smaller stories and the original big one disappears altogether so there is no link parent / children. The next version of iceScrum will offer the ability to identify such big stories as « Epic stories » (see Epic story App). The ability to split a story into smaller ones is already available.
In both cases such stories (either stories belonging to the same feature, or stories split from a bigger one) must be « good » stories. That means that they should be made as independent as possible from each others so they can be ordered in the backlog, planned and completed independently.
However, this is not always possible, that is why the story « depends on » feature allows ruling that a story cannot be completed before another one. If a story depends on more than one other story, then you should try to break these dependencies because they would greatly hinder your agility. You can also wonder if the dependency is worth specifying in the tool (light/soft dependencies are fine and are probably not worth specifying).