1&1 takes part in the code.talks 2015 in Hamburg. We look forward to two days of great presentations on IT management, Java, PHP, e-commerce, start-ups, UX, frontend design and more.
code.talks day 1: Hamburg is spoiling us with perfect weather and the talks promise to be exciting.
The Way from Start-Up Code to Enterprise Code with Microservices
Sebastian Bernt of GLOBIT GmbH talks about the way from the start-up code to enterprise code. This is what we have taken from this talk:
Each start-up produces code under enormous time pressure. What happens next after the successful launch? You and your team will eventually come to the point at which code must be tested and reviewed.
Microservices offer you a way to reach the enterprise level with your code and to use the team better and smarter.
Start-ups begin with an idea and a very small, passionate team. Code is produced from the outset under high pressure – with all good ideas, this pressure rises again enormously when external capital comes. In this situation, bad code is an everyday occurrence.
In most cases, it is easily identifiable by the code quality at what point money and the associated expectations have intensified the pace of development. Because after the first round of investments, the product needs to grow – there is little time for quality assurance measures and good code.
Problems with Start-Ups and Bad Code
Bad code usually works still well in the first phase of growth and mainly delivers results – thus, it is difficult to justify a refactoring / rewrite… One could also say: good for business, bad for the code.
As long as the load remains manageable and as long as it does not have to be extremely scaled, the pressure is not high enough for change.
The code is often very unstructured and generates high maintenance costs, so that the further development and expansion of a product is becoming more difficult and slower. The high expectations and pressure of time means that many start-ups code debts accumulate in this period – and interest rates rise as long as bad code is carried along.
Defining Goals and Motivating Team
If the pressure is high enough, you need to check if you want to review the existing code or create a new one. That depends on many factors: the available resources, the time available and the quality and scalability of existing codes.
In this phase, the development effort is growing, because all the new features must be created in parallel in the old, active code, and the new, optimized code.
First, define clear objectives and then select your method for the pending change to prevent changes from becoming a painful and permanent condition.
You can set these goals, for example:
- A new, sustainable, steady state
- Get the benefits of the start-up mentality as far as possible
- The right technology for each function
- Easily understandable services
- Easily replaceable and extensible services – flexibility!
- All services can be independently scaled
- Clean versioning
- New developers can be integrated quickly
- Teams can independently work on different services
- You make your teammates to specialists, architects etc., depending on their skills
The challenge is to coordinate these changes with your team and to get each developer on board. Thanks to the new, more modular approach, there will be in the future more specialists in your team to focus on specific services and technologies.
Starting Change Correctly
The team, not the product, is the star! So, define together with your developers and software architects what is important for your product, and then select the appropriate technologies.
Bad code in the start-up phase has many reasons – talk to each developer about his reasons and potential solutions. If you know this detail problems and hacks, you can simultaneously motivate your team in addition to code improvements.
Achieving Uniform Structure and High Reusability: Microservices
When upgrading to enterprise code, Microservices will help you to achieve the objectives defined above.
With microservices, you create complex applications from small, stand-alone services. Microservices communicate through language-independent programming interfaces and provide a uniform structure, strong encapsulation and high reusability.
Depending on your product, code base and team, you need to develop your own migration strategy. Here are a few foregoing considerations:
- Optimize old code for microservices
- Design your new system by taking into consideration microservices
- Consistently implement new features with Microservices
- Do not knit any APIs around the old code
- Renounce complex MVC applications with many endpoints -> This would be rather services, not microservices
- Renounce too many APIs with different standards
Today’s speakers include Tim Schuppener and Adam Urban from 1&1, who are speaking about Devops for Dummies^WDeveloper. What can developers do to ensure smooth cooperation between development and operations?
There is already an important quote from the Carnegie Institute of Technology about this:
85% of your financial success is due to your
personality and ability to communicate,
negotiate, and lead. Shockingly, only 15% is
due to technical knowledge.
What can you do with this knowledge as a developer and a department manager? Devops for Dummies^WDeveloper provides the answer to this question and many others.
Learn or die
Nowadays, it’s no longer enough to rest on your skills and the programming languages that you learned. The trends are changing continuously and what was hip yesterday is already old hat today…
But what programming language should I learn? Maybe this great Infographic by Carl Cheo will help you:
Creating an e-commerce platform using the Sylius framework (BETA)
Server & Cloud Server / For experts
The Sylius framework is an interesting alternative for all experts that require full flexibility and control over their e-commerce project. Sylius builds upon the tried and tested symphony framework and can be adjusted easily.
With Sylius, you either use the standard web shop or you develop a tailor-made platform based on Sylius. Sylius is modular and combines functions in self-contained components. You can use your own components to replace and add to standard Sylius functions.
Sylius is still in BETA but it’s definitely worth a look!