One of the great things about the world of software development right now is the growing acceptance that you know more about something after you've started working on it, and understanding that you know the very least at the beginning of your project. This means less time spent up front trying to figure out every little detail, getting to work, and iterating as required.
This is a great approach and I've seen first hand how effective developing in this manner can be. The first version of GoFind! was designed and built in just under 6 weeks. We then released small updates about once a week for another four weeks. I kid around with my brother who works at a large insurance company that we probably built a product in less time than it would take them just to get a job requisition approved.
There's a significant distinction though that I don't feel like I hear many people talking about. Just because you aren't planning for everything far out in the future, doesn't mean you shouldn't be thinking about the future.
You still want to be aware of the direction you're heading.
Maybe you're a small company that wants to stay true to your core values, remain quick, and always be flexible. Because of this the actions you take today are done with the understanding of how you want your company to be in the future. You may not be planning for two years from now, but you're aware of how the decisions you make today will affect your overall goals. To me, this is long term thinking.
Let's take another, but this time more fun, example. You're leaving Chicago on a road trip out to Yosemite National Park in California. Instead of planning every detail of your trip though, you just decide that you'll stay at a hotel when it makes sense, camp where you can, eat when you feel like it, do some sightseeing along the way, and you're just going to take it easy. Awesome.
Here's the thing; this whole time you're still aware that you want to actually get to Yosemite. If during the course of your leisurely approach to getting there you find yourself heading Northeast for a couple hundred miles, it's probably a good idea to ask yourself if you still want to make it to California. Regardless of your answer, as long as you asked yourself that question, you just engaged in long term thinking.
In your world, this might mean understanding that separate systems are going to eventually need to communicate with each other in order to be effective. It might mean choosing WordPress for your client over building a website from scratch because you know they're going to want to maintain everything themselves. In another situation it might mean hiring a developer based not only on their proficiency in one programming language, but also the likelihood that they'll be able to learn another one.
As we spend less time planning for tomorrow, I believe we need to spend a little more time understanding how our actions today are going to affect us in the future.
If you're planning less, that's great. Just start thinking more as well.
This is a great approach and I've seen first hand how effective developing in this manner can be. The first version of GoFind! was designed and built in just under 6 weeks. We then released small updates about once a week for another four weeks. I kid around with my brother who works at a large insurance company that we probably built a product in less time than it would take them just to get a job requisition approved.
There's a significant distinction though that I don't feel like I hear many people talking about. Just because you aren't planning for everything far out in the future, doesn't mean you shouldn't be thinking about the future.
You still want to be aware of the direction you're heading.
Maybe you're a small company that wants to stay true to your core values, remain quick, and always be flexible. Because of this the actions you take today are done with the understanding of how you want your company to be in the future. You may not be planning for two years from now, but you're aware of how the decisions you make today will affect your overall goals. To me, this is long term thinking.
Let's take another, but this time more fun, example. You're leaving Chicago on a road trip out to Yosemite National Park in California. Instead of planning every detail of your trip though, you just decide that you'll stay at a hotel when it makes sense, camp where you can, eat when you feel like it, do some sightseeing along the way, and you're just going to take it easy. Awesome.
Here's the thing; this whole time you're still aware that you want to actually get to Yosemite. If during the course of your leisurely approach to getting there you find yourself heading Northeast for a couple hundred miles, it's probably a good idea to ask yourself if you still want to make it to California. Regardless of your answer, as long as you asked yourself that question, you just engaged in long term thinking.
In your world, this might mean understanding that separate systems are going to eventually need to communicate with each other in order to be effective. It might mean choosing WordPress for your client over building a website from scratch because you know they're going to want to maintain everything themselves. In another situation it might mean hiring a developer based not only on their proficiency in one programming language, but also the likelihood that they'll be able to learn another one.
As we spend less time planning for tomorrow, I believe we need to spend a little more time understanding how our actions today are going to affect us in the future.
If you're planning less, that's great. Just start thinking more as well.