Register for our upcoming webinar series here | Learn More

Case Study

Engineering Workflow Tool Development

Freya delivers a custom engineering analysis tool resulting in more than $3M of customer savings.


Convert a proof of concept to a full-scale enterprise application.

The Background

Our customer who performs engineering analysis services for a large military transport aircraft, had developed a proof of concept tool to support their process. The tool captured the data required to support excellent analysis but this was a user intensive activity.

They had a roadmap for broadening their analysis services to the complete fleet from initial trial sub-fleet. This would result in scaling both the analysis team and the data captured.

As a consequence, they determined that this presented an opportunity to develop a production quality tool that could automate and optimize the process allowing their engineers to cover more aircraft in the same time. It also presented an opportunity to integrate with other tools in the enterprise and deliver further value and time savings.

We still encounter many projects where Subject Matter Experts are performing low value data-entry.  Freeing up these highly experienced people can deliver great return on investment.

The Question

“Could we optimize, productionize and scale their proof of concept engineering analysis tool and deploy it to the enterprise?”


Enterprise level software and data science agile application development.

The Approach

This project allowed us to apply our full range of skills and experience from start to finish. The approach consisted of four predominant elements each with their own team.

The first phase focused on exploring and documenting the customer engineering analysis process and requirements. Involving the customer subject matter experts early and often was, as it is with every project, key to the overall success.

We conducted numerous interviews to gather requirements and explore their process and combined this with an inspection of their proof of concept to develop an initial set of ‘user stories’. Each user story documents a specific user need and the business reason for it.

KanbanThe second phase involved two teams working in parallel following an Agile methodology. The data science team focused on the automation of analysis functions which could be performed with algorithms. We implemented a robust module in Python (our favored analytics development language) complete with automated testing to ensure high quality results.

The software development team designed and developed a web-application that would address the user requirements, host the data science module and integrate with the other enterprise tools. Following best Agile principals’ regular demonstrations were conducted with the customer subject matter experts to refine the functionality and user interface. A powerful search engine, configurable reporting and intuitive user interface were just some of the key features which delighted the end-users.

Finally, a deployment team ensured that the developed application was successfully deployed to the customer environment including loading all of the historic data. The application stand-up also included user guides, training and transitional support.


Scaled and optimized enterprise application delivering $Ms of customer savings.

The Result

The end results of the final application were beyond our expectations. The new application and its optimization of the customer process freed up more than two heads of effort annually. This meant highly skilled engineers could now apply their effort to high value analysis activities instead of time-consuming data entry and manipulation. New features beyond the proof of concept enhanced many elements of the end-user experience. Aggregated data can provide higher order results as insights relate to a whole fleet rather than a single aircraft or device.

The customer estimated that the new tool delivers greater than $500K of annual savings. This is forecast to increase to over $3.5M annually when their engineering analysis service expands to the full fleet. Additionally, the new tool now collects data in a manner that enables other departments to mine the information collected and improve their own activities. As more data is collected our customer can also expand analysis beyond individual aircraft to a fleet wide perspective leveling-up and expanding their services to their customer.

Make Our Team Yours.

Freya Team July 2020

[gravityform id="3" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_3' ><div id='gf_3' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_3' id='gform_3' action='/case-studies/engineering-workflow-tool-development/#gf_3' > <div class='gform_body gform-body'><ul id='gform_fields_3' class='gform_fields top_label form_sublabel_below description_below'><li id="field_3_1" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label' for='input_3_1' >Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_3_1' type='text' value='' class='large' placeholder='Email Address*' aria-required="true" aria-invalid="false" /> </div></li><li id="field_3_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_3_2' >Comments</label><div class='ginput_container'><input name='input_2' id='input_3_2' type='text' value='' /></div><div class='gfield_description' id='gfield_description_3_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_3' class='gform_button button' value='Download' onclick='if(window["gf_submitting_3"]){return false;} window["gf_submitting_3"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_3"]){return false;} window["gf_submitting_3"]=true; jQuery("#gform_3").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=3&amp;title=&amp;description=&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_3' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='3' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_3' value='WyJbXSIsIjNiNzE5MjljYmUzNTUyZDk2Mzk0OGU5N2M5OGRjNmY1Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_3' id='gform_target_page_number_3' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_3' id='gform_source_page_number_3' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_3' id='gform_ajax_frame_3' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type="text/javascript"> gform.initializeOnLoaded( function() {gformInitSpinner( 3, '' );jQuery('#gform_ajax_frame_3').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_3');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_3').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_3').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_3').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_3').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_3').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_3').val();gformInitSpinner( 3, '' );jQuery(document).trigger('gform_page_loaded', [3, current_page]);window['gf_submitting_3'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_3').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_3').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [3]);window['gf_submitting_3'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_3').text());}, 50);}else{jQuery('#gform_3').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [3, current_page]);} );} ); </script>