Ruby on Rails – A Competent Web Development Application

Written in Ruby programming language, Ruby on Rails is one of the most frequently used web application development framework. Often termed as RoR or Rails, it is an open source web development framework which is basically an object oriented programming language encouraging simple development, complete and potent web applications encompassing rich interactivity and functionality. Since Ruby on Rails works effortlessly with an array of web servers, deploying web solutions by using it is an effortless job. This is why; Ruby on Rails is part of every competent web development services set.

Ruby on Rails encourages the rails developers to boom in building powerful and elegant applications in an efficient and effortless way. Ruby on Rails segregates into four packages, Active Record which best suited for database interactivity, Action Pack which is on rails from request to response, Active Support encompassing utility classes and regular library extensions, and Action Web Service, where the server side support for the SOAP and XML-RPC web service protocols.

Ruby on Rails web development facilitates the rails developers to successfully build powerful and elegant applications in a relatively efficient and effortless way. It is believed that the coming of Ruby on Rails, an open source web development framework brought with itself a revolution in the way web applications are created. Some of the most popular websites that use Ruby on Rails web development framework in production environments are Scribed, Twitter, Urban dictionary, Base camp, Xing, Shopify, holu and Github. It is believed that any set of web development services is incomplete without Ruby.

Developed with the use of Model-View-Controller Design Pattern, ruby on rail is the favorite pick of many developers on the grounds of its powerful philosophy of CoC, which is Convention over Configuration, and DRY (Don’t Repeat Yourself), and close connection with the supple development methodology. In addition the utmost convenience of using Ruby on Rails is the supple nature of development. Due to this flexibility, developing a thing on Ruby on Rails takes a much shorter duration than other platforms. Practically, Ruby on Rails has encompasses the potential of supporting rapid application development.

Features that drove humongous popularity to Ruby on Rails framework:

• Applications can be easily developed using simple methods and less code.
• Suits best for developing database-backed web applications.
• Facilitates quick and easy deployment of web solutions using Rails as it is adaptable with a variety of web servers and databases implementing CGI or Fast SGI.
• Shows smooth compliance with databases like MySQL, SQL, SQL Server, DB2 and Oracle and allow Ruby on Rails programmers to create user-friendly, enhanced applications.
• Absence of any requirement of compilation phase.

What Makes a Good Web Development Company

The world of web development is still very much misunderstood. We’ve even heard people call it a “dark art”. So when you need help turning your ideas and designs into a high quality website or web application, how do you know who you can trust to get this done?

The purpose of this post is to provide some key points on what makes a good web development company, and will help you understand the kind of questions you should be asking development companies.

This is going to be a very opinionated post and we make no apologies for it. If you disagree with anything we are certainly open to discussing it further.

Now to get on with the post. Below are the key areas we are going to be looking at, and what you should be looking for in a web development company.

  • Able to do both front-end and back-end development
  • Don’t specialise in one back-end technology
  • Should follow best practices
  • Understanding of marketing strategies surrounding the projects
  • Invests time in research and development
  • Has a rigorous testing process, including automated tests
  • Flexible to change
  • Use source control

Able to do both front-end and back-end development
We don’t subscribe to idea of developers that do front-end development and developers that do back-end development. That’s the equivalent of having a plumber who only fits pipes and leaves the fitting of the baths, showers, sinks and toilets to someone else.

We agree there is a separation between web developers and web designers, there’s a completely different thought process going on there, but the separation between front-end and back-end is just wrong. To be a good web developer you need to understand the full development cycle and to be able to get involved in the project from start to finish. There is also much to be learnt from the working with the varying technologies, but we’ll come on to that.

Don’t specialise in one back-end technology
There are a number of good back-end technologies that are appropriate for web development including Ruby on Rails, ASP.Net and PHP (and others). They all have their strengths and weaknesses and not one is perfect. A good web development company should be flexible in which technologies they use, so that they use the most appropriate one for their clients’ needs.

The key reason we have spent time learning a number of technologies is to able to pick and choose the bits we like. Over the years the developers involved in The League have been able to take the good parts of each technology and formulate a number of best practices and use them across all platforms.

Should follow best practices
The key to being a good web developer is not the technologies that you use, but the best practices that you follow. As technologies come and go in our very fast moving industry those best practices will remain, or at least evolve. As a developer if you have a good grounding then you can move with the times and technologies fairly easily.

So what are these best practices that we are talking about. Below are some of the key ones we follow.

  • Writing semantic HTML
  • Follow web standards for all front end coding
  • Automated testing of both front-end and back-end code
  • Use of a MVC framework

Understanding of marketing strategies surrounding the projects
We’ve heard this complaint many times that web developers don’t think about the marketing strategy of a project. This is generally because developers don’t care. Well they should. How can they advise clients and think about helping clients produce the right solution, if they aren’t thinking about the “bigger picture” (sorry, we know it’s a horrid phrase, we’ll go wash our mouths out now). If a developer blindly does the work, they are not offering the client a service, they are just being a meat puppet.

The most important question a developer can ask is “Why?”. Take time to understand the client’s requirements fully, and advise them, after all the client doesn’t understand the ins and outs of web development, you do. Make the development cycle a two way conversation.

