Well, I got the job. Actually, I got more than one job and had a tough decision, but I can only work one full-time job at a time. I decided to go with a company that is developing a large-scale health application using Ruby on Rails. It seems like the perfect opportunity for me to interact with other Ruby on Rails developers and test my skills in a traditional workplace.
Today was my second day and I'm finding the environment is about as opposite as you can be from my previous place of employment, Raytheon. Raytheon was very structured (CMMI level 5 process) and since it was very large (>80,000 employees) it could be overwhelming at times.
The project I am working on is, of course, temporary, but they have rented office space away from their main offices and are trying to treat the situation as if we were our own company. This is a good strategy and I have read of this before. In implementation, however, it is resulting in a little chaos. I see a lot of word-of-mouth knowledge transfer, which can be dangerous when you are composed of over 50% contractors. I am also finding that I feel the urge to structure things like Raytheon brainwashed educated me to do. Not that I have anything against Raytheon… they have convinced themselves and their customers that the processes in place are what they need. I was just looking for something a little more agile for my next job.
What I found though is… different. It has elements of Raytheon, like checklists, coding standards, processes, and paperwork. It also has elements of… chaos. Not that I am the greatest coder of all time, but I'm not very impressed with what I have seen so far. They have been working on this for over 6 months and have about as much done as I did in far less time. The difference here is I was prototyping. I went back and scrapped that prototype in favor of taking what I learned to build something entirely new. They decided to keep pressing onward with what looks and feels like a prototype. Instead of system functionality, they seem to be concentrating on the flashy web 2.0 functionality that is made so easy in Ruby on Rails using things like link_to_remote, link_to_function, RJS, etc. Maybe it was telling that on my first day I was shown a website that had a large bubbly pop-up when mousing over a menu item and asked, “Can you do this?” I should have said, “Sure, but shouldn't the flashy UI elements come later? Let's nail down the functionality first.” Maybe it's not too late to speak up. Whatever the case, I get the feeling there's a lot of work to do…
Update: One of my co-workers is as excited and passionate about Ruby and Ruby on Rails as I am. This is exactly what I was looking for when coming to a team environment using Ruby on Rails. He and I have had some great discussions about Agile practices, Ruby, and Ruby on Rails. I think that we have taught each other a lot and I feel very fortunate that he is there cause if he wasn't I think I would be forced to leave. The remainder of the team is rooted in traditional development methodologies and the developers don't have as much passion for it as we do.
Update: We have made some amazing headway on the project since I started three months ago. Still, we find that people are just not willing to change their way of thinking. Many of our attempts to push the Rails way and Agile methodologies have been thwarted. To the higher-ups, Agile means adding new functionality two weeks before an iteration when we're already drowning in what we have because of scope creep and poor understanding of the user's needs. The current environment is not as effective as it could be. Like I said before, the team is very rooted in the methodologies they're used to. The approaches that we have taken thus far have not produced the results we were hoping for. How do we successfully convince other team members (developers, QA, graphic designer, project managers, business analysts, and IT director) about the benefits that we have already discovered (and continue to discover)? There seem to be too many hands in the mix – we want them to get out and just let us do our job to the best of our ability! Don't even get me started about all the freaking meetings we attend… arrgghhhh!
Need web application development, maintenance for your existing app, or a third party code review?
Velocity Labs can help.
Hire us!