April 04, 2014
Enola Labs

Enola Labs creates custom strategy and products for mobile and web.

Let’s Talk

Subscribe to our blog:

​Gene Fojtik has over 17 years of international experience overseeing complex engineering programs and has acquired immeasurable experience in technology and resource management. We figured, if anyone had something to say about solution architecture and how to improve it, Gene would be the man. So, we decided to let him have a go at telling us his approach to the complex world of knowledge engineering and solution architecture.

Solution Architecture – using key elements from Knowledge Engineering (KE) to improve Enola Labs’s solution delivery process.

As a Solution Architect, one of my primary objectives is building meaningful and useful solutions that provide real business value. I have spent nearly the last two decades building and defining my unique approach to solution architecture. With any discipline, I have a handful of techniques, processes, and frameworks that I’ve developed over my years of practice to ensure that I meet my objectives in a proven, repeatable, and accurate manner. My approach to solution architecture is an outcome of domain area expertise and my experiences, which are rooted in business rules modeling, business rule inference engines, and building decision support systems.

In order to fully understand any business or solution, you must first completely understand the entire Domain Area. As discussed in a previous blog post, I represent this in a Domain Driven Architecture (DDA) perspective. The DDA is my framework of choice for the holistic model representation, however the process to get the information required to build the model is key. I have integrated my Knowledge Engineering experience and process with my overall Solution Architecture process, which enables me to characterize and optimize any business or problem area – quickly and with extreme accuracy.

Knowledge Engineering is typically used when building a knowledge-based system, however I’ve adapted key elements to my overall Solution Architecture process. Knowledge Engineering, in its truest sense, is an engineering discipline that involves integrating knowledge into computers systems in order to solve complex problems normally requiring a high-level of human expertise. I won’t get into the details regarding Knowledge Engineering, however it’s roots in Ontology can give you a glimpse into how it can be extremely useful in representing the overall domain space.

The key elements of Knowledge Engineering that have been incorporated into our overall software architecture process are Knowledge Acquisition and Knowledge Representation and Reasoning. Knowledge Acquisition provides a framework for learning that was actually first proposed by Aristotle in his work “Organon.’ Knowledge Acquisition goes beyond the standard Requirements Engineering process; however, it has some of the same components, which are Elicitation, Collection, Analysis, Modeling and Validation. The second KE element that we have incorporated is Knowledge Representation and Reasoning, which is how an entity/actor uses what it knows in deciding what to do. By adding these two elements to the Solution Architecture process, we are able to fully comprehend the overall business objectives, requirements, and model, as well are fully articulate the solution/product architecture.

At Enola Labs, our goal is to provide real business value through transformative approaches and solutions. We learn and improve our approaches to problem solving and solution delivery on a daily basis. With an approach of flexibility and always-increasing curiosity, we stay on top of technological trends and are dedicated to providing the best, most effective solutions for our clients.