Invests time in research and development
As everyone knows the web industry is a very fast moving industry. Things come and go in the blink of an eye. A good web development company gives it’s developers allocated time each week to look at new trends and technologies. Admittedly some of these trends and technologies are dead ends, but you won’t know unless you look into them.

If you want to know if a web development company knows there stuff, simply ask them what their developers have been looking into recently. You don’t have to understand everything you are told, note them down though and look them up on the internet to understand if the company are looking at new trends or not.

R&D is probably the most important time each week for a developer. If developers don’t evolve, the solutions they build will become stagnate and dated very quickly. As a client do you want an out of date solution before you even start?

Has a rigorous testing process, including automated tests
Too often we have seen the client is the tester for a project. If this is happening, then, to put it bluntly, the development company don’t understand your project well enough, they are just “banging out” code.

A good web development company should be writing automated tests (integration tests, unit-tests etc) for all their code, both front-end and back-end. On a simple level, tests help developers to concentrate on the code they are writing at that given time, they also help developers to write more concise code. More concise code means the code base is easier to understand and cheaper to maintain.

The major benefit of a test suite to a client is that when changes are made to the code in the project there can be a lot more confidence in the fact that the change, or new code, hasn’t broken anything else.

We are not saying automated testing is the silver bullet of web development, and tests are only effective if they are written well, but they certainly should be part of any web developers toolset.

Automated tests aren’t the only important aspect of testing. The web development company should also have a level of human testing as well, and this is certainly something clients should be involved in. User stories are key to this process. As part of the development process, clients should work with the web development company to put together User stories, so that all parties involved understand how users will interact with the site or application and the results of those interactions.

Flexible to change
We’ve all heard developers complaining how their clients’ change the requirements of a project midway thought a project. Developers need to stop complaining about this, it happens to us all and it’s never going to change. A good web development company should have processes in place to cope with change. If you are a client, ask how change requests will be handled.

Web developers should work to short release cycles, preferably 1 – 2 weeks. The worst thing that can happen to a project is that the developers get the brief, start the work and then 2 months later they announce it’s finished, only for the client to say “This isn’t what I asked for!”. By working to short release cycles, clients can be involved at all stages. At the end of each release the client should review the project so far and submit any change requests.

Use source control
Our final recommendation is a pretty obvious and simple one, to most people, but we still speak to developers who don’t use any form of source control. This seems more prevalent with freelancers as they don’t see the need as they are the only ones working on the code. If that’s how they see it, then they are missing the point.

There are lots of reasons why all code should be source controlled. We’re are only going to mention a couple of key points here. Firstly it’s a great way of keeping a log of changes made to code. (As long as developers put a comment into the commit). Secondly and most importantly is allows developers to change code without the fear of losing already work already done. This is especially useful when trying out other possible coding solutions to a problem.

Is Your Web Developer a Cowboy?

What do you think of your web developer?

Over the last few years we have quietly, but at every opportunity, been asking this question to business owners, marketing directors and executives responsible for their company website whether for commissioning, developing or maintaining their online presence. We also asked if they were happy with the website that the developer had provided, or if they thought it was bringing tangible benefit to their business. The responses were sharply divided. It seems that the businesses’ experience of Web developers is like Marmite: you either love them or hate them.

Shockingly, over 80% of respondents reported a ‘poor’ or ‘very poor’ experience of working with a website developer or designer. Many made comments that were very uncomplimentary toward their web developers. Some stated that they felt they had been, “Taken for a ride,” by those who had either baffled them with technology and jargon, or had – deliberately or otherwise – raised their expectations beyond what was feasible with the investment they were making. One had invested tens of thousands with a web development company to build an online presence for their business and now has a website that not only makes no contribution to any business objective, neither has it produced a single enquiry. The overall impression that we gained from our research to date and a term used by more than one unhappy respondent was that web developers are: “A load of cowboys.”

These poor experiences have a knock-on effect, not just for those who have been unhappy with their outcomes but for the web development and internet marketing industries as a whole. It results in an increased conviction that all web developers were likely to be the same, and that there was no-one out there who could be trusted. In addition, the inclination to invest any further resources and capital on online promotion of their business was greatly reduced. “We’ve done that and it didn’t work,” was a common response.

What do the web developers have to say?

To balance the picture we also surveyed web developers and web design companies to see if we could identify what had created this tale of woe from businesses.

Many were unaware of the situation and some were quite frank in their derision of business owners. Common responses included

  • “They don’t know what they are doing,”
  • “We’re not telepathic you know!”
  • “They don’t understand what is involved.”
  • “We never get the right information.”
  • “They keep changing their minds, often before the previous changes are completed.”

Each side seemed to blame the other for what might be interpreted as a straightforward breakdown in communication.

So why does this happen? There are no doubt numerous reasons, but focusing on the communication issue, we asked the web developers if they ever asked for, or received, a web design brief from their clients. The majority response was: “Rarely!” The design briefs received mostly consisted of a single page of vague information that lacked the detail and specifics required. Although they usually included requests for things that far exceeded the budget or amount the business owner was willing to spend and were full of wish lists and ‘good’ ideas that require bespoke development or even new technology (for the words ‘bespoke’ and ‘new’, read – interchangeably – ‘difficult’ and ‘expensive’)!

