Why Test Driven Development saves time and money

Often times developers insist that writing code first is the quickest way to get your product launched. For the most part this is a fallacy. Test Driven Development may result in slower ramp up, but that really means more investment in well designed and well structured code. Carpenters call this “measure twice and cut once.” Many developers go with the “measure, cut, measure, cut, measure, cut, glue, measure, get a new piece of wood” approach. Using a testing framework like Jasmine will reduce the overall costs (time and money) and improve the overall product.

TDD is also a great learning tool for newer developers. It helps encourage code reusability and encourages better design by reducing the reliance on monolithically giant functions/methods.

There’s a great write up I just came across that details several more benefits and explains how it improves the quality of the product while simultaneously reducing the overall time to market.

http://blog.codosaur.us/2013/07/is-tdd-worth-it.html

Antifragmentation

You all know how vocal I am about the fundamental flaw in the Android platform — the fragmentation.  No matter what Google tries to do, they cannot convince their hardware manufacturers to provide release support for anything but the shiniest newest devices.  I don’t fault the manufacturers because financially speaking, it would be a bad business decision for them to invest developers’ time and efforts into backporting the newest “dessert” to their older devices. Google has created an environment where equipment manufactures are responsible for functionality merges of enormous proportions.  Any developer will tell you that merging code is a costly and often buggy process.

fremium-model

At its heart, Google is a giant ad agency trying to get as many eyeballs looking at their ads as possible.  Google can’t enforce the OS upgrades so Google’s product (what some folks call “customers” — see cartoon at right; if you’re not paying for it, you are the product not the customer) is forced to suffer because they can’t upgrade and obtain the latest and greatest features or important bug and security fixes.  And don’t forget, chances are good that you know someone with an Android phone, so your personal information on their device is in the mix as well.

Developers suffer because they need to support such an insurmountable fragmented ecosystem. For many small businesses, Android development is prohibitively expensive with little financial reward.

That’s why I was so excited to come across a plan that finally articles how Google it intends to rectify this fatal flaw with the too open mobile device platform. Do they need to virtually abandon the open-ness which they so vocally claim was superior?  Yes — at least a little bit.  Is this a bad thing? NO!  Without a unifying vision and cohesive experience, manufactures, “customers” and developers are all made to suffer and you end up with the lowest possible denominator every time.  By centralizing control of the critical aspects and drastically reducing the complexity of what must be rolled out, they might actually be able to turn the fragmentation issue around.  Unfortunately it’ll take a couple of years to ripple through the ecosystem as all the lion’s share of today’s non-upgradeable devices need to slowly be retired through damage or upgrades.  It’s an exciting start to say the least, and who knows, eventually I might even need to add an Android category to this blog…

http://arstechnica.com/gadgets/2013/09/balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/

…oh and hey, what’s that?  Microsoft bought Nokia to also gain tighter control of hardware and software integration? Gee there might be something to that after all.

 

WordCamp LA – 2013

For anyone in the greater Los Angeles Metro area, I’ll be presenting concepts on working with WordPress in the enterprise at WordCamp LA 2013.  If you’re not familiar with WordCamp, it’s a conference where developers, designers, content producers and business folks all gather to discuss concepts, strategy and implementation approaches for WordPress. It caters to users of all skill levels and runs 2 days.  Tickets are available from the site.

 

 

Disney Infinity – Teaching software development in a game

Sorcerer Mickey - Disney Infinity

As you might imagine, I’m pretty excited about Disney Infinity — especially after receiving a Sorcerer Mickey figure at the D23 Expo this weekend!  I wasn’t really sure what to expect from the Toy Box mode, but after watching a couple videos, it really feels like this game is teaching kids to write software.  The Button and Repeater objects strongly remind me of registering event listeners and then handling the trigger.  I also see iterative loops and counters built into this simple example.  In the years ahead, I think that software development will be integrated at some level into grade school or at the very least, a life skill class in High School, like wood-shop or auto-shop.  Geek-shop perhaps?

Check out the video below and see if you agree…