Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Our company is trying to follow Agile methodologies when it comes to estimating and prioritizing any new development work. The reading I've done makes this concept appear great so we are trying to give it a good crack at making it work for us and hence help with providing a better solution at the end of the day for our customer.

A problem I have had recently is the position of UI design during the estimation of User stories. We kicked off a new project discussing what was required from a functional point of view and getting a set of user stories written down to be verified by the user. Our BA then asked us to estimate these stories.

I went, hang on. Many of these stories might vary depending on the complexity of the UI design. However the BA wasn't ready to discuss UI just yet as she needed estimates so she could plan the sprints and get a costing for the project.

So my main question is:

Where does UI design fit into the process between writing user stories and estimation. Or, should it even fit in and just be a part of the development work?

Secondary question

How does agile fit into fixed price quotes for new work (based on your estimations on the entire user stories set), and how then do you ensure you deliver what you said as far as the user stories go against the quote given i.e. a story is bigger than you thought so blows out

My concerns around our process:

  1. I can't estimate accurately enough at this stage of the process as some elements are missing i.e. UI. It's a new project for a new client so heading into some uncertain waters.
  2. Some features are just too unknown to estimate (Do I need to just delve deeper into the murkiness to clear the waters to remove the unknowns??)

BA needs (as expressed to me)

  1. Wants to have estimates so they can determine how many sprints this project will take
  2. Wants to have estimates so they can determine the scope and cost of the project so that they can give it to the customer as a quote.
share|improve this question
    
If you create vertical slices, you necessarily have to address the UI. However, you don't have to design the complete UI, theme and all, at the start. Whenever you slice a story, you are addressing only those parts of the UI specific to a story. Personally, I believe it is essential that you have to revisit the UI decisions periodically to generate a consistent them and usability model, but you treat it much like refactoring your code. –  BobDalgleish Apr 4 at 1:59
    
@BobDalgleish ummm so your saying the UI design needs to be addressed prior to estimation, or at least in part? –  dreza Apr 4 at 2:10
    
Bryan Oakley's answer below is good summary of my thinking on the subject. –  BobDalgleish Apr 5 at 18:48

1 Answer 1

UI design is no different than architecture or coding or testing -- it's part of the scrum process. Some say that in an ideal world the team will do all of that in a sprint -- but only enough UI design for that sprint. Others are more pragmatic and say it can't be done, and will do design in one sprint and coding and testing in another, or design and coding in one and testing in another.

A common pattern is to do design work / UI stories in one sprint and code in the next. After all, if you don't know what the UI is like there's no way you can estimate how much effort will be involved in coding. Consider the difference in the home page for google.com vs bing.com -- both have the same primary function, but bing.com has a considerably more elaborate UI design.

That being said, estimates are just that: estimates. Nothing in scrum requires that they are accurate only that they are consistent over time. Whether you estimate a story as a 5 or a 13 doesn't matter as long as similar stories are estimated the same way from sprint to sprint.

So, do what the team thinks is right -- do a UI story before doing the development, or do them together. If the PO says they have to be done at the same time, make sure you factor into your estimates all of the uncertainty. Do your best to estimate, knowing it will be wrong. Learn from that in your retrospective and talk about what worked and what didn't. Then, adjust your procedures going forward.

Above all, don't expect the estimates for the first half-dozen sprints or so to be the least bit accurate. Over time, however, regardless of the strategy you should start to do approximately the same number of points each sprint, which the PO can then use to predict how many stories you can do in a sprint.

share|improve this answer
    
thanks Bryan. ok, so when we are asked for our estimates to decide how many sprints this project is going to take and to determine costing of the project, are you saying this isn't really practical? Or is that a seperate issue? –  dreza Apr 4 at 2:22
    
I think your understanding of scrum is flawed. You don't "decide how many sprints". Instead, you do release planning where you outline all of your epics and stories. You give them the best estimate that you can. You will often be wrong about those estimates (typically underestimating). You total up all the points, and you divide by the average number of points your team has done over the past release. that tells you how many sprints it will take. Obviously, if your team has no average, you can't accurately calculate how many sprints. –  Bryan Oakley Apr 4 at 2:28
    
Ok, so your saying in our first x number sprints, we don't say how many stories we are going to do. We just do a sprint. then at the end we can see how many we have done and start using that to calculate the number of sprints left etc etc getting more accurate as we go? –  dreza Apr 4 at 2:34
    
Yes. You'll need to just do a wild guess for the first sprint. From then on, the number of stories you pull into a sprint should be based on your average velocity. If you really need to estimate the whole release, give a range of estimates. Say "we estimate 150 points for the release, so if we do 20 points per sprint that's about 8 sprints, if we do 25 that's about 6" and so on. –  Bryan Oakley Apr 4 at 2:42
    
ok that makes more sense. Just gotta try and convince the BA now as they are wanting to go at it from the other end. –  dreza Apr 4 at 2:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.