Constructive Constraints

How can constraints be constructive? Constraints are usually seen as things which hold one back. They’re perceived as inherently negative things which only prevent accomplishments and success. We’ve all heard complaints like “I don’t have time” or “I need more resources”. What if constraints weren’t all bad?

Some constraints really are bad and hold you back, but many can be more empowering than restricting. It’s really a matter of perspective: if you perceive a situation to be negative, you’ll probably find a way to make it negative. With a small change in view point, “I don’t have time” becomes “How can I be more efficient and do more with my time?” and “I need more resources” becomes “How can I do more with less? What must stay and what can change?”.

Rewording the issue to view a constraint as a challenge can change your attitude towards it. We’ll always have limited time and resources, those constraints will never disappear. Being negative about such pervasive constraints won’t change them, so why should they be negative? Turn those problems into assets.

Now you might be asking, “how can a problem possibly be an asset?”. In a 1986 talk, mathematician Richard Hamming mentioned that some of the best work that came out of Bell Laboratories was done when the work environment was well below ideal. Innovation was driven not only by thoughts and ideas, but also by the needs of the researchers working there. The limitations of their work environment didn’t stop them from doing great work. They took what they had and did as much as possible with it. A lack of resources didn’t create an inability to work, it spurred innovation to do more with less.

Understanding your problems is the key to turning them into assets. Ask questions about the problem. Try to see it from different perspectives. Why is this a problem? What can I change about it? Why is this problem bad and how can it possibly be good? Once you understand your problems you can begin to change your perception of them. When a problem is seen as more of a benefit than a detriment it is no longer a problem, it’s an asset.

Let’s look into some common examples. These problems will never go away, so how can they be made positive?

“I don’t have time”

The first question to ask might be, “Is this really important enough to spend my time on?”. If the answer is yes for any reason, but you still don’t have enough time, start to dig into the cause of the so-called problem. How are you using your time right now? If it is for the most part being used wisely, identify the slowest or least productive tasks. How can they be improved? Can that work be automated or delegated? Do they really need to be done at all? Your available time can increase dramatically if you constantly try to find ways to improve your methods.

“I don’t have enough resources”

This question is more difficult because it can certainly be true in many areas. You can’t make bread without flour, for example. But do you really need every resource you think you need? Look at each element and identify exactly why it’s needed. What is its purpose? Can anything else adequately replace this resource? How can the requirement be reduced in size? Resources are limited, that will always be true, but there are many areas where resource requirements can be decreased.

As I mentioned, the above problems are often artificial. However, there are times when the problems really are problems. There’s no getting around the fact that you currently can’t write a novel in an hour or build a house in a day. When these problems are artificial, there are many ways to make the problem work for you instead of against you. When the problems truly are impediments to your progress it might seem impossible to turn them into assets. In that case, I still think you can to find a way to make them constructive. Necessity is the mother of invention.


Planning And Doing

When should you stop planning and start working? In some projects I was ensnared by analysis paralysis and never got past the planning stage. In others I started writing code far too early and ended up redesigning the project several times. Both cases are obviously not productive and waste a lot of time.

I have been thinking about my process and why I get stuck so often. My fear of not starting seems to be greater than my fear of not finishing. I would often spend an hour or two thinking about how amazing the finished product would be and then jump into the code. Writing code must be more productive than designing code, right?

Being too eager to start working can be just as destructive and counter productive as over-planning. Without a solid plan the project is like a building without a foundation, it’ll sink into the mud when you start construction. Starting with a very detailed and rigid plan will produce a project like a house of cards; it’ll collapse under it’s own weight with the slightest disturbance. The process I’m describing tries to avoid the problems of both extremes by creating a solid plan and reevaluating it after each stage in development. It all starts with a good plan.

Continue reading


TaskWarrior is a fantastic cli todo-list manager. I usually tend to use minimalistic tools, but sometimes the best option is one that has every feature you could possibly need. Setting due dates, priorities, adding notes and a ton of other task-related things are simple once you know the syntax.

You probably won’t use every feature in the tool every day, but it’s easy enough to type “task help” and find what you need. There are a lot of ways to filter the commands and get exactly what you want from each command. Analyzing your progress on different projects or just your progress in general is easy with TaskWarrior’s analytical options.

Continue reading

Setting Goals

The road to success is paved with goals. If you want to achieve anything you already have goals, but are they contributing to your success? Setting good goals is a great way to make sure you’re on the right track. They help you organize your thoughts and break them down into achievable actions.

Goals have three levels of complexity: long-term, intermediate and small. There should be a natural progression from one level of complexity to the next until you reach that main long-term goal.

Continue reading