Systems and Goals
For most developers, our days is composed of accomplishing individual tasks, which makes it very easy to get lost in those details and solely focus on what’s at hand rather than the direction in which accomplishing that takes us. Rather than focusing on each step or feature as an individual item to accomplish, I say that it’s best to reframe each of them instead as a small step in the right direction.
Don’t Lose Sight of the Forest for the Tree in Front of You
“Don’t lose sight of the forest for the trees” is a common saying. It means that you shouldn’t let what’s right in front of you make you forget the big picture. Letting individual tasks own your thoughts is great; it allows you to hyper focus, buckle down and quickly do what needs to be done. However, if that’s all you do, simply moving your hyperfocus from task to task as they’re accomplished, it gets very easy to lose track of why those tasks are being done, and can shut down critical thinking about if that task should be altered in any way, since you may just be checking boxes and blitzing through items.
Tasks (Goals) Should Be Malleable for Systems Thinkers
Why should an individual task be open to change? There are a few reasons, but the one I’ll dive into here regards momentum, and the mindset of “All or Nothing” which is very common among developers.
Anyone who really knows how I think knows that I highly value momentum, even to the point of changing my driving routes on the fly if I hit a red light and could instead take a right at the intersection and still move where I need to. Why is that? Sitting still can breed frustration and also takes up patience. Like everything else in life, patience is resouce; you’ve only got so much of it for any given time period. No need to waste it when it you could instead continue moving on.
Ask yourself, how does that relate to development?
The most common way I’ve seen that momentum and patience tie in to daily development is the concept of All or Nothing.
All or Nothing
This mindset is great when a few conditions are met:
- The “All” win condition is known
- “All” is technically achievable with your team’s given skillset
- “All” can be accomplished in a reasonable timeframe
However, when any of those are missing, going for All is a detriment and will be an outstanding instance of the Pareto Principle, aka the 80/20 rule. Much of the time, there will be some degree of one of those constraints, so the 80/20 rule will come into play. If you’ve got excellent team management, your feature pipeline will be worked out far in advance, time will be allocated and most or all of the implemenation details, acceptance criteria and potential pitfalls will have been discussed and planned for. What happens when something comes out of the blue though? Even for mission critical items, I say it’s best to quickly settle for “good enough” when it’s a last minute feature requirement. This is known as “stop the bleeding” when it’s a mission critical, high severity issue.
Much like agile development vs waterfall (another great example of systems vs goals), your focus should be on continually rolling out functional, complete items which have the best bang for your buck on time invested. This helps you build momentum which will always move you in the desired direction on your project.
Your Project’s Direction and Momentum Should be Your Focus
Whenever possible, focus on maintaining the momentum and direction of your progress.
For developers, the System is to continually move in the right direction.
Systems Yield Success
Goals also yield success, but typicaly at a much lower rate than systems. They also take longer and leave you lost when the goal is finished. Since moving to thinking in terms of systems rather than goals, my productivity, income, success and satisfaction with life have all skyrocketed. It could just be coincidence, but observing how other successful people and organizations operate makes it clear to me that systems are the way to go.
If you enjoy having free time and the peace of mind that a professional is on your side, then you’d love to have me work on your project.