DEV Community

Cover image for Do You Understand Why The Key To Controlling Complexity is Abstraction?

Posted on

Do You Understand Why The Key To Controlling Complexity is Abstraction?

Software Architecture Hour

I'm watching The Software Architecture Hour with Neal Ford with Guest Martin Fowler(on O'Reilly).

Key To Controlling Complexity

Fowler said a couple of very interesting things about abstraction that get to the root of OOP.

"...the key to controlling complexity in software is the ability to build abstractions for your particular circumstance and then be able to evolve those abstractions and use those abstractions to write & compose into better solutions."

He then said this about on Spreadsheets / Spreadsheet environments (like MS Excel)...

"one of the most successful programming environment...the most widely used programming environments that is out there is spreadsheets. For relatively simple tasks they can be very effective. But again, this inability to create your own abstractions... The fact that you all the time have to work at the level of rows & columns does end up getting in the way."

One-Off Solutions and Quick Solutions

Often, people who write one-off solutions or who see the solution too simplistically (from a higher level, like a manager) think you are wasting time Engineering or Designing a solution that works to solve a Class of Problems.

"If you can't build your own abstractions, you're not going to be able to tackle anything of serious complexity."

Next-Level Software Development

Understanding how to solve Classes of Problems so you can build one Solution that solves many problems is key to getting to the Next Level.

Top comments (0)