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.

What is your methodology when you need to determine the cost of UI design if you know the cost (work hours) of programming in some project?

Let's say, programming of logic in some project cost X dollars. Is there some general percentage (like 30% of programming costs) which can help determine the cost of design?

The area of interest is mobile phones development (mainly business tools and 2D games, not 3D at all). There is less design work here comparing to a web design or a PC game design.

share|improve this question
1  
you mean UI design, software architecture design? –  AK_ Feb 2 '12 at 17:55
1  
If your question is about UI design, you should remove the design tag and apply the user-interface tag (and make it clear in the question text that you are referring to UI). If you are referring to architectural design, perfect! –  Yannis Rizos Feb 2 '12 at 17:57
    
Yes, UI design. I've changed the tag accordingly. –  deviDave Feb 2 '12 at 20:56
    
One thing that probably holds true for both... You'll need to triple your estimates. –  NickC Feb 3 '12 at 10:06

3 Answers 3

up vote 6 down vote accepted

There is no such percentage. In the same way, there is no percentage of time you'll work on security, for example. One application must be secure and will require half of your staff to work on it. Another application doesn't have any security concerns, so the impact on your schedule will be minimal.

The time required to do visual design depends on the requirements. It's not about the type of software (you quoted business tools, web applications and games).

  • If my customer doesn't care about visual design of a website, I'll spend a few hours creating something basic, and use the remaining two months of work for other, more important aspects.

  • If my customer cares about user interaction, I'll spend a few weeks creating carefully the different aspects of interaction design, polishing the visual aspect, etc., while caring less about the aspects which don't matter for this customer for this project.

In both cases, it's still a web application.

In general, you have two ways to group tasks when creating an application.

  • The first one is sequential: it's the states you need to do in order to achieve success in your project. You start by gathering functional and non-functional requirements, you work on the specification, architecture and application design, you create tests, you write the actual code, you deploy and maintain the application.

    Here, depending on the level of seriousness and the scale of the project, you have the similar percentages from project to project. For a home-made tiny application, you'll always have 0% to 5% for requirements. For a large-scale enterprise application requiring exemplary QA, the time you'll actually write code will be 15% to 20%.

  • The second one is parallel: it's the things you have to do, given that they are nearly independent from the point of view of project management and the things you may do or skip. It includes security, visual design, portability, performance, etc.

    Here, percentages are irrelevant. It's more a question of priorities, not the scale of the application and the required QA level. A business app may have an outstanding user experience, because the stakeholders know that the project will fail otherwise or that the UX is a competitive edge. Another business app may have nearly no design at all, because there is nothing to innovate in terms of design.

share|improve this answer
    
Great points. You pretty much pre-wrote my response. One thing to add... It is hard to imagine you could know the programming size to a higher degree of accuracy than design. –  MathAttack Feb 3 '12 at 1:52

The problem here is that there is no widely-accepted definition of what design is in software development. For example, for many people the line between design and coding cannot be drawn sharply, and some see design and coding as being the same thing:

http://www.developerdotstar.com/mag/articles/reeves_design_main.html

From this point of view, the cost of design is the cost of programming. Other people think "drawing some UML diagrams" or "creating some GUI layout" is design - especially when this task is assigned to some non-programmers. If that's the case, ask those "designers" about their effort, and you will easily find your design cost.

So, first make clear how you define design in your team, and if this task is done in your team somehow "separately from coding". If you cannot separate the design task clearly, don't try to separate in form of costs, that will make not much sense.

EDIT: from your comment, you made clear that you meant UI design (even though you forgot to change the misleading title of your question). Nevertheless, you have to define where you draw the line between "UI design" and "coding". Is UI design for you just "draw some forms with pencil and paper"? Is it the design of the exact behaviour of your UI from the perspective of a user? Is it the design of your inner workings of your forms, for example, when you design your application as an MVP architecture? Based on that (and based on the requirements of your application, of course,) you may come to different conclusions what the percentage of UI design might be in your case.

share|improve this answer

I think you are going about it in the reverse. If you magically know the exact programming cost (I don't see how this is possible though), then you probably don't need the design phase, and probably the problem you are trying to solve is very simple.

If you mean how to estimate the UI Design, that is a different territory. Depending on the field, sometimes UI is tacked on as a late addition where you may get away with a trivial estimate like x% of project time. The fields you mentioned here though are 100% user facing, So I would start with a UI design alongside the programming effort itself. Even then, it is hard to generically quantify it as a % of the total development time though - we need more context. After all, there have been so many games that had excellent AI etc., but turn away a ton of people because they have bad interface / graphics design. FWIW, people even rail on the wildly successful Skyrim because it got the UI design wrong for PC (The controls are more controller tuned rather than kb/mouse tuned).

share|improve this answer

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.