Take the 2-minute tour ×
Project Management Stack Exchange is a question and answer site for project managers. It's 100% free, no registration required.

I work for a small company as a software engineer. Our company doesn't have a business analyst or a project manager. We are about to sell a custom CMS system to a very IT illiterate customer.

Who is responsible for creating the requirements specification? If it's a project manager or a business analyst, who should fill this role and how can we avoid any problems as a result?

share|improve this question
4  
Hi Mat, welcome to Project Management SE, the Q&A site for questions in the field of project management. I edited your post a bit to focus more on solutions instead of just building a list of problems. Not only should this get you better answers, but it also fits our Q&A format much better. Good luck, and welcome to PMSE! :) –  jmort253 Jan 7 '13 at 3:54
add comment

6 Answers 6

up vote 4 down vote accepted

Responsibilities for Specifications

The customer is ultimately responsible for specifying requirements. Whether your company has a business analyst or project manager is irrelevant to identifying the responsible party.

A business analyst is generally a liaison between the development team and the client, and is responsible for working with a client to elicit or refine requirements. However, the requirements themselves always originate with the client. In many cases, the business analyst is in the best position to document the requirements once they've been defined, but that is really a matter of convenience and is ancillary to the role.

Put another way, the business analyst facilitates requirements-gathering and refinement of the deliverable specifications from the client. The client remains responsible for defining their needs and expectations.

The project manager, on the other hand, has the responsibility for managing the specification artifacts (e.g. storing and disseminating the specification documents, if any), and for integrating the specifications into the project plan. As before, the client is responsible for the specifications; the project manager just facilitates the inclusion of specifications into the project management process.

share|improve this answer
1  
CodeGnome makes a good point here - ultimately the client needs to decide what they want the system to do. I think the key to 'avoiding problems' will be to ensure that whoever elicits and documents the requirements does so in a way that is understandable to non-technical client representatives. User stories (mountaingoatsoftware.com/topics/user-stories) are good for this reason because they abstract client requirements from technical implementation. –  Willl Jan 8 '13 at 11:14
1  
While I feel that the customer being responsible is the perfect world answer, the reality for me has often been different. I've worked with several customers who won't even look at requirements specifications let alone give input into them. They come into the project with one or two paragraphs describing the product they want, have an hour or so kick-off when you can ask them questions and then they go hands off until reviews leaving us to drill down into detailed requirements. I've found scrum to help decently here as the whole process is built around keeping the customer involved. –  NightMan Jan 10 '13 at 17:50
    
@NightMan If your customers aren't contractually responsible for specifications, you probably need to carefully review your engagement practices. Guessing what the customer wants is generally not a successful strategy. –  CodeGnome Jan 10 '13 at 17:55
    
To add (cause I ran out of room) - I feel like anyone on the team potentially could be responsible for requirements. Whoever has the best handle on what the customer(s) want would be the best choice - whether that's a developer, tester, project manager or business analyst. I've seen it done by each in my career and the reason it works or doesn't work solely depends on how much the person can identify what the customer(s) truly want and then document it in such a way that engineers can translate them into a functioning product. –  NightMan Jan 10 '13 at 17:58
    
@CodeGnome Oh, you're absolutely right and I've been on failed projects because of exactly that. Unfortunately, the team rarely gets to make the decision on what customers to do business with. Many executive teams out there see only the dollar signs and don't care if the customer is difficult or not. I've been told "just do the best you can" many times when I've reported lack of customer involvement. –  NightMan Jan 10 '13 at 18:02
add comment

Ideally I think you'd want someone who isn't a direct part of the development team to be gathering requirements. This is partly because requirements should (depending on your precise situation) go beyond the technical needs of the project to the business needs of the client - something that developers/engineers may not be best placed to advise on. I'm fairly agnostic on whether this process should be undertaken by a business analyst or project manager. I've been in situations - particularly in small organisations - where these roles overlap or are performed by the same person.

Since you have neither resource available to you I think you need to identify someone whose role - as far as possible - spans both business and technical domains. If you work in an agile environment I wonder if a scrum master or similar might be the most appropriate person. Alternatively the role could be split between someone on the technical side (e.g. you!) and someone in a sales or account management role. This would provide a range of views (with sales/accounts helping to document the 'why' and technical helping to document the 'what' and 'how') and ensure that the 'IT-illiterate' client doesn't get too lost in the details.

share|improve this answer
add comment

Customer IS responsible for requirements; however, it is the company's responsibility to organize them and translate into a technical language.

Agility of development is a must in the current subset; therefore, make sure that customer gets to see and approve every step of the development (working prototypes).

It would be much easier to answer if we knew who else is the part of the process, meaning - what positions are there in the company? A software engineer cannot be a requirements elicitor (he/she can theoretically, but it is proven to be counterproductive in most cases. One of the reasons - the tendency is to minimize the coding workload; therefore, the product and customer satisfaction suffer).

Instead, someone in the company, who is not technically illiterate, and at the same time can speak business language, should perform the duty of BA. For instance, it can be a sales person who is familiar with the production. But my advice is to contract a BA for requirements.

share|improve this answer
    
Hi Bob, welcome to Project Management SE, the Q&A site for questions in the field of project management. I edited your question a bit to clean it up so that your ideas would be best presented. Hope to see you continue to contribute on our site! Welcome! :) –  jmort253 Jan 10 '13 at 5:19
add comment

In the absence of a PM or a BA, the person(s) who has done functional testing on the product is a good choice for drafting the requirements specs. They can easily reverse engineer their functional test specs into requirements specs.

If this formal process ( of having documented functional specs and subsequent functional testing)is not in place, the engineers who build the product are the ones who should document requirements.

As a side note, if you are selling a product to an IT-illiterate customer, a better format for documenting requirements is a user manual or user help document that will help the user navigate the system.

share|improve this answer
    
A manual tells an end-user how to use a system. It doesn't replace a specifications document, which describes what the system ought to do. –  CodeGnome Jan 7 '13 at 19:25
    
@CodeGnome : Right. But what is a better format for an IT illiterate customer - a bunch of "shall" statements or a way to understand the structure and function of the system? –  moonstar2001 Jan 8 '13 at 6:26
1  
Unless you have either a detailed specification or a working system to document, the "manual" will most likely be a work of pure fiction bearing little resemblance to anything actually delivered. YMMV. –  CodeGnome Jan 8 '13 at 6:35
    
A developer who has worked on the product would most certainly not produce "pure fiction" when coming up with documentation for that product. YMMV. –  moonstar2001 Jan 10 '13 at 7:22
add comment

Adopt agile values Everyone in the team should be responsible for bringing value for the customer and not developing non-sense. You have to speak to your customer. You have to provide working software - not future-complete, but working - as soon as possible, so you can receive feedback from the customer. You have to talk with the users of the CMS; with the people that will actually use your software. You can create mockups instead of software, to check the interactions your users expect and to show them what the software will look like.

share|improve this answer
    
Hi Darhazer, are you saying that everyone in the team is responsible for writing the requirements document in the absence of the PM and business analyst? –  jmort253 Jan 10 '13 at 5:10
add comment

Based on my personal experience as a project manager, it is generally the business analyst who is responsible for writing up the business requirements specifications. The project manager is responsible for ensuring that business analyst delivers the business requirements specifications on schedule, signed off by all parties and shared with software development team for analysis.

share|improve this answer
2  
Hi DL. Welcome to PMSE. Can you expand on how you think Mat should approach this problem in the absence of a business analyst? From your experience could someone else perform this role? –  Willl Jan 7 '13 at 10:29
add comment

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.