On 14 Oct 2009, at 02:40, Thomas Petersen wrote:
[snip]
". Changing substantial chunks of business logic is not easy. In
fact, it can be prohibitively expensive."

Can you give an example?
[snip]

I've been dealing with a legacy system for $client. About 200k lines of rather bad code. The business logic and display logic are intertwined. No automated tests on the code side. Almost no documentation. The business logic isn't well understood - either by ourselves or $client since original authors on the business and the code side no longer work for either organisation.

Improving the UX and code design of that system is a royal PITA. It's a snake pit of side effects where one seemingly innocuous change on one report rolls over and affects three others.

Should it have been built that way? Hell no. Could it be improved with sufficient effort so that changes become substantially easier? Yup. Are there processes that could have built systems of similar complexity without these problems - certainly.

Changing for that client is going to be a long term issue. Years of work. In the mean time changes are going to remain complex and expensive.

Unfortunately - systems like this seem to be distressingly common in my experience...

Sigh...

<aside>

I feel like I want to support everybody in this feisty discussion.

On one hand I find doing usability testing throughout the whole process of developing a product amazingly useful. From sketchy paper prototypes in the initial problem discovery / ideation stages. More focussed paper prototyping mixed in with some XHTML prototypes (that we can mostly take through to development later) during development. Testing after each feature is complete so we can get feedback and iterate and improve. Testing after release so we can verify against real world usage. Lots of _little_ tests all of the time.

Maybe I'm just rubbish at design - but all of these find problems that I'd have missed otherwise. They make the product better - and the quicker I can get that feedback the cheaper the change (the saving in not building something at all is fantastic for example :-)

On the other hand I'm in an agreement with Thomas that you get a huge advantage by testing against the real product. Good development teams with modern development practices are amazingly more productive and effective than even a few years ago; producing code that's much cheaper and simpler to change and update. I find that some people on the design side haven't yet adapted to the speed a good development team can change direction and implement ideas - even quite large changes in business logic.

I'm much, _much_ more likely to build/release/test now that I'd have been ten or fifteen years ago. With some projects I can go from idea to an A/B test on a live site in hours - not days or weeks. Building and testing complex hi-fi prototypes has almost completely disappeared from my working practices because it's not cost effective or useful.

On the gripping hand I wonder how much of this argument is down to differing product development styles and practices. I wonder if we actually talked a bit more about some concrete examples of what we actually did we'd find that everybody is much closer to doing the same thing than people suspect.

</aside>

Cheers,

Adrian
--
http://quietstars.com  -  twitter.com/adrianh  -  delicious.com/adrianh

________________________________________________________________
Welcome to the Interaction Design Association (IxDA)!
To post to this list ....... [email protected]
Unsubscribe ................ http://www.ixda.org/unsubscribe
List Guidelines ............ http://www.ixda.org/guidelines
List Help .................. http://www.ixda.org/help

Reply via email to