Performance Zone is brought to you in partnership with:

Mark is a graph advocate and field engineer for Neo Technology, the company behind the Neo4j graph database. As a field engineer, Mark helps customers embrace graph data and Neo4j building sophisticated solutions to challenging data problems. When he's not with customers Mark is a developer on Neo4j and writes his experiences of being a graphista on a popular blog at http://markhneedham.com/blog. He tweets at @markhneedham. Mark is a DZone MVB and is not an employee of DZone and has posted 527 posts at DZone. You can read more from them at their website. View Full User Profile

Vertical/Horizontal Slicing

03.03.2013
| 1436 views |
  • submit to reddit

A few years ago I wrote a bunch of posts exploringmy experiencesof outside in development eventually coming to the conclusion that it seemed to make sense to drive out functionality from the UI and work back from there.

i.e. we take a vertical slice of functionality and then drive it end to end.

On the team I’m working on there’s been success using an approach where the functionality is still split vertically but we work across a horizontal layer for all the cards before moving onto the next layer.

The advantage of this approach is that we can do all the work in one layer without context switching and then move onto the next layer.

In our case this meant adding a bunch of text and check boxes to a backend CMS and then making sure that the values entered there bubbled their way up to a service used by the front end.

This was counter to my previous experience so I was curious why we weren’t seeing the problems that I’d seen before where we’d model things incorrectly in the backend and only realise when we tried to call them from the front end.

Jae pointed out that you don’t necessarily run into this problem if you can hold the model of how the whole system fits together in your head.

Since we have a few people who are able to do that and have knowledge of how the data flows through the different applications that is indeed the case!

I’m sure there are some other cases where this approach makes more sense so if you find success writing code in this style do let me know!

Published at DZone with permission of Mark Needham, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)