Josh Bavari's Thoughts

Thoughts on technology and philosophy

Its Not the Tools - Its You

about a 3 minute read

Reminder – you write the code, not the tools

Duh, right?

There’s a lot of debate I see about people saying you have to use a certain language or tool to write good software or create apps. This is simply not the fact.

Case and point – if you write an app in iOS and it works great, the user simply does not care if it was written in Objective-C, PhoneGap, or some other hybrid tool. (NOTE: unless the user is a troll)

I personally do a lot of work lately with Cordova/PhoneGap. I actively contribute to Cordova as well. When I hear purists come down on the technology, I really wonder why.

Certainly, there can be some bad apps created with it. The same can be said for Objective-C! Whatever the tool/language is, it can always be used in the wrong or inefficient way.

The truth is, there are some awesome technologies coming out from all kinds of directions. What makes the tech better? The tools/languages/software used, or the overall look/feel/usage?

Why am I writing this?

Lately, I’ve been trying to grow as a developer and really fine tune my craft. I’m writing this to remind myself & hopefully remind others, any products/apps we make are only as good as we can make them. NOT the tools we use to make them. (NOTE: sometimes a tool can improve performance, or some other aspect, but its still up to you to learn and adapt)

If your app/product sucks, its your fault

That’s right – true responsibility.

Think about this – these days developers can make awesome, usable softare with only a text editor and some command line tools.

Now, given some additional IDEs, SDKs, Frameworks, ETC., the same developer could make more software, generally quicker. Was it the tools that made the finalized product awesome?

That being said, if you are using a tool/system/framework, and it truly does suck – guess what? You are free to change it!

The weakness is you

What makes someone great at anything is when they know what they are weak at and actively improve on those weaknesses.

One thing I wanted to focus fire this year was hitting my weak points.

It’s always difficult to take a true honest look at yourself and evaluate what actions you should take. However, if you really want to improve and get ahead, there’s no other way.

Some of my weaknesses

  • Writing tests for my code & taking a TDD approach
  • Actively testing my product (thoroughly)
  • Reading and keeping up to date with knowledge (blogs/books/etc)
  • Communicating and expressing my ideas

What I’m trying

  • Expecting small improvements.
  • Iterate quickly.
  • Evaluate often.
  • Always be learning.

What I’m doing

  • Starting to write tests for older code & refactoring when needed, especially in Javascript & Ruby
  • Getting together active test runners for iOS, Android, and the Web (CasperJS).
  • Evaluating weekly my tests I’m writing – Using Code climate to evaluate the quality/complexity of our code
  • Looking at other open source projects and how they write tests
  • Reading some BDD/TDD books to learn

The big picture

Next time you are getting frustrated with your tools, programming language, etc – remember, it’s up to you to improve it, or improve yourself. Cheers.