Focus on the model instead of getting bogged down with the details
Savvior Technology Solutions
Web developement company
Pittsburgh, Pensylvanya, USA
Savvior Technology Solutions is web development company focusing on application development through superior design, marketing, and ahead-of-the-curve thinking.
Problem: Huge hassle with editing YML files manually
Savvior adapted Doctrine 2 at work as their ORM platform. However, it was cumbersome for the development team to maintain decent version control of the database and editing YML files manually was a huge hassle and time sink.
MySQL was a solution that was working well with MySQL workbench. But with SQL Server, the YML and database had to be changed manually every time. Savvior started searching for something that would help them generate YML files from SQL Server 2008 R2 database.
Solution: Definition files generated by Skipper
Nicholas LaDieu, CTO of the company says: "When we saw Skipper we knew this was a better solution." So Savvior implemented it to its common workflow and now the developers use Skipper every day.
"We work with Skipper every day. Our current workflow would not be possible without such a tool."
Nicholas LaDieu, Savvior
The Savvior's developers create in Skipper areas of functionality, modules, and export them to different XML files. All of these updates work seamlessly with the version control system for automatic merging and updating of changes to and from the model.
Afterwards, the model is exported to YML. A custom PHP script then takes the changes in the model and updates SQL Server 2008 R2 database to keep everything in sync. This process has allowed Savvior to have many developers contributing to this project without having to learn YML or understand the inner workings of that layer.
Benefits of using
Benefit #1: All attributes are stored in the model
The visual interface of Skipper is greatly appreciated by Savvior development team. Thanks to it developers can actually use the model to store many additional attributes than they were previously. Earlier the model was generated from the database, but now with Skipper they edit only the model and the database is abstracted properly.
"We use the model to store many more additional attributes than before. With Skipper the model is the only thing we edit."
Benefit #2: Time saving
Nicholas can't say how much work and time does Skipper save to all developers of Savvior. But he realizes that current workflow of the company would not be possible without such a tool. In general, he would say it saves quite a bit of time, especially when using SQL Server.
Benefit #3: Swift support
What Savvior developers like on Skipper is that the requests for support are answered promptly. Features needed to make their project a success have been added. When Savvior started using Skipper, custom attributes added to associations were not properly exported to YML. Developers requested this bug to be fixed and it was fixed and released. "We really appreciate this and it is not common to have that level of attention when purchasing software at this price point," says Nicholas.
"We really appreciate the support. It is not common to have that level of attention when purchasing software at this price point."
Benefit #4: Low learning curve for new developers
Another great benefit that helps Savvior is low learning curve for new developers on the project. This allowed them to employ Junior programmers without much training.
Projects developed in Skipper
The company has one large Skipper project deployed which is a custom software solution. It is a commerical project management tool for a large corporation, which manages multi-million dollar deployments using software created by Savvior.
"We plan to use Skipper for all future projects and existing projects where the code is built on a normalized database. With Skipper we can easily work with any MVC framework"
Savvior has also several smaller projects which have been retrofitted to use Skipper. Also, the company built an enterprise reporting tool that creates database reports using a Doctrine 2 model and Skipper is being used to set up these deployments.
Common project workflow in Skipper
At Savvior, each developer has his own installation of Skipper. The configuration file for Skipper is in their version control repository so any developer can add custom fields to the model.
Common project workflow consists of these steps:
- Updating model from version control to pull in the latest changes.
- Making changes to the model (adding fields, associations, attributes).
- Export of the changes to YML using Skipper.
- Running of a Command line php script:
- The script generates an SQL script to bring the database in sync with the Skipper model.
- The script adds or updates the Laravel Models which are Doctrine 2 classes. It also removes any models that are no longer present. Savvior generates the base model in a "Generated" folder. After that, they use the inheritence to extend the model with custom functions.
The company focuses on:
- ERP enterprise solutions
- Web application development
- Mobile application development
- Content management
Using ORM frameworks:
Using MVC frameworks: