Skip to content

Instantly share code, notes, and snippets.

@vijayanant
Created September 14, 2017 09:09
Show Gist options
  • Save vijayanant/5e906b742d81f820f1dfb35704325b03 to your computer and use it in GitHub Desktop.
Save vijayanant/5e906b742d81f820f1dfb35704325b03 to your computer and use it in GitHub Desktop.
What makes our softwares complex?

What makes our softwares complex?

Some of the complexity in softwares are inherent in the problem domain, like complex rules of business. But others are just man-made.

State

A state is a collection of information held (at any time) by a part of the system that is accessible by other parts of the system. When different parts of the system can access and update program state, it becomes harder to coordinate between them and keep the system in a consistent state. This  makes system hard to understand, modify, extend and to test comprehensively.

Control Flow

Control flow determines the order in which things happen. Control flow in itself seems harmless, but coupled with handling state, things become tricky. Now you are not only worried about what the system does but also about the how.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment