DEV Community

Michael Davis
Michael Davis

Posted on

The Case for Function Trees

A little intro...

I am currently enrolled in Flatiron School's Software Engineering bootcamp. At the time of posting this, my cohort is finishing up Phase 1 of the program (JS Basics) and preparing to enter Phase 2 (React Framework). In light of this, I think it's a great time to review some productivity tools!

Whether you are a beginner, jr., or sr. dev...

You've likely been involved in countless projects (software or otherwise) where there is a clear set of expected deliverables at the end of the project. You've also likely come across a myriad of different productivity tools to help build a roadmap for executing these deliverables. These tools might include:

  • Flow charts
  • Layout diagrams
  • Outlines
  • Word webs

In software engineering...

Visual and conceptual productivity tools come in handy at different times for different goals, tasks, and audiences. Therefore, it's very important to understand what tools are useful to you and your teammates, dependent on the circumstances. Knowledge of the strengths of each tool can yield huge improvements in operating efficiency by reducing the need for clarification.

As I mentioned in my intro...

I am entering Phase 2 of my coding bootcamp, which will cover the React Framework. From what I've been told, React engages a more conceptual approach to development, as opposed to the syntax- and fundamentals-heavy stages of learning the web development basics.
Though I'd never rule out the use of any of the aforementioned productivity tools, I have a feeling that I'll be using one other tool more often: THE FUNCTION TREE

Image description

According to Wikipedia...

"A function tree is a diagram showing the dependencies between the functions of a system. It breaks a problem (or its solution) down into simpler parts. When used in computer programming, a function tree visualizes which function calls another."

So, I could see this being a very useful tool for taking the list of deliverables, and:

  1. Conceptualizing the functions
  2. Figuring out the order of function declaration
  3. Mapping out the functions based on priority, scope, nesting, variable reassignment, etc.
  4. Be able to refer back to this and possibly rearrange the function tree or create multiple function trees to cover different branches of the project

...and do all of this in a way that is easily communicable across an entire project team. 10/10

In conclusion...

I'm looking forward to using this function tree visual tool as I learn React and beyond!

Sources(LOL):
https://en.wikipedia.org/wiki/Function_tree

Top comments (0)