Anytime we want to build or create something, we simply have to imagine how it will look like. Of course, “function” is important as well, perhaps even more than “form” in some cases, but when it comes to software development and modern methods of coding – design is equally important and valuable. Some software developers even say that you should always design first and code later, but this old geek “joke” cannot be applied to all cases and there are many ways in which good software can be developed if you code first.
Software design focuses on both main elements of the code – algorithm and architecture, and this makes it so important. Since design affects the end user in a lot of ways, sometimes even more than the back-end part of the project, it is vital that all elements of a software solution are placed in the right position and that the final design suits the needs of the customers.
Designers have to be in constant communication with the rest of the team, simply because software development is not a “one man’s job” anymore. Several people, at least, are involved in this process, and large companies often deploy dozens of experts to work on a single piece of software. Therefore, communication is key, and being able to understand what the rest of the team needs is imperative for a good designer.
The process of design is basically about problem-solving and planning, but it can be divided into three main stages. In the first stage, you brainstorm ideas, creating concepts and making plans about the project and the ways in which your end-product should look like. Once you find a suitable idea, you move on to the second stage, which has one goal – to create a wire-frame of the main elements that make the architecture of the software. It is important to accommodate everything in a way that will be simple but functional, and we all know how simplicity is hard to achieve. After this step comes the third stage, which can be called the “actual design”, and this part of the process is concerned with the shapes, colors, textures and all similar features of those elements that are a part of the design. According to client’s wishes and preferences, the product receives its final form, and aesthetic purposes are important in this final stage as well. Designers who make everything look “nice” will have a lot of satisfied customers, and they will justify the importance of good design when it comes to the process of software development.
Ruby Version Manager (RVM) is a tool that allows you to install multiple versions of Ruby and have multiple versions of the same interpreter. Very handy for those who have to maintain different applications using different versions of Ruby.
To start, download RVM and install the latest stable version of Ruby:
$ echo insecure >> ~/.curlrc $ curl -L https://get.rvm.io | bash -s stable --ruby $ source ~/.bash_profile
Install an old version of Ruby:
$ rvm install 1.8.6 $ rvm use 1.8.6 --default $ ruby -v ruby 1.8.6
Create a Gem set and install an old version of Rails:
$ rvm gemset create rails123 $ gem install rails -v 1.2.3 $ rails -v Rails 1.2.3
Switch back to your system:
$ rvm system $ rails -v Rails 2.3.5
Switch back to your RVM environment:
$ rvm 1.8.6@rails123
And, if you want to remove Rails 1.2.3, just delete the Gem set:
$ rvm gemset delete rails123
Alternatively to RVM, you also might look into rbenv.