Welcome to Working With Rails


Discussion Forums

Discuss all things Ruby on Rails with perhaps the web's most vibrant group of Ruby on Rails enthusiasts.
Question for Rails Gurus
10 Posts
Question for Rails Gurus

I work for a company that is developing a new web application in Rails. The problem is that neither I nor the CEO know anything about programming anything (you can all roll your eyes...)

Our programmer is an awesome guy who is doing a great job. We just lost our designer, and the CEO expects him to continue programming indefinitely - he says it doesn't make any sense because when it is time to lay the graphics in, it's just going to make it harder. He says he needs the graphics ahead of time. I absolutely believe him, but the CEO is skeptical.

He's talked to guys who say it is a piece of cake and that our guy is just yanking him around. But, I've read that it may be an issue because Rails isn't optimized for PCs. Any advice?

If you follow web standards (XHTML, CSS) then applying a design to a site at any point will be relatively painless. Especially with Rails layouts (common page structure that is reused) it makes it a breeze to adjust the broader XHTML structure to allow for easy styling and changing your mind. I work this way all the time. It certainly saves time to know what the design will look like ahead of time, but applying a design that lies within the restrictions of CSS layout takes minimal additional effort.

It doesn't mean that your developer isn't a brilliant programmer. He may be the best. But even though I know how to code layout and apply styles with CSS doesn't make me a good designer. In fact, I pretty much stink at graphic design! :) Check out http://www.csszengarden.com for an example of how one site can be dramatically re-styled with CSS, long after the XHTML code has been developed.

My advice is either you trust your developer or just let him go. Something is wrong when you're asking strange people whether you should listen to your own developer :-) My suggestion is to bring in an external expert for a short assignment to have a more objective view.

I agree with your CEO. Having a design up front is nice, but it is not something that is critical. Typically I build out a good portion of the functionality without much design at all, so I understand what layouts I will need and get a feel for what style selectors I will be using, and then go back and skin the application.

It is very rare to have a developer who is also a designer and understands xhtml and css.

Sr. Ruby & Rails Consultant For Hire
Sign In To Rate Post

I'm on board with James as well. We just had a similar issue with one of our clients saying that the design firm insisted that they needed access to the code. It's just not true. Almost always we lay in the design at the very end of the development cycle. Design on Rails is, and should be, independent of functionality.

--Chris Blackburn

Your developer could write the entire app with the approach of his UI being just a throw away. I really just depends on what your needs are. He could write the application in a manner that provides a bunch of services that some ui will communicate with. You might want to set the expectation that he should only write enough UI to prove out the core application features and once the design is done, you can add more user interactions if they are required. You may also want to use a different ui technology like Flex in which case, his html prototypes are throw aways anyhow.

An application can be written without having the UI design up front. But why alienate your developer. If he does good work, you want to keep him, and he's used to working with a designer then get him a designer to work with. Even if you hire a contractor to create a throw away design to start. As Cuong said "Something is wrong when you’re asking strange people whether you should listen to your own developer".

You're correct that a design can cause structural changes to the XHTML.

This makes it important to make good use of layouts and partials. I've found that keeping view elements in self contained units with minimal markup (e.g., if it's a list then the partial has only the ul and li tags with an id and/or classes where appropriate) makes it easier to make markup changes without affecting the whole enchilada. Keep layouts to a minimum with clever markup and id's/classes.

I can't stress enough the importance of following web standards and using standard ECMAScript for javascript. This will minimize cross browser concerns and empower you to make the majority of design work in CSS files. A markup technique I like using (among other things) is using instance variables to provide the ID and Class values on the body tag in the layout. This alone will allow you to use CSS selectors to dramatically change style elements from action to action based on setting some instance variables in the corresponding action.

There's a lot you can do to make your XHTML structure extra flexible for future design work and you can do wonders with CSS. If you're not yet familiar with web standards then I think you will appreciate the time saving and flexibility you can gain from following those principles.

In theory yes there should be a clean separation between design and functionality/logic, but a lot of the separation or collaboration come from the individual contributing designer/author. The ideal approach is to find a pair of programmer/designer that get along and can work together. Otherwise, in my experience, you may get into problems in the end, no matter what the conventions say or what is the "right" way of approaching this. We're all humans in the end, and we need that warm and fuzzy feeling when working in a team.

Eric Knoller RoR Power, Inc http://www.rorpower.com


Design and Development ... analogous to the Chicken and the Egg. Which comes first?

Everyone who has responded to you so far seems to have a very particular stance on this subject, generally toward Development then Design. There is no single answer that is the correct one, as you probably have already read! Everyone here has given great advice, so I'll be brief in my own answer, so that I don't confuse you any more.

You've got good reason to ask the community about this, because it's clear that there is a very severe conflict happening at your company right now. Your CEO sounds like he's very sure about what he wants to do, but as a result your developer is having a hard time accepting that. Neither of them are wrong, but it's clearly causing frustrations. Ultimately, the CEO can call the shots, but if he's a seasoned CEO (but by the sounds of it, your company is just a few of you, so he's likely not too seasoned yet!), he'll quickly learn to trust management and professional staff, or learn to fire them. In order to build a healthy work environment (fun and successful), I strongly believe that you need to empower the people who work for you.

You posted this about a month ago, so you've likely resolved this issue and I'm anxious as hell to hear about how things have changed. What did your CEO finally decide to do?

-Kevin Elliott "WeLikeFood Beta":http://www.welikefood.com Discover great restaurants. Discover great food enthusiasts.

10 Posts
Login to add your message