GEN 23, 2024
Caring for a IT Systems like a Tamagotchi
Architecture and Technology Director
Software Developer
Reading time: 2 min
OWINTALK | BEHIND BUSINESS, BEYOND NEWS
The Tamagotchi – a small digital pet from Japan – took the world by storm in 1996. This handheld game challenged players to care for a virtual alien pet through its lifecycle, from egg to adulthood. What did the Tamagotchi teach us? It underscored that anything thrives when cared for attentively and decays in neglect. And isn’t that true for IT systems as well?
The Lifecycle of a System
Just like a Tamagotchi, every IT system resembles an “alien” idea born on a whiteboard or a document, evolving through distinct stages of its lifecycle. Unusual metaphor yes, but the story may go like this:
In the beginning, there is the egg – the design phase, where the system is conceived. Here, its foundations are laid, and its potential is imagined. The puppy stage follows, where the system is built. It requires constant attention and depends on the team’s dedication to create something functional. Next, the system comes of age – it is deployed, begins interacting with the world, and settles into operation. But change is inevitable: systems must adapt to new environments, integrate with other systems, and evolve to meet emerging needs. This is where recurring cycles of adaptation and maintenance ensure ongoing health. And finally, the system retires.
Throughout this lifecycle, poor care at any stage can lead to system struggles. Neglected design choices ripple into development and operation, while deferred decisions lead to technical debt that’s increasingly difficult to address. Every choice we make – or fail to make – impacts the system’s ability to thrive, and eventually its health.
But what does a “Healthy” System really mean?
We often define system health by its immediate, visible qualities – attributes that sit “above the surface.” For developers, this typically includes correctness, stability, and maintainability. But if we delve deeper, system health also encompasses performance, operability, security, resiliency, even cost-effectiveness – factors that become especially critical in regulated industries like ours.
Although different “caretakers” – Devs and Ops – may have different viewpoints about where “health” stands, when we examine common challenges, recurring patterns emerge:
- Knowledge gaps or loss of critical information
- Implicit knowledge trapped in individual silos
- Resistance to change or difficulty in managing it
- Unclear or inconsistent performance metrics
Too often, these issues result in a blame game, with Devs and Ops bouncing problems back and forth, potentially leading to inefficiencies and even system failure.
Breaking the Dev vs. Ops Divide
Along its lifecycle Devs and Ops have a different interaction with the system. Developers’ involvement is intense during the early phases but diminishes as the system transitions to production. Conversely, infrastructure and operations teams become increasingly engaged as the system approaches go-live and enters the run phase. While this division of focus helps manage cognitive load, it also reinforces silos and misunderstandings, perpetuating a “separation of duties” mindset common in many IT organizations.
Modern IT demands more. Technological drivers like cloud computing, mobile platforms, big data, and edge computing, combined with the architectural demands of distributed, real-time, always-on systems with perimeter-less security, have reshaped the landscape. Strategic imperatives – digitalization, automation, complexity, and sustainability – add even greater urgency.
To address these challenges, the traditional dichotomy between the Software Development Lifecycle (SDLC) and IT Service Management (ITSM) needs to evolve towards a system-centric perspective, prioritising Quality as a unifying principle.
Drawing from INNOQ’s “Quality 42” model, eight key determinants define whether a system can consistently meet its stakeholders’ expectations over time. A system must be:
- Reliable
- Flexible
- Efficient
- Usable
- Operable
- Suitable
- Secure
- Safe
These factors are essential, but quality doesn’t exist in a vacuum, and system health is about more than just technology. It is intrinsically connected to how we function as an organization—our culture, skills, and practices. Much like a pet thrives or struggles based on its owner’s routines and environment, systems depend on the ecosystem of people and processes that surround them.
- Organization: How we operate—the structures, hierarchies, and workflows that enable (or hinder) collaboration.
- Culture: The shared beliefs and attitudes that guide behaviour and decision-making.
- Skills: The depth and breadth of competencies within teams.
- Practices: The processes and routines that govern how we build, test, and run the system.
As we dissolve the traditional boundaries between Development and Operations we must do so across all dimensions: operational, cultural, and organizational. This requires adopting a cooperation model – the ‘promised land’ where Dev and Ops teams collaborate seamlessly to ensure system health and adaptability.
This model transforms how work is approached throughout the system’s lifecycle, creating an ecosystem where knowledge and responsibility are shared, behind-closed-doors decisions are replaced by open communication, upstream-downstream friction is reduced, and teams share a common view of the system’s full lifecycle.
Putting Principles into Practice
At Codemotion 2024, we showcased how we care for IT systems through a demo led by one of our youngest developers. A pet project was created with a focus on flexibility, security, and performance. Alessandro shared a step-by-step account of the project, highlighting his technical decisions and methodological approach to balancing quality and innovation. Reflecting on the experience, Alessandro said:
“When Michele proposed me to join him at Codemotion, I immediately saw it as an opportunity to I saw it as a thrilling opportunity to challenge myself and grow. Collaborating on this project not only introduced me to exciting technologies but also reinforced a methodology I strongly believe in. The preparation behind our presentation was intense yet rewarding. It wasn’t just about crafting a polished demo; it was about sparking meaningful conversations and refining ideas through collaboration and refining ideas through collaboration. Seeing over 200 attendees actively engaged with our session and representing my company at Codemotion was a truly inspiring experience”.