From: Josh Cheek on
[Note: parts of this message were removed to make it a legal post.]

Hi, starting basically my biggest project to date (a Rails app). I wasn't
initially intimidated, but the more we talk about the process of how we get
from A to B, the more I realize that it involves tons of conditional,
overridable, partially applied until approved but maybe gets rolled back or
overridden, messy rules, and very large (for me anyway) domain of
information being collected, generated, queried and acted upon.

I'm usually pretty confident, because I work hard and I reflect a lot, and
am able to anticipate and overcome quite a few hurdles due to that. But
right now I'm really worried that any small mistake or poor decision in how
I design or implement it could reverberate out and have an extremely
negative impact on the project. Done right it will probably be very
convoluted, done wrong it will be a nightmare.

I want to do it the right way, so that I can learn good principles, have
something I enjoy working on and am proud of, and gain the confidence and
capacity to continue to work on projects of this magnitude in the future.

What resources (especially books, but I'm open) would you suggest I read to
prepare myself to handle the scope and complexity of this project?

From: Jason Stewart on
Hi Josh,

It's a Microsoft book, but reading Code Complete a couple of times has
given me a good grasp on how to deal with challenges of any size in
software design. I cant think of any other single book that covers the
same material in a better way. In fact, before I read this, I was
thinking about re-reading it again.

Cheers,
Jason Stewart


On Fri, Jun 18, 2010 at 5:16 PM, Josh Cheek <josh.cheek(a)gmail.com> wrote:
> Hi, starting basically my biggest project to date (a Rails app). I wasn't
> initially intimidated, but the more we talk about the process of how we get
> from A to B, the more I realize that it involves tons of conditional,
> overridable, partially applied until approved but maybe gets rolled back or
> overridden, messy rules, and very large (for me anyway) domain of
> information being collected, generated, queried and acted upon.
>
> I'm usually pretty confident, because I work hard and I reflect a lot, and
> am able to anticipate and overcome quite a few hurdles due to that. But
> right now I'm really worried that any small mistake or poor decision in how
> I design or implement it could reverberate out and have an extremely
> negative impact on the project. Done right it will probably be very
> convoluted, done wrong it will be a nightmare.
>
> I want to do it the right way, so that I can learn good principles, have
> something I enjoy working on and am proud of, and gain the confidence and
> capacity to continue to work on projects of this magnitude in the future.
>
> What resources (especially books, but I'm open) would you suggest I read to
> prepare myself to handle the scope and complexity of this project?
>

From: Stuart Ellis on
I'd second Code Complete. Like the Pragmatic Programmer, it's a really a
book for teaching you ways of thinking. The code examples are brief and
in Java or C++; I'm not sure why it was published by Microsoft Press, as
there's nothing Microsoft-specific in it.

Design Patterns in Ruby by Russ Olsen is also fantastic.

On Mon, 21 Jun 2010 21:39 +0900, "Jason Stewart"
<jstewart(a)fusionary.com> wrote:
> Hi Josh,
>
> It's a Microsoft book, but reading Code Complete a couple of times has
> given me a good grasp on how to deal with challenges of any size in
> software design. I cant think of any other single book that covers the
> same material in a better way. In fact, before I read this, I was
> thinking about re-reading it again.
>
> Cheers,
> Jason Stewart
>
>
> On Fri, Jun 18, 2010 at 5:16 PM, Josh Cheek <josh.cheek(a)gmail.com> wrote:
> > Hi, starting basically my biggest project to date (a Rails app). I wasn't
> > initially intimidated, but the more we talk about the process of how we get
> > from A to B, the more I realize that it involves tons of conditional,
> > overridable, partially applied until approved but maybe gets rolled back or
> > overridden, messy rules, and very large (for me anyway) domain of
> > information being collected, generated, queried and acted upon.
> >
> > I'm usually pretty confident, because I work hard and I reflect a lot, and
> > am able to anticipate and overcome quite a few hurdles due to that. But
> > right now I'm really worried that any small mistake or poor decision in how
> > I design or implement it could reverberate out and have an extremely
> > negative impact on the project. Done right it will probably be very
> > convoluted, done wrong it will be a nightmare.
> >
> > I want to do it the right way, so that I can learn good principles, have
> > something I enjoy working on and am proud of, and gain the confidence and
> > capacity to continue to work on projects of this magnitude in the future.
> >
> > What resources (especially books, but I'm open) would you suggest I read to
> > prepare myself to handle the scope and complexity of this project?
> >
>
>

From: Edward Middleton on
On 06/19/2010 06:16 AM, Josh Cheek wrote:
> Hi, starting basically my biggest project to date (a Rails app). I wasn't
> initially intimidated, but the more we talk about the process of how we get
> from A to B, the more I realize that it involves tons of conditional,
> overridable, partially applied until approved but maybe gets rolled back or
> overridden, messy rules, and very large (for me anyway) domain of
> information being collected, generated, queried and acted upon.
>
> I'm usually pretty confident, because I work hard and I reflect a lot, and
> am able to anticipate and overcome quite a few hurdles due to that. But
> right now I'm really worried that any small mistake or poor decision in how
> I design or implement it could reverberate out and have an extremely
> negative impact on the project. Done right it will probably be very
> convoluted, done wrong it will be a nightmare.

Look at what approaches worked for other people. Martin Fowler has some
pretty good articles[1]. These are all pretty good books.

Analysis Patterns: Reusable Object Models
ISBN 0201895420

Patterns of Enterprise Application Architecture
ISBN 0321127420

Enterprise Integration Patterns: Designing, Building, and Deploying
Messaging Solutions
ISBN 0321200683

Edward


1. http://martinfowler.com/articles.html

From: Josh Cheek on
[Note: parts of this message were removed to make it a legal post.]

Alright, I just ordered Code Complete. That book is very long, though, any
recommendations for chapters that were particularly worthwhile, or that you
might be particularly applicable for me would be appreciated.

I also picked up Patterns of Enterprise Application Architecture, I'll be
reading the sections on "The major approaches to organizing business logic"
and "handling concurrency for data that spans multiple transactions". I had
a lot of difficulty with that last one on one of my early Rails projects,
and think I've been scared to try again, which is probably where a lot of my
fear for this project comes from.

And Analysis Patterns: Reusable Object Models, since the Party,
Accountability, and Transaction patterns sound like they have a decent
probability of being at the very least, insightful.

Also, from an off list suggestion, getting Kent Beck's Test Driven
Development: By Example. Started working on a short project for myself to
try and get myself disciplined to red/green/refactor and got
permission todo dev on the model first, using tdd/bdd, and make
demands regarding others'
practices to that end.

Thanks for all the suggestions.
-Josh