Outcome-driven software engineering
We are a collective of senior IT consultants with decades of experience in all aspects of software engineering. Integrated Experts are available to work onsite, embedded, helping to manage and mold your team or we are able to work remotely using agile methodologies to ensure your project succeeds.
Having us fully integrated, you are in the full control of the flow of you project and, at the same time, have all the expertise required to deliver it on-time.
At the core of what we do is our professionalism. To make this happen we employ best practices and trusted technologies from the start of the project to delivery.
It's time to tame your software projects so that you can get back to doing business!
If your project needs saving, or you just need a helping hand, contact us at info@integratedexperts.com
Drupal is our primary expertise.
We do Drupal 8, Drupal 7, commerce, migrations, performance... anything and everything Drupal
Continuous Integration, Continuous Delivery, Automated builds, custom automations - we do them all
Got ideas sitting at the back of your mind and need help making them a reality? We can help with design, strategy and implementation and make sure that customers will fall in love with your product.
A website is more than a collection of static web pages. We start with an analysis of your requirements and then move on to documenting the data and workflows required so that an informed decision can be made about what work should be done.
Best practice is more than just a keyword to us, it's part of our DNA. Doing things the right way from the start doesn't mean compromising on your timeframes!
Deploying software should just work and there should be a high level of confidence that what we are deploying is of high quality and is robust.
If your project needs expertise or saving, contact us via info@integratedexperts.com
It is advised to use Project Complexity Multiplier (PCM) for correction of delivery timeframes. PCM is discovered during initial site assessment and is based on scale from 1 to 5, where 1 is considered a complexity of standardised CMS installation with minimum features implemented according to the best practices, and 5 is a complex, poorly architected and poorly managed CMS installation, which may require a complete rebuild of some or all features.
Sometimes it may be worthwhile to skip projects with PCM higher than 3 as the Client may not be able to comprehend additional costs and risks of delivering new features and the development company may lose some reputation despite the best efforts to deliver such project.
Strategic planning of implementation of the best practices is one of the most important and challenging activities when onboarding a new project. From one side it is highly advised to follow all known best practices, but at the same time it is required to preserve development velocity, demanding the decision to be more pragmatic. An existing toolset for implementing such best practices may help to speed-up setting up of the major components of supporting systems, but only if such toolset is tested and has enough documentation.
The approach to setup local environment is usually overlooked by developers from project-to-project ‒ it is presumed that one setup fits all projects, despite the size or the complexity of the project or the number of developers working on this project. And because most of the times such configurations are minimalistic (Acquia desktop, MAMP etc.), the realisation that a more robust and flexible system is required comes after spending significant time to fit this large complexity into this minimalistic local environment setup, which then translates to additional costs for more extended setup.
A list of requirements is a good place to start to select the tools to run local environments:
We are using Drupal-Dev for local development and CI integration
Before feature changes can be merged into a shared mainline, a complete build must run and pass all tests on automated builds server. It is usually setup to import latest backup from production environment into fully built codebase and run code linting and tests. However, it is also a good approach to setup automated builds with a minimal configuration of code linting to kick-start any projects ‒ this does not require as much time as configuring DB import and testing frameworks (especially when tests may not yet exist).
It is also a good practice to setup deployment step at the end on the automated build run, which make such system a Continuous Integration server.
Testing of any project, especially an inherited one, is essential for a good quality and timely delivery of new features. Automated tests help to reduce the time to manually repeat the same steps each time a change is introduced into a system. They may be ran locally by a developer, but always run on the automated build server on each code change ‒ this guarantees predictable delivery results.
It is considered a good approach to cover existing functionality by tests before starting any work that may introduce change in behaviour or regressions.
When working with Drupal, Behat is the most convenient and robust way to interact on API, browser and front-end levels.
Cloud hosting with providers like Acquia or Platform.sh brings piece of mind to developers and clients. While some providers are more conservative with the number of environments (Acquia), others provided configurable stack of dynamic environments with per-branch testing (Platform.sh). But in both cases, cloud hosting providers usually have extensive APIs for flexible and scalable deployment processes and automated build server integration.
Cleanup of the existing code is something that a developer may struggle to accept as a piece of work. By ‘cleanup’ we mean ‘following coding standards’. Drupal has a very well-defined and well-maintained coding standards, so all custom code that a developer is working on must adhere the standards to keep the code quality hight. There are automated tools that allow to scan such custom code and report any issues back to the developer. These tools can also fix some coding issues automatically.
To preserve development velocity, it is considered a good approach to stay pragmatic with code cleanup - use “boy scout rule” - cleanup code standards issues in any file that has been modified. This allows to progressively cleanup the whole codebase.
Based on the amount of the custom code, it may be beneficial to run cleanup for all custom code before starting any work on the legacy code.
Development processes in the team usually require strict rules and high tolerance for criticism. This is usually possible through 2T’s rule: trust and transparency. While trust is something that takes time to earn/grant, transparency can be introduced from the earliest stages of engagement in any project.
It is also imperative to establish a peer-review based approach to validate all code contributed by the team.
SCRUM is a recommended approach to run development process. Following SCRUM rituals will benefit all participants of the process.
If your project needs saving, or you just need a helping hand, contact us at info@integratedexperts.com