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.

I am new to requirements analysis and have a simple questions: Would you include the budget in the requirements, if e. g. the departments budget for running costs is 10k a year.

share|improve this question
1  
you need to specify the requirements. technical requirements do not include pricing. However, project proposals do include one. –  Yusubov Sep 14 '12 at 13:46
1  
Costs and pricing are not the same thing - the cost of materials can be part of a requirement, the pricing of the project is not. –  Joris Timmermans Sep 14 '12 at 15:00
1  
That kind of thing is a constraint, which is something very similar to a requirement and may well be technically treated like one. –  Michael Borgwardt Sep 14 '12 at 22:48

5 Answers 5

up vote 4 down vote accepted

I disagree, cost should, no MUST be represented in some form.

Projected operating costs have an enormous impacts on a project. Making abstraction of this until the very end (when the product is actually sold) is an enourmous mistake.

Cost may not be a direct requirement but it should still be a driving force when writing these requirements.

I have seen a project completely derailed simply because the cost of configuring the system were never given an iota though space. It`s not that the configurability was not designed, it was, and it did follow all the technical requirements to the letter. Once all delivired they calculated all the costs to present for a bid and they were 5 times higher than anyone else in the bidding contest. Had the configuration costs been integrated in a requirement from the start this would have never happened.

Costs are much more than dollar value stuck on a shrink wrapped box. Software has to be maintained, updated, configured, installed etc. Cost can play a major role in key decisions made throughout the software design and production. Thus they should be known and parametrized as all other constraints affecting design... through requirements.

share|improve this answer
1  
+1: I've spent weeks drafting a detailed architecture for a project bid, which was rejected despite technical superiority because the (ongoing) license costs for a core component were too high (the project was a worst case for the license model). –  Michael Borgwardt Sep 14 '12 at 22:51
    
Cost is very much an architectural driver and should be considered side-by-side with functional requirements, technical constraints, quality attributes, etc. –  Michael Sep 15 '12 at 15:57

No.

  • A functional requirement is one that the product must have to provide the capability needed by the ultimate user.¹

  • A nonfunctional requirement is a quality or property that the product must have.¹

Both are about the software itself, and not the management. Cost of producing the software has nothing to do in the requirements, since it doesn't describe the software itself and is not inherent to the software product, but to people.

Requirements should also be testable, which makes it impossible to include even maintenance costs. For example, how you would be able to verify, objectively, that the following requirement passes for a current version of software product?

The maintenance cost is inferior to $5 000 per year for the next ten years, the maintenance task being limited to the migration of the product to new hardware, performance monitoring, clearing of old logs and audit records, clearing of personal information about unregistered users and processing of legal requests related to the personal data collected by the product.


¹ Definitions taken from Managing Information Technology Projects: Applying Project Management Strategies to Software, Hardware, and Integration Initiatives by James Taylor, ISBN: 0814408117.

share|improve this answer
    
That's easy to test. Just wait ten years :-) –  Karl Bielefeldt Sep 14 '12 at 14:15
1  
...and you don't even have to wait, provided you have a time machine in working condition. –  scrwtp Sep 14 '12 at 14:27
    
Could you make an argument that "must be built using open-source software" or "must be deployable to a free cloud-based hosting service" are NFRs? Those are at least tangentially related to cost. –  Jesse Buchanan Sep 14 '12 at 16:45
    
how about requirements affecting how the software is installed, updated, configured. Cost of these can play a major role in how these aspects are designed from the first place. I dissagree, cost can a major part of requirements –  Newtopian Sep 14 '12 at 22:46
    
@Newtopian: could you, please, give an example of such functional or non-functional requirement (for example in your own answer below)? –  MainMa Sep 14 '12 at 23:41

In general, software project requirements do not include pricing.

Pricing is generally included in project bidding document for the project. Other than that, all the requirements are written to specify what is expected to be done.

share|improve this answer

Cost typically isn't listed among the functional requirements for software. That's at least partly because either only one copy of the product is needed, or because the marginal cost -- the cost of creating additional copies -- is close to $0 for software. However, per-unit cost can certainly be a requirement for other types of products. If you're designing the software for, say, a remote control, you only need to know what hardware you have to work with. If you're designing the entire device, on the other hand, you need to know how much the client is willing to pay to produce each additional device so that you can choose components that let you meet the functional requirements without losing money.

share|improve this answer
    
Sure a software is easy to copy but there are many cases where each customer can have different configuration needs. In some cases this can be very involved and tedious manual labour. had these costs been considered early on in the software design perhaps it would not be so. –  Newtopian Sep 14 '12 at 22:56
    
@Newtopian I don't disagree -- the very point that I was addressing is that cost may be a requirement in some cases. Considering that the OP asked his/her question here in Programmers, it's reasonable to guess that they're asking about software requirements, and it's just a fact that cost isn't usually part of functional requirements related to software. I tried to take a broader view and point to a case where cost may be a requirement. That you've thought of a different case doesn't surprise me. –  William Shakespeare Sep 14 '12 at 23:09

I think MainMa came close when he said that a requirement has to be testable, but not quite on the money. The key thing to keep in mind about requirements, is that it has to be something you can control -- you don't control the money supply, you don't control whether you'll be the one working on the project in te future, the cost of something is something you can agree to in a contract, but it's not something that is actually under your control.

share|improve this answer
    
My point for including costs is precisely that you as a programmer don't control the money supply, so you have to adjust your money demand (in development and maintenance costs). –  Owe Jessen Sep 18 '12 at 6:38
    
Money isn't something you control. Hyperinflation kicks in and a loaf of bread cost 500 bucks, and your "X can be done for 5k" is out the window. X can be done in N hours by someone with these skills, is another matter. Cost should not be ignored, it is typically the reason a project EXISTS, and an inherent and on going issue with any active project. But while it may be of supreme importance, it is not part of what you are delivering. It is related and connected to what you are delivering, but not the thing itself. –  jmoreno Sep 18 '12 at 8:04

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.