Learn why did we make Sifu, what problems we’re solving and who is the team behind Sifu?
Over the years, developer time has become an extremely valuable resource and at the same moment the need for software development has grown and is continuing to grow exponentially.
Marc Andreessen explained this state perfectly in his “Why Software Is Eating The World” article. Marc’s point is that today every company is a software company because software is the driving force of business today — in one way or another.
It’s easy to conclude that the deficit of time needed for software development is growing day by day, whilst the development capacities can’t keep up with industry’s pace. It’s a losing race at this point. We, as an industry, are slowly realising that the only way of fulfilling this deficit is to start automating the development processes.
Solutions out there
There are a lot of different platforms, frameworks, and code generators, but all of them have restrictions. They either don’t let you have ownership of IP, often they are vendor locking, almost all don’t allow you to access the source code, they end up giving code that is almost unusable… But why? Why does it have to be like this!
Then, there is Sifu
We felt the pain, for a long time, and then decided to automate parts of the development process others couldn’t or thought impossible. We did it with our own twist. Not restricting developers in any way, allowing them to develop products faster, and in the end making their jobs a bit more fun.
With over 10 years of experience in building the web and mobile applications, in between our engineering founding team, we were able to recognise some of the most repetitive tasks in the developers’ everyday life. The tasks developers have to do every time they start work on new projects, tasks that are dull. The task all of us hate! Drudgery.
60% of the code in a project can be classified as repetitive
We’ve tried to get a realistic number on how much of the code in a project can be classified as the actual repetitive code. We were amazed! It summed up to be in between the range of 60% to 80% of the code. Unfortunately, that repetitive work sums up to be a majority of the time spent on the project.
Since it is repetitive and “dumb”, why all of this work isn’t yet automized! Then it hit us. We are going to automate repetitive coding. We are going to let you have more fun while coding. We are going to make you, your client and your boss happier.
Based on vast experience in the industry we have - as a team - recognised a number of client/server application building blocks. Not to mention the best practices developers need to do to implement into those building blocks.
Replacing the time needed to implementing exactly these client/server application building blocks in a project.
How it all started
In summer of 2014, we started working on a proof of a concept for this assumption. During the winter 2014/2015, this PoC was tested on a few internal projects and was given to a couple of friendly teams to be tested out. Feedback was amazing!
We realised that we can cut down both development time, testing time and even management time.
The main mantra and components
Work started as we started developing an external DSL — a simple language in which developers can specify all that is needed to automize the repetitive work. We ended up with what we call specifications, a
human developer like language .
At the same time, the work started on a Compiler that would parse and validate specifications. Our philosophy is that for a good workflow, it’s important to have a good developer—tool interaction, as developers expect to get instant feedback about what was wrong with their source code–specification.
In the beginning, it all started as a tool for back-end development. Soon, we discovered that front-end development can be automated also.
From the beginning, we had a strict requirement that we do not limit developers in any way. That is why we choose to build a tool, not a framework or a platform.
There are no dependencies and no restrictions. Simply, you get clean source code that’s always at your disposal!
We never-ever want to limit developers to certain development stacks or even programming languages. To support this idea we developed the template system. Those templates allow developers to deliver source code in different tech stacks. Making it really simple to pivot and change your tech stack if you feel the need in the future.
We are on a mission to help developers and teams deliver better software faster while making programming, even more, fun. Seeing teams becoming more agile and have all the perks of industries best practices in their code base is making us think we are on the right track.
We love seeing so many happy teams using our product and our consulting services.
We’re always trying to incorporate the best programming practices in our products. With dryTools, we’ve got just that! Our development process skyrocketed, as we could concentrate on building the core of our application instead of wasting time on menial tasks. On top of that drySupport was awesome, they took really good care of us. Exceptional experience!
Dejan Stefanović — Head of R&D at RT-RK