{"id":17,"date":"2020-01-19T13:12:38","date_gmt":"2020-01-19T12:12:38","guid":{"rendered":"http:\/\/dev2.qindel.com\/?page_id=17"},"modified":"2022-07-13T14:02:03","modified_gmt":"2022-07-13T12:02:03","slug":"desarrollo-agil-microservicios","status":"publish","type":"page","link":"https:\/\/www.qindel.com\/en\/desarrollo-agil-microservicios\/","title":{"rendered":"Microservices and agile development"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Microservices and agile development<\/h1>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>We like to align ourselves with our clients and the value of the business provided to their clients. To this end, we use the best practices of Agile, QA and DevOps methodologies to ensure reliable and on-time delivery.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"531\" height=\"450\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/factoria_illustration.svg\" alt=\"\" class=\"wp-image-651\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">Why choose us for your microservices development<\/h2>\n\n\n\n\n<div class=\"qg-section-horizontal features-block\">\n\n\t\t\t\t<div class=\"feature\">\n\t\t\t\t<img decoding=\"async\" class=\"feature__icon\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/feature_icon.svg\" alt=\"\">\n\t\t\t\t<h3 class=\"feature__title\">Client focused<\/h3>\n\t\t\t\t<p class=\"feature__excerpt\">Our first objective is to understand the needs, priorities and way of working of the business. This helps us to determine the methodology and best technical solution for each case<\/p>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"feature\">\n\t\t\t\t<img decoding=\"async\" class=\"feature__icon\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/feature_icon.svg\" alt=\"\">\n\t\t\t\t<h3 class=\"feature__title\">Technical competence<\/h3>\n\t\t\t\t<p class=\"feature__excerpt\">Our group of professionals is able to transform the business requirements into technical requirements and implement them with clean coding and industry best practices.<br \/>\r\n<br \/>\r\nTo have highly qualified professionals it is essential to have a continuous training plan to stay up to date with the latest technology and methods.<br \/>\r\n<br \/>\r\nOur strategic partners in terms of Microservices and DevOps are: CloudBees (Jenkins) RedHat (OpenShift, Ansible, etc.), MongoDB (NoSQL)<\/p>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"feature\">\n\t\t\t\t<img decoding=\"async\" class=\"feature__icon\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/feature_icon.svg\" alt=\"\">\n\t\t\t\t<h3 class=\"feature__title\">Quality \u2013 QA<\/h3>\n\t\t\t\t<p class=\"feature__excerpt\">In critical environments reliability is essential. This is where we begin working from gathering requirements to define how the environments will be tested (three amigos) and defining the appropriate metrics to obtain ROI.<br \/>\r\n<br \/>\r\nTechnically speaking, we consider the testing team to be part of the Scrum team, where the appropriate level<br \/>\r\nof testing per layer is determined based on the complexity and speed of the tests.<br \/>\r\nT\u00e9cnicamente hablando para nosotros el equipo de pruebas es parte del equipo de Scrum donde se define el nivel <br> adecuado de pruebas por capa basado en la complejidad y la velocidad de las pruebas.l<\/p>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"feature\">\n\t\t\t\t<img decoding=\"async\" class=\"feature__icon\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/feature_icon.svg\" alt=\"\">\n\t\t\t\t<h3 class=\"feature__title\">Agility<\/h3>\n\t\t\t\t<p class=\"feature__excerpt\">Depending on the environment (from pure development to pure support), we use one of the following methodologies: Scrum, ScrumBan or Kanban.<br \/>\r\n<br \/>\r\nAs an example, our engineers are certified in Agility (Scrum Manager Certified).<\/p>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\n\n\n<div class=\"qg-service-success-cases__section\">\n\t<div class=\"qg-section qg-service-success-cases__wrap\">\n\t\t<div class=\"qg-service-success-cases__text\">\n\t\t\t<h3 class=\"qg-service-success-cases__text--title\"> Our solutions guarantee: <\/h3>\n\t\t\t<p class=\"qg-service-success-cases__text--excerpt\"> Reliability of all the components that make up the designed solution (QA). Agility in changing requirements (agile methodologies). The use of appropriate technologies (microservices best practices). <\/p>\n\t\t<\/div>\n\t\n<!-- Slider main container -->\n<div class=\"qg-cards-slider\" id=\"qg-sc-service-slider\">\n\t<!-- Additional required wrapper -->\n\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t<div class=\"qg-cards-slider__item swiper-slide\">\n\t\t\t\t<div class=\"qg-card\">\n\t<img decoding=\"async\" class=\"qg-card__img\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2021\/10\/markus-winkler-Lp4jsVg8gpY-unsplash-scaled.jpeg\" alt=\"\">\n\t<div class=\"qg-card__info-wrap\">\n\t\t<p class=\"qg-card__tags\">\n\t\t\tRetail\t\t<\/p>\n\t\t<h3 class=\"qg-card__title\">Online order management - International fashion and retail company<\/h3>\n\t\t<hr class=\"qg-card__line-break\">\n\t\t<a href=\"https:\/\/www.qindel.com\/en\/casos-de-exito\/indom\/\" class=\"qg-card__link\">Saber m\u00e1s del caso<\/a>\n\t<\/div>\n<\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t<!-- If we need pagination -->\n\t<div class=\"swiper-pagination\"><\/div>\n\n\t<!-- If we need navigation buttons -->\n\t<div class=\"qg-cards-slider__control qg-cards-slider__control--prev\">\n\t\t<i class=\"fa fa-angle-left\"><\/i>\n\t<\/div>\n\t<div class=\"qg-cards-slider__control qg-cards-slider__control--next\">\n\t\t<i class=\"fa fa-angle-right\"><\/i>\n\t<\/div>\n<\/div>\n\t<\/div>\n<\/div>\n\n\n<div class=\"qg-service-benefits-section\">\n\t<div class=\"qg-section qg-service-benefits__wrap\">\n\t\t<img decoding=\"async\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/uploads\/sites\/8\/2020\/11\/machine_learning_benefits_illustration.svg\" alt=\"\" class=\"qg-service-benefits__image\">\n\t\t<div class=\"qg-service-benefits__text-wrap\">\n\t\t\t<h3 class=\"qg-service-benefits__title\"><\/h3>\n\t\t\t\t\t\t\t<p class=\"qg-service-benefits__description\"><\/p>\n\t\t\t\t\t\t<div class=\"qg-service-benefits-points\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__point-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/themes\/qindel-theme\/resources\/images\/tick_icon.svg\" class=\"qg-service-benefits-points__icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__text\">\n\t\t\t\t\t\t\t\t<h4 class=\"qg-service-benefits-points-text-wrap__text--title\">Agility<\/h4>\n\t\t\t\t\t\t\t\t<p class=\"qg-service-benefits-points-text-wrap__text--description\">Using short iterations to achieve functionality and allow for changes based on new business requirements is part of the success.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__point-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/themes\/qindel-theme\/resources\/images\/tick_icon.svg\" class=\"qg-service-benefits-points__icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__text\">\n\t\t\t\t\t\t\t\t<h4 class=\"qg-service-benefits-points-text-wrap__text--title\">DevOps<\/h4>\n\t\t\t\t\t\t\t\t<p class=\"qg-service-benefits-points-text-wrap__text--description\">Deciding whether tasks are done in Development or in Operations is the first step for automation from development to production, including QA testing.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__point-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/themes\/qindel-theme\/resources\/images\/tick_icon.svg\" class=\"qg-service-benefits-points__icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__text\">\n\t\t\t\t\t\t\t\t<h4 class=\"qg-service-benefits-points-text-wrap__text--title\">QA<\/h4>\n\t\t\t\t\t\t\t\t<p class=\"qg-service-benefits-points-text-wrap__text--description\">We like to define the deliverables according to the tests that should be done and to structure the appropriate level of testing based on the importance of the deliverables and align them with the test pyramid.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__point-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.qindel.com\/en\/wp-content\/themes\/qindel-theme\/resources\/images\/tick_icon.svg\" class=\"qg-service-benefits-points__icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"qg-service-benefits-points__text\">\n\t\t\t\t\t\t\t\t<h4 class=\"qg-service-benefits-points-text-wrap__text--title\">Technology<\/h4>\n\t\t\t\t\t\t\t\t<p class=\"qg-service-benefits-points-text-wrap__text--description\">When we talk about Microservices development, a number of technologies come into play: Cloud\/OnPremise, container platforms, Pipeline, DevOps, programming languages, frameworks, patterns and UX.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<span class=\"section-spacing\"><\/span>\n\n\n<h2 class=\"has-text-align-center width-small wp-block-heading\">Get the best answers to your company's specific needs<\/h2>\n\n\n<span class=\"section-spacing\"><\/span>\n\n\t<script type=\"text\/javascript\">\n\t\tif( window['jQuery'] ) {\n\t\t\t( function( $ ) {\n\t\t\t\t$( document ).bind( 'gform_post_render', function() {\n\t\t\t\t\tvar $firstError = $( 'li.gfield.gfield_error:first' );\n\t\t\t\t\tif( $firstError.length > 0 ) {\n\t\t\t\t\t\t$firstError.find( 'input, select, textarea' ).eq( 0 ).focus();\n\t\t\t\t\t\tdocument.body.scrollTop = $firstError.offset().top;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} )( jQuery );\n\t\t}\n\t<\/script>\n\t\n                <div class='gf_browser_gecko gform_wrapper qg-form_wrapper' id='gform_wrapper_1' ><form method='post' enctype='multipart\/form-data'  id='gform_1' class='qg-form' action='\/en\/wp-json\/wp\/v2\/pages\/17'> \r\n <input type='hidden' class='gforms-pum' value='{\"closepopup\":false,\"closedelay\":0,\"openpopup\":false,\"openpopup_id\":0}' \/>\n                        <div class='gform_body'><ul id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below'><li id='field_1_1'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_1' >Name<span class='gfield_required'>*<\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_1_1' type='text' value='' class='large'     aria-required=\"true\" aria-invalid=\"false\" \/><\/div><\/li><li id='field_1_2'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_2' >Email<span class='gfield_required'>*<\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_2' id='input_1_2' type='email' value='' class='medium'    aria-required=\"true\" aria-invalid=\"false\" \/>\n                        <\/div><\/li><li id='field_1_3'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_3' >Message<span class='gfield_required'>*<\/span><\/label><div class='ginput_container ginput_container_textarea'><textarea name='input_3' id='input_1_3' class='textarea large'     aria-required=\"true\" aria-invalid=\"false\"   rows='10' cols='50'><\/textarea><\/div><\/li><li id='field_1_4'  class='gfield .accept-politics gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label'  ><span class='gfield_required'>*<\/span><\/label><div class='ginput_container ginput_container_consent'><input name='input_4.1' id='input_1_4_1' type='checkbox' value='1'   aria-required=\"true\" aria-invalid=\"false\"   \/> <label class=\"gfield_consent_label\" for='input_1_4_1' >I have read and accept the <a href=\"#\" targe=\"_blank\">privacy and data protection policy<\/a><\/label><input type='hidden' name='input_4.2' value='I have read and accept the &lt;a href=&quot;#&quot; targe=&quot;_blank&quot;&gt;privacy and data protection policy&lt;\/a&gt;' class='gform_hidden' \/><input type='hidden' name='input_4.3' value='1' class='gform_hidden' \/><\/div><\/li>\n                            <\/ul><\/div>\n        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_1' class='gform_button button' value='Send'  onclick='if(window[\"gf_submitting_1\"]){return false;}  if( !jQuery(\"#gform_1\")[0].checkValidity || jQuery(\"#gform_1\")[0].checkValidity()){window[\"gf_submitting_1\"]=true;}  ' onkeypress='if( event.keyCode == 13 ){ if(window[\"gf_submitting_1\"]){return false;} if( !jQuery(\"#gform_1\")[0].checkValidity || jQuery(\"#gform_1\")[0].checkValidity()){window[\"gf_submitting_1\"]=true;}  jQuery(\"#gform_1\").trigger(\"submit\",[true]); }' \/> \n            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_1' value='WyJ7XCI0LjFcIjpcImQxOGEyOGRlNGNjYmNjNGE5MjI5YTBiZTMzYmIzYjllXCIsXCI0LjJcIjpcImM2ODJmYTFkZjc3YzBjODlkZWUxNDkwZDhhZThmZjdhXCIsXCI0LjNcIjpcImQxOGEyOGRlNGNjYmNjNGE5MjI5YTBiZTMzYmIzYjllXCJ9IiwiNGY2MjJkOTgzZmMyNjA3Y2EzYzE0Y2M3NmExY2VjNzciXQ==' \/>\n            <input type='hidden' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' \/>\n            <input type='hidden' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"ak_\"><label>&#916;<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"ak_js\" value=\"210\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p><\/form>\n                        <\/div><script type='text\/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 1) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );<\/script><script type='text\/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) } ); <\/script>\n\n<span class=\"section-spacing\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Microservices and agile development We like to align ourselves with our clients and the value of the business provided to their clients. To this end, we use the best practices of Agile, QA and DevOps methodologies to ensure reliable and on-time delivery. Why choose us for your microservices development Get the best answers to your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/full-width.php","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":31,"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":927,"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/pages\/17\/revisions\/927"}],"wp:attachment":[{"href":"https:\/\/www.qindel.com\/en\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}