Synergo Group
Synergo Group
  • Services
      • Data Governance Solutions
      • AI Development & ML
      • DevOps & Cloud Services
      • Business Consulting
      • Complex Systems Integration
      • Custom Software Development
      • Infrastructure Monitoring & Support
      • MVP Development
      • QA Testing
      • Team Augmentation
      0
      +
      Successfully completed projects
      0
      +
      Years of developing successful solutions in different areas
  • Industries
      • Healthcare
      • Financial Services
      • Education
      • IT Services
      • Real Estate
      • Consulting
      • Non-Profit Sector
      • Wellness & Recreation
      • Insurance
      0
      +
      Successfully completed projects
      0
      +
      Years of developing successful solutions in different areas
  • About us
  • Our work
  • Blog
  • Services
      • Data Governance Solutions
      • AI Development & ML
      • DevOps & Cloud Services
      • Business Consulting
      • Complex Systems Integration
      • Custom Software Development
      • Infrastructure Monitoring & Support
      • MVP Development
      • QA Testing
      • Team Augmentation
      0
      +
      Successfully completed projects
      0
      +
      Years of developing successful solutions in different areas
  • Industries
      • Healthcare
      • Financial Services
      • Education
      • IT Services
      • Real Estate
      • Consulting
      • Non-Profit Sector
      • Wellness & Recreation
      • Insurance
      0
      +
      Successfully completed projects
      0
      +
      Years of developing successful solutions in different areas
  • About us
  • Our work
  • Blog

Blog

Data Context Interaction (DCI): Rediscovering Craftsmanship

Data Context Interaction (DCI): Rediscovering Craftsmanship

A comprehensive understanding of Data Context Interaction (DCI).

Data Context Interaction and Software Development

Interviewer: With the ever-evolving landscape of software development and the growing demand for innovative approaches, we are here to explore how Data Context Interaction (DCI) embodies a better approach, particularly in object-oriented programming and software architecture. Our guest brings valuable knowledge and experience, making this interview a great opportunity to gain deep insights into the power of DCI. So, without further ado, let’s dive right in. Welcome, Nick, and thank you for joining us today!

Nick: Thank you for having me. This is going to be exciting.

Interviewer: You bet. But before we dive into the subject, could you please tell us a bit about yourself and your role within your company?

Nick: Absolutely. I’m Nick Ciolpan, a managing director at Graffino, a Custom Software Development company. I play a dual role at the moment. First, I partner with clients, helping them navigate the evolving landscape of custom software development and nearshoring. I guide them in understanding the best approach to kickstart their product development. My second role is that of a CTO and a technical leader for my team at Graffino, where I help come up with the best technical solutions for our clients.

Interviewer: Let’s start with the basics. What are the core principles of DCI, and how does it differ from traditional approaches to software architecture?

Nick: DCI is a software design and architecture paradigm that builds on Object-Oriented Programming (OOP) principles. It’s not avant-garde but rather a blend of old and new. Unlike traditional approaches that focus on building object hierarchies and categories, DCI challenges these assumptions. It acknowledges that real-world objects often interact in a network-like fashion, and systems are formed by the collaboration of objects with their data and behaviour. DCI separates data and behaviour, making it easier to adapt to changing contexts.

Interviewer: Your explanation clarifies the philosophy behind DCI. Can you provide an example that illustrates the difference between DCI and traditional object-oriented programming?

Nick: Certainly! So, DCI offers a compelling promise – it allows end users to understand code better and empowers developers to align code with human mental models. But why should we seek alternatives to existing tools? The answer lies in the ability to express our mental models effectively. Traditional tools, like Java, fall short in this regard. Research proves this. In an experiment, two groups used Java and DCI to achieve the same tasks. Surprisingly, the DCI group consistently outperformed the Java group, despite a learning curve.

Their measurements were crucial – how easy it was to fix bugs, the number of regressions, and the speed of implementing use cases. Let’s consider architecture resilience. Think of a house. Some elements change frequently, like the paint color. This change doesn’t require rebuilding the walls. In software, DCI separates data (the wall) from function (the paint). Traditional approaches intertwine them, leading to more defects and regressions. Speed matters too. DCI closely aligns code with mental models and use cases, making it easier for non-technical folks to understand the code. You can quickly locate and modify code related to a specific context without navigating complex hierarchies.

In a nutshell, DCI makes code more understandable and adaptable, enabling a seamless connection between business and tech perspectives.

Interviewer: That experiment truly demonstrates the practical benefits of DCI. To dive deeper into the application of DCI, could you share how you’ve incorporated DCI into your software development strategy at Graffino?

Nick: DCI’s strong alignment with agile software development principles has made it a natural fit for our team at Graffino. James Coplien, a key figure in the DCI world, has also contributed significantly to agile practices. We’ve found that DCI helps bridge the gap between technical and business teams. It enables our developers to create code that directly mirrors business scenarios and user stories.

This alignment allows us to build systems that are not just robust but also closely aligned with the needs of our clients. We have an agile team that’s been ideal for running architecture experiments successfully. I encourage trying DCI because it challenges the status quo. Some in the software industry stick to the status quo without questioning, but our team values innovation and aims for the best outcomes.

