DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. Here We Go Again: Mistakes in the World of IT

Here We Go Again: Mistakes in the World of IT

John Vester explains how some avoidable mistakes that have happened in the history of software and IT are still happening today.

John Vester user avatar by
John Vester
CORE ·
Nov. 05, 16 · Opinion
Like (2)
Save
Tweet
Share
2.62K Views

Join the DZone community and get the full member experience.

Join For Free

Spanish-American philosopher George Santayana was quoted as saying, "those who cannot remember the past are condemned to repeat it." Santayana's conclusion provides a great deal of merit. One could, therefore, express that "those who know or understand the past are not likely to repeat it." Right?

Personally, I would agree with the secondary expression, but only if a small disclaimer that says, "unless you are working in information technology" is added.

The Scenario

Within the last 12 months, an Agile team that I am familiar with worked on a solution that was replacing an existing application. The legacy application already had a database, but the team was set on using a new database with the application, moving from one database provider to another.

Since the team was Agile in their approach, they would be introducing a set of features within each sprint cycle. In the meantime, end-users would use functionality from the old application in cases where the new functionality did not exist yet.

The team decided that they would use a middleware product to keep the old application in sync with the new application. Then, when they finally reached the point where the legacy application was no longer needed, they would stop the sync process and retire the legacy application.

The Result

What may have sounded good in a project room or looked great on a whiteboard, turned out to be an unfavorable situation when the middleware solution attempted to keep the two applications "in sync" with each other. The process of keeping two databases in sync with each other turned out to be far more difficult than they expected.

In hindsight, the team realized that use of Data Transfer Objects (DTO) could have been created in the new application, which represented the target state, while still utilizing the legacy database via a translation at the model layer. Taking this approach would have kept the data in one location. Then, a future Sprint could be focused on migrating to the intended database provider and schema.

The Lesson Not Learned

Fast forward from that situation to earlier this year and a similar example could be found. The background is nearly the same: a team is planning to replace an existing application. They are going to deliver results via an Agile approach, providing new features and relying on the legacy application for items that haven't been addressed yet.

The team also wants to utilize a new database (again with a different provider) and plans to implement a middleware process to keep the two applications in sync with each other. Sound familiar?

Upon hearing this information, one of the team members from the original scenario spent time with the development team, sharing the history and challenges that were faced. This individual, who is a well-respected architect-type person, conveyed the lessons learned and thoughts on how the approach should be modified based upon the prior results.

In the end, the team decided to stick with their original plan, which has a very good chance of falling into the same pitfalls that were encountered during the prior instance. The efforts to avoid a similar situation failed.

Conclusion

I joked in the intro that I would believe the idea of "those who know or understand the past are not likely to repeat it" is probably true everywhere except in the world of technology. Unfortunately, I believe this situation is far more wide-spread than just the world of Information Technology. I am not sure if this inability to learn from our mistakes is intentional or if those driving initiatives just don't believe the same results will occur.

Courses on history in my primary and advanced educational programs were never a favorite of mine. Yet, I have undoubtedly seen the value of understanding historical aspects within my career in Information Technology. Perhaps, if there would have been a history course focused on mistakes within Information Technology, I would have gained a better of appreciation back in those days.

IT application agile

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Important Data Structures and Algorithms for Data Engineers
  • 5 Common Firewall Misconfigurations and How to Address Them
  • The Beauty of Java Optional and Either
  • DevOps for Developers — Introduction and Version Control

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: