No matter what sport I have been involved with during the (almost) 36 years of my existence, I had a coach. No matter how good I thought I became at any given sport, my coaches could see areas that could use improvement, from the outside looking in, that I could not see for myself. In baseball, one of my batting coaches once noticed I was dropping my back elbow just a fraction of an inch, just before my swing, which resulted in loss of power. I had a mountain bike coach notice I was running too much pressure in my tires, which reduced traction in sharp turns. Even in the weight room, strength coaches pushed me out of my comfort zone, got me to try new exercises, therefore avoiding muscle memory and plateaus, increasing overall strength, and helped me to create a more well-rounded regimen.
My (competitive) athletic days are long gone, and my growing belly is there to prove it. I still am an avid mountain biker, but these days are stuffed with the "day-to-day", working with Software Development Teams, business partners, external clients, and overall “career stuff”. Still, the lessons I learned from coaches on how to change things up, how to get out of my comfort zone, how to learn something new, implement those changes, and increase skill-level, still apply in my world today; supplying custom software development for our clients.
Development Teams can be plateaued by “Muscle Memory” too. Legacy Systems, the same old technologies, and continuous projects that fall in the same domain can prevent growth. Many enterprises have Application Development experts, but they are only experts in the systems that are in their building, and that expertise can lead to skill atrophy. Just like our own bodily mechanics, sometimes it may behoove the team to shake things up a bit, get out of one’s comfort zone, and learn something new.
There are mixed feelings on outsourcing Applications Development work to third-party, external companies, but there is also much value to be added by partnering with a Firm. We are extremely (and Clearly) Agile, and utilize Paired Programming. We typically design cross-functional pairs, placing iOS experts with C#/API folks, Backend Database gurus with Android Developers, and Architects with UI Design masters. We have seen an increase in programming efficiency, higher quality code, and overall increase in the team’s strength. Aside from the skill advancement side, there is enhanced morale/”warm and fuzzies” from shaking things up a bit, creating excitement, and boosting team engagement. We also believe that this environment harnesses the spirit of mentorship, and everyone in return grows from it.
"Collaborative pairs achieve a higher quality level for programming products. Pairs had 15% less defects in their code. The higher quality level is statistically significant."
Laurie Williams, Ph.D. - Associate Department Head, North Carolina State University
Clearly Agile has also gotten creative in pairing with our customer’s internal Developers, inviting them to come hang out with our team, in our offices, and do some coding. This gives the Developer a change of scenery, breaks up the monotony of what they have known for years’ prior, giving them an opportunity to see how an Agile company slices and dices their Requirements/User Stories, delivering exceptional applications in an iterative manner. Our customer’s Developers typically walk away having learned some new technologies as well, so it is a win-win from any angle.
Hiring an external App Dev Firm is not a solution for every single scenario, but if there is not enough personnel bandwidth to get to some of those important projects, a gap in technology skillsets on your team, or if your organization is in the process of an Agile Transformation, there is positivity from getting some fresh faces/extra muscle in your shop, and increasing the overall strength of your teams. These were just a few of my thoughts, and the good news is; my 2 cents are free.