One of the wonderful things about being a technologist today, is to be part of an industry that is bubbling over with new and exciting things. It can be exhilarating and overwhelming. How can we try and do all these great new things? Of course, it is not sensible to simply drop whatever you are using and continually chase after the newest tech. Nor is steadfastly staying in one place and refusing to accept that there is a better way of doing things. The challenge is to absorb, identify, and synthesize both good of the what we are currently doing and the new stuff too. We want to embrace and continue the good things that are working for us and reach for the new technologies that will propel us farther in the future.
Since everyone has their own experience synthesizing the world around them, there are many differing opinions on what we should continue to embrace and what we technologies and practices should reach for. I humbly offer my thoughts on this based from my own perspective.
Embrace: Agile Feedback
Reach for: Lean Startup Discipline and Programmer Anarchy
Agile has become a victim of its own success. Becoming so big, its message has been confused and abused in too many ways to name. But the core pillar of frequent and continuous feedback is a foundation to any successful software project and should be embraced. However, we should not stop there. We should reach for the rewards that Lean Startup Methodology offers in the form of displinced validation. We should also reach to unleash the innovation of our smart developers with Programmer Anarchy, and look for ways to ruthlessly stomp out unnecessary and wasteful project management practices.
Embrace: Ruby’s Community
Reach for: Clojure, Go, Elixir, and Meteor
Ruby and Rails have been an incredible game changer for web development. But they too are suffering from their own success. One of the strengths of Ruby, which should be embraced and nutured, is the strength of the community and the openness to newcomers. This strength yields a fruitful ground for a vibrant library ecosystem, which has helped Ruby flourish. We need to reach beyond Ruby and Rails to other languages and frameworks that focus on simplicity and concurrency. The bright future will belong to the likes of Clojure, Go, Elixir, and Meteor. We need to reach and start using these in the products we build, while encouraging the growth of a welcoming community and ecosystem like the one we have in Ruby.
Reach for: the Distributed and Decentralized
Collaboration with tools like Google Docs works. We should continue to embrace the power that this gives us. However we should embrace tools for combining this collaboration in a truly distributed and decentralized manner. Git itself is wonderful and distributed, but we should reach for tools like Github to be more decentralized and resilient. As privacy concerns grow in today’s world. We need to reach beyond the convenience that a centralized source of information gives us and truly understand the trade offs involved.
We live in an incredible, vibrant time. Look around and what you do everyday. Embrace and nurture all the good parts, and never give up reaching for something better.