agile/xp question (formal analysis)
From: AndyW (foo__at_bar_no_email.com)
Date: 11/03/04
- Next message: Gregory L. Hansen: "Re: Haven't done anything real with OOP yet."
- Previous message: DT: "Switch Statements and Refactoring"
- Next in thread: Phlip: "Re: agile/xp question (formal analysis)"
- Reply: Phlip: "Re: agile/xp question (formal analysis)"
- Reply: Ronald E Jeffries: "Re: agile/xp question (formal analysis)"
- Reply: S Perryman: "Re: agile/xp question (formal analysis)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 04 Nov 2004 10:10:48 +1200
I have a question on some agile/xp process.
[please read the whole thing before replying - in otherwords dont
reply to each para - just to the whole post.- the first part is just
background to the question which is at the end - i dont want a
critique on the background.)
As many would know I'm a proponent of 'adaptive mini-waterfall' to
give its full title - mainly in the large project space.
Was talking with someone about ballpark estimates today which then led
into a chat on problem space analysis - which got me thinking that
i've pretty much never seen a full blown discussion on the subject
from the agile/xp camp.
Talking to another collegue about it we formed the opinion that the
techniques of old dont seem to be taught any more - it seems the newer
developers seem to think that companies have someone - such as a BA or
a manager or even a developer who 'knows' the problem space.
It seems this 'knowlegable' person learns on the job from a 'customer'
telling them how their business works, and then makes educated guesses
as to what the solution may be without having any formal understanding
of what the actual problem may be. (this is an opinion not a fact)
As a bit of a background for what I am getting at:-
'Problem Space Analysis' or more commonly known in the 'old days' as
Analysis was a technique where you formally analysed the existing
'system' to find out how it worked. 'System' applies to the whole
process - manual, functional, non-functional and electronic -
including external factors.
Once you had a model of how the existing system worked (and there is
always an existing system - even for new stuff) - you then 'designed'
improvements to that system (either manual or electronic) to make it
more efficient. The 'design' used here is not presenting a solution
- its just making sure that you have both the original model presented
by the analysis, and a more efficient model that can be used to reduce
the scope of any potential problem.
At the end of this - you had a system that you understood well enough
to be able to ask the customer exactly what the problem was.
Sometimes - taking a system and changing some of the manual process to
make them more efficient was often enough to make the problem 'go
away'.
This is analysis and design of the problem space. The next stage is
analysis and design of the solution space - that is more commonly the
process that is adopted now. Analysis at this stage becomes a more
formal process of defining the requirements presented by the problem
(a formal technique of asking the customer what the problem is) and
design - creating a solution to the problem posed by the requirements.
The important reasons for problem space analysis is that it makes sure
that your domain experts (or 'knowlegable' person) actually knows what
is really happening - rather than relying on a customers perception of
what they think is happening, or even their own most likely 'out of
date' perception of the environment.
It also ensures that you understand and can examine the customers
desciption of the problem to ensure that it is actually a valid
problem - and not just a preception of a problem. Since many
customers do not actually know how their own business operates - you
often have to work it out and explain it to them before they can
articulate what it is they want to achieve.
Its primary benefit is that its a formal process that allows you to
tackle problems you originally know nothing about.
My question is - i'm pretty familiar with Agile/XPs methods for
working in the solution space - but there seems to be no visible
process for working in the problem space.
Can someone explain what formal documented techniques (possible with
links) exist for a formal process of modelling the 'problem space'.
Just to clarify - I want to know how to model the existing system and
not the proposed solution and what the process is for defining the
problem that needs to be solved.
Also, by 'system' I dont mean an electronic program - but the whole
system including manual, functional and non-functional parts and
electronic.
Cheers
Andy
- Next message: Gregory L. Hansen: "Re: Haven't done anything real with OOP yet."
- Previous message: DT: "Switch Statements and Refactoring"
- Next in thread: Phlip: "Re: agile/xp question (formal analysis)"
- Reply: Phlip: "Re: agile/xp question (formal analysis)"
- Reply: Ronald E Jeffries: "Re: agile/xp question (formal analysis)"
- Reply: S Perryman: "Re: agile/xp question (formal analysis)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|