So whose job is it?

Isn’t it part of the web developers’ job to write the brief? Actually, no it isn’t, it is the responsibility of the business owner to communicate their requirements, their goals, their current situation and future plans. After all, as more than one developer pointed out, “We’re are not telepathic you know!”

In addition, the pressure of trying to keep a small web development business running (let alone in profit) in this ever increasingly competitive industry means that there is no time or other resources to be teaching the business owner how to write a web design brief, even though it would create a better outcome for everyone. For the majority of situations, there is often no clear or effective communication, more a case of asking questions of the business owner – which they often don’t understand clearly, which is no-ones fault – to get some sort of outline and then on with the job of designing and building the website.

Our experience – Web developer

Our experience indicates that the majority of web developers really want to do the best job they can for their clients.

They have the skills and knowledge to build websites that could work for their clients’ businesses. They have the equipment and resources to carry out the work. We also observe however that there are web developers who mistake the functionality of the software that they use for their own creative skills. Ultimately over a period of more than a decade we have encountered very few who would deliberately, “Take their client for a ride,” as some businesses have claimed.

Our experience – Businesses

Websites for businesses create a particular quandary for the business owner, manager or similar. There seems to be a huge barrier of technology and jargon to break through to be able to even speak the same language as the web development world. In addition, it is very difficult for anyone without extended experience to make any kind of value judgement about what is good or bad. Consider a different situation: whether you eat in a restaurant often or not, because you do eat every day, if you go into a restaurant, it is possible to make some kind of judgement as to whether you had a good experience, whether the food was good, whether the service was acceptable or excellent. Of course this is subjective to your own preferences and experiences, but at least you understand what a restaurant is, what it is supposed to do or be for and so on.

In our survey we ask a further question of businesses: “What is your website for, why did you get a website?” Very few offered any kind of clear response, the most common being: “Because we needed a website,” or “Because our competitors had one.” We also hear: “To generate sales/leads/enquiries etc.” quite often, which is at least focused on business, but is nowhere near specific enough to be called an objective.

If it is not common for businesses to even understand what the website is for, or why they are getting one developed, how can it be possible for them to make a judgment on what is good or bad, other than it produces no results. Even this judgement requires something to measure the results – or lack thereof – against.

Management by abdication

In so many cases the business abdicates responsibility for the website to a web developer in the mistaken belief that ‘they know best’. While the web developer knows about websites, they are likely to know little or nothing about the client’s business and even less about the customers who will use the website. Together with the lack of communication between the web developer and the business owner it is not difficult to see why so many websites are poorly designed, deliver bad user experiences and ultimately poor or no results for the business.

Is there a solution

The first step to a solution is to address the communication problem. It is clear that there must be effective communication and the first stage of this would normally take the form of a clear and concise website design brief.

The website design brief

The last time we reported on web design briefs we had surveyed 57 web development companies, further surveying has now brought this number to nearly 100. While everyone does it slightly differently, they all had information requirements in common.

Remember that:

  • The document needs to be clear and concise,
  • The document is prepared for someone outside your business who doesn’t necessarily know anything about your business or industry. Even if they claim to have worked in your industry before, unless they are specialists, then you should assume nothing.

Its purpose is to state clearly your requirements, including:

  • A profile of your business, its existing image, brand and products or other offerings including future plans
  • The objectives of the site – stated clearly in terms that can be measured, not woolly ‘to generate enquiries’ or similar, think detail and be specific.
  • The target market – who will be the users of the site, what will be their requirements?
  • Functionality requirements – often expressed as an outline, and as a business owner you may not be able to describe this well, but for example, do you require online payments and if so are you already accepting credit cards in your business. – remember, adding functionality usually increases cost far more than increasing the number of pages in the site.
  • The scale and scope of the development project – how big, how many pages, who will provide what and so on.
  • What are the project constraints, budget, timescale etc.

This document is not a wish list (although you could include things that you would like to do as well as but not instead of the above), it is the document that the developer works to and effectively forms part of your contract with them and is therefore subject to discussion and revision before being finalised.

In conclusion

The commissioning of a website is a much bigger project than appears at the beginning. Websites are not ‘job-and-finish’ projects. You need to form a good relationship with your web developer because you will be working with them for a long time, and the first step to a successful relationship is sorting out the communication. It is your business, if you have articulated clearly what you want, why your business needs it, and provided all the information the developer requires including realistic expectations, budgets and timescales then if it isn’t delivered to the brief then you can blame the web developer. Otherwise accept that it is your problem, not their fault that they are not telepathic.

Furthermore, you need to take responsibility for the project, but also recognise that the development of a website is a team game, not something to be simply handed over and then moaned about when it was not quite what you were thinking of.

Last word

If you are serious about selling online or using the internet to promote your business it is important to recognise that you need to make a considerable investment of time and effort or you might as well take your money and simply thrown up in the air!