An alternative approach to solving the problem of WhatIsAnalysis is to ask WhoIsTheAnalyst
Keeping the old stuff here for now but can be deleted if there are no objections
CthreeProjectTerminated got me to thinking about how such a situation could be avoided which led me to think about the role of the Analyst...
The Analyst is the GateKeeper between the ProjectStakeholders and the development team.
[The development team is one of the stakeholders.]
This doesn't mean that it's not useful for end-users to get involved in development but the Analyst needs to be the last line of defense in understanding and managing conflicts with requirements priority. If the Analyst is the GateKeeper, then Analysis is whatever the Analyst needs to do to unify, resolve, massage, hammer, whatever the interests of the stakeholder groups into something that development can use to start building the system. (People in RequirementsEngineering circles can give you a whole list of possible techniques) In any case, Analysis is what changes the Analyst into a Customer (in the XP role sense). I guess some people think Analysis is what changes a pile of paper into a Customer but that's another topic...
If there is only one interest (i.e. GoldOwner is the GoalDonor) then there is no need for an Analyst and you can just use a Domain Expert/Customer.
Given that Analysis is the activities of the GateKeeper, I don't think object-oriented analysis is very significant. It would seem that OOA is just the development of an OO model (essentially a more formal concept map) which is just a particular technique to help the Analyst understand information. This is not necessarily something that development needs if they can just communicate directly with the Analyst. OOA activity does seem useful to help identify new requirements faster. However, this would not seem particularly relevant given a JuiciestBitsFirst? evolutionary delivery process, in which case evolutionary delivery is the technique used to identify new requirements faster.
Anyways, got that out of my head so I can get back to do other things... --JasonYip
Of course, you can use 'analyst' to mean anything you want, including 'gatekeeper'. There's no law against it, and in fact there's a law in favor of it -- the Second Law of thermodynamics. The Second Law says that if guys like me rest for too long, all the words in the English language will become synonyms for each other, and no word will have any distinct meaning of its own. But how that serves anyone I cannot see. So I set rest aside to battle entropy.
Now, having gotten that poison out of my system, I would like to respectfully disagree with something you have written above. Analysis does not change the analyst into a customer. Customers have varying degrees of analytical skill; the analyst's job is to make sure the customers interests are not left un-analyzed. If that were to happen, the developers might build the convoluted system the customer describes, leading to a lose-lose situation. The analyst is looking for the elegance that will make all parties happy, and he analyzes in service of that quest. In fact, he synthesizes too, but we will happily abstract ourselves from that troubling fact in order to remain friends. --WaldenMathews
The first paragraph you wrote has me completely confused so I can't comment.
I regret that. Let me try again. This page asks what analysis is, which is not the same as asking what an analyst does (although I would like there to be a strong correlation) or what other activities an analyst may take on. How do you get from 'analyst' to 'gatekeeper'? Clearly the skills are different. -Walden
"The analyst is looking for the elegance that will make all parties happy..." That's essentially what I was saying though I'm not sure about the term elegance... I don't see how a convoluted system will be generated with a most valuable features first evolutionary delivery process? The only problem with multiple stakeholders is that there may not be agreement on what is most valuable which is why you have the Analyst.
How do you account for the problem of finding out what those most valuable features are? In your statement above, there is no agent mentioned for this, which implies that you think customers think and express themselves very clearly. I think otherwise. I also think that in spite of clarity of thought by whomever, the very nature of evolutionary development creates additional opportunities for convolution. Have you seen something different?
Elegance is often treated by management as a luxury. I would like to make a strong stand that it is a necessity for any project with any significant mass, and it's what refactoring and other forms of analytical process are all about. --Walden
For XP I see several situations for dealing with multiple stakeholders:
[Jason, I'm reviewing pages I've written on with a view to cleaning up. On this one, split off from WhatIsAnalysisContinued for what reason I'm not sure, I don't think we're talking the same language. I think my parts are entirely expendable. As for yours, I'm not clear on the points you are developing, but if you want to develop them some more, I'm game. Otherwise, I'd suggest we just wipe the page. Your thoughts? -- WaldenMathews]
Almost missed this... I didn't have much else to say about this but then at ThoughtWorks I asked the question "What do the analysts do?" and the reply was "The analysts are like the gatekeepers..." I'll try to clean this up and add some new thoughts. --JasonYip
In XP I think the customer should act as the customer. If there is no customer (e.g. product company then you need a nominated pseudo-customer (e.g. product manager, marketing). Mediating between the different customer requirements is not the analyst's role. What you need is an 'Uber Customer' or a voting system
Often a customer will find it hard to present their requirements in a form comprehendible to the developers and the developers will find it hard to ask questions in a form comrehendable to the customer. In these cases a Business Analyst can perform a valuable facilitation role.
When I was first taught systems ananlysis it was all about calculating seek times on disks and suchlike. I'm not sure what they are meant to do. Business Analysts are suposed to learn about the system that requires a solution. There may well be a need for a TechnicalPersonWithBusinessKnowledge? or perhaps a BusinessPersonWithTechnicalKnowledge? to facilitate understanding bewteen the team and the customer. --TomAyerst
If the idea of Analyst as Gatekeeper is going to be developed, then I would like to see the metaphor fleshed out in full detail. What is the gate? What things can go through it? What things should, and what things should not go through? How does the gatekeeper operate the gate? What is the meaning to the rest of the project when the gatekeeper is functioning correctly, or not functioning correctly? How can correction be made when something that shouldn't pass the gate does? Does any of this metaphor make sense, or is there a better term than gatekeeper? Thanks, -- WaldenMathews