We apply DCI but not to the extreme, as we believe in using the right tools for the job and maintaining a critical approach to technology choices. So, yes, we do apply DCI in practice. Yes. there are cases in which we don’t. We’re trying to not go into the extreme where we have a hammer and everything looks like a nail. And this is the main mission that I’m fighting for. Be critical about the tools and technologies that you’re using and make sure that is your best mind being put there.

Interviewer: It’s evident that DCI has made a significant impact on your approach to software development. Looking ahead, what recommendations do you have for fellow software developers who are considering exploring DCI or similar paradigms?

Nick: My advice is always to question your tools and challenge the status quo. The tech industry is continually evolving, and the most successful developers are those who remain open to exploring new paradigms. Consider DCI as a potential approach in your toolkit, especially when you’re working on complex systems that involve numerous actors and dynamic interactions. In its essence, DCI can be simplified as the concept of objects that are primarily pure data on one side. Imagine an object that contains only the most essential methods specific to that object.

For instance, a person object might have a method called “talk.” However, these objects can assume roles that bring with them a broader set of methods tailored for specific tasks. For example, a “public speaker” role requires the object it attaches to have the ability to speak, but it also includes a range of abilities necessary for public speaking, such as operating a presenter remotely. These roles are context-specific. It doesn’t make sense to carry the entire public speaking setup when the person is at home. In this way, the language evolves to revolve around the DCI paradigm, providing a more accurate representation of the real world.

I’m always giving the fulloo.info website as the index for all things DCI. What you will find there is a white paper which I suggest you start with. And then take a look at the DCI implementation that is closest to your current tool set.  Additionally, explore the DCI implementation that best aligns with your current toolset; there are implementations available for nearly every popular programming language.

For instance, Marvin is designed for C# developers, and Trygve was created to resemble Java. It’s not just because of Java’s popularity within the ecosystem, but also because of its widespread use. The creator believed that if you’re already comfortable with Java’s syntax and its characteristic use of brackets, you’ll find it easier to grasp the DCI superset in that language.

Interviewer: That’s excellent advice. Before we conclude, do you have any upcoming events or projects related to DCI that our audience might be interested in?

Nick: Indeed, we have an exciting event coming up in November from the 6th to 10th. James Coplien, a significant figure in both technology and agile management, will be joining us for a special event. If you have ever thought about getting yourself certified or learning more about Scrum, this is a unique opportunity, right? I mean, you could have this course online or physically somewhere with someone completely anonymous, or you could have it with someone who is part of creating the whole Scrum philosophy and culture. It’s an excellent opportunity for those interested in Scrum certification and, of course, another chance to delve into the world of DCI.

Interviewer: Fantastic! Thank you, Nick, for sharing your valuable insights into DCI and how it can transform software development. It’s been a pleasure having you on the show today.

Nick: Thank you! It’s been a pleasure being here and discussing a topic I’m passionate about.

Similar articles

The Impact of AI on the FinTech Industry: Is It Truly Beneficial for Consumers?

Sep 19 2024

SRE & DevOps: Striking the Perfect IT Match

Oct 9 2024

7 Key Applications of Data Science in Finance?

Dec 4 2024

Written by

Post Author
Cristi Beres

CEO and Solutions Architect, Synergo Group

I’m a Solutions Architect passionate about using the latest technology to design and build web and mobile systems that solve real business challenges. When I’m not consulting on technology or managing offshore development teams, I enjoy traveling to new places, sharing my love of Romania, and even baking bread between meetings. I specialize in delivering complete, end-to-end solutions that help companies thrive.

Similar articles
The Future is Now: Quantum Computing and Its Implications

Discover how Quantum Computing is revolutionizing the tech industry.

Simplifying App Testing: A Deep Dive into No-Code Automation

The article highlights the rise of no-code automation tools.

STARE App: A New Way to Test the Sense of Being Looked At

The STARE App is a web-based tool designed for Dr. Rupert Sheldrake to study the sense of being looked.

AI in Fintech

AI in fintech transforms customer experiences with personalized advice, security, and real-time support.

The ‘2024 Vision into the Future Conference’

Discover how we crafted a seamless digital experience for the 2024 Vision into the Future Conference, enhancing registration and engagement for 800 students.

SRE & DevOps: Striking the Perfect IT Match

What makes SRE and DevOps work well together.

What are the 5 Key Technologies in Fintech?

Five fintech technologies reshaping financial services.

Can AI Testing Think Like a Human?

AI testing is more than scripts and clicks — it’s about thinking like a human. Here’s how a new tool is helping testers spot bugs, save time, and go deeper.

AI FinTech
Deep Insights into Data Science and AI in FinTech

Technologies are reshaping traditional financial systems into more efficient frameworks.

The Exchange Tower, PO Box 427, 130 King Street West, Suite 1800, Toronto, Ontario M5X 1E3, Canada

[email protected]

+1 (647) 560-4412

Products & Services

  • AI Development & ML
  • Business Consulting
  • Complex Systems Integration
  • Custom Software Development
  • Data Governance Solutions
  • DevOps & Cloud Services
  • Infrastructure Monitoring & Support
  • MVP Development
  • QA Testing
  • Team Augmentation

Industries

  • Education
  • Financial Services
  • Healthcare
  • IT Services
  • Real Estate
  • Consulting
  • Non-Profit Sector
  • Wellness & Recreation
  • Insurance

Sections

  • Home
  • Blog
  • Industries
  • Services
  • Our work

© Synergo Group 2025

  • Terms of use
  • Privacy Policy