January is a time in which we reflect and resolve to do things differently in the new year. We spend time planning how we will improve ourselves physically, mentally, and professionally, as well as the lives of those around us. You know what they say about plans, right? There’s no difference in the practice of software development and testing.
A few years back, Time published a list of the most commonly broken New Year’s resolutions and boy, does it read like a document of my own failed plans. I decided to take some of these themes and turn them into successes when it comes to software testing and development. Here is what I found.
1. Lose Weight and Get Fit
This has to be the most frequent resolution by a factor of 10, but have hope; it will be one of the best to enact in testing!
A couple years ago, I was working with a global financial company on improving their development processes and toolchain. During that work, we uncovered that they had three separate individuals running the same four-day batch process in serial without the slightest idea of why they were doing it. After some (brief) discussion, they realized this was a major area of improvement (I know, right?).
Just because “it’s the way it has always been” doesn’t mean it has to remain that way. Spend some time and look at your end-to-end development process with representatives from each area to pinpoint where you can impact the most amount of people per project, not just the loudest ones. By getting your process trimmed down, you have a better chance at getting your software fit.
2. Learn Something New
I genuinely try to end each year with a new category of knowledge to help me grow personally (as a homebuyer in 2016, it was the year of home automation solutions; just ask me!). I believe learning is a muscle and must be exercised continuously to avoid atrophy.
Take some time this year and learn more about your craft:
- Take product training, like Jenkins, JMeter, or CA Service Virtualization.
- Attend some trade shows, such as StarWest, StarEast, DevOps Summit, or CA World.
- Get an industry certification through ISTBQ or SAFe.
- Sign up for a podcast like the Continuous Delivery Podcast, The Agile Revolution, or Testing in the Pub.
With your new knowledge, you will feel enabled and more confident while renewing your excitement for your role. More on what you can do with this new knowledge later.
3. Eat Healthier and Diet
Oh, boy. With life on the road, I generally have about 200 opportunities a day to break this one. Fear not. The principle here is quite simple: Garbage in, Garbage out.
The best way to eat better is to plan ahead. I have a peer who is amazing at bringing just about everything she needs with her (in the way of food) on the road just in case she is in a situation where the best option isn’t available. Planning in your SDLC is your first opportunity to make sure that you will have healthy code as an output.
My friend Alex Martins recently posted an incredible article about how ambiguous requirements doomed the Death Star. By having clearly defined requirements that are documented in a more agile, graphical manner (similar to Visio, but smarter), you can ensure that you have complete requirements coverage, complete buy-in from all stakeholders, and a complete test plan for the entire SDLC. The output of all this agile planning is a healthy application that is fit for your users!
4. Get Out of Debt and Save Money
This one can really create a lot of stress in people’s lives. It is also one that sees impact in small changes that build up over time, making it a great candidate for testing resolution.
Over the years, applications have naturally amassed technical debt as it has grown, which adds exceptional cost to the development process. Commit to getting out of that technical debt slowly over time. I often recommend allowing time in your sprint or iteration to fix bugs and clean up code ensuring that you make this work, and the debt, visible. Just because you are in debt doesn’t make you a debtor, and that is why visibility is key. These little fixes will have a parabolic effect on the improvement of the application.
5. Spend More Time With Family
I know you all only work eight hours a day and get home in time to have dinner every night with your family and loved ones, right? You enjoy the weekends away from the office doing the things you are passionate about and don’t ever think about work unless you are actually there (that’s a given, of course). Then, sadly, you wake up from this dream during your four hours of sleep after spending the weekend with 25 of your coworkers on a Saturday for 17 hours of manually releasing the latest version of your business critical application. I know, I know, I get it. This is one I am very passionate about.
Test and release automation is the key to doing more, faster, and with fewer resources. Check out what my friend Silvia Prickel at United Airlines posted about their journey to continuous delivery through automation (just don’t poach her great people!). Automation is cumulative. Spend time to automate anything. Even if it saves five minutes a day, that 25 minutes a week can be used to automate the next thing, and so on, and so on. It has a cumulative effect that requires a different mindset but delivers you time back in spades. That way, I get to see you on a course some weekend this year (I’ll be the guy fishing my golf ball out of a bird’s nest in the trees).
6. Be Less Stressed
I'm not stressed, what do you mean?! Sure. I actually think that failing on this one has a cascading effect on being able to succeed on the others. We really don’t think about how stress impacts our lives and especially those around us. We are expected to be superheroes 100% of the time (being able to fly is fun, but the laundry bill is insane!), but never get enough time to recover from our Herculean efforts.
Stress testing the application is the same way. The traditional time to stress test performance test an application is to wait until the last moment possible, just before going into production so you have the “most real” version of your release. Plus, because development is generally behind, performance testing gets pinched and becomes less significant and impactful. This creates more stress on the people and less stress on the system under test. Modern tools like BlazeMeter and Service Virtualization provide a means to be able to move performance testing to the unit level and distribute that “stress” throughout the development process rather than stacking it at the end. The result is a better functioning application that is prepared to be a superhero.
What a novel concept: Give back to the community that has given you so much. Unfortunately, life and work (see above on automation) get in the way far too often.
Since you already took the time to learn something new, now is the time to share that learning with others to cement this new knowledge. The best way to do this is through local meetup groups that focus on your areas of expertise or passion and meet regularly to exchange ideas. DevOps meetups, Continuous Delivery Groups, Agile Development Communities, and Communities of Practice are available in just about every city if you look around. Most organizations will react positively to you attending these sessions if you are upfront about your desires.
8. Drink Less
This certainly reminds me that some of my colleagues must have failed the resolution when they published a video highlighting the reasons to upgrade to the latest releases of CA development and testing solutions (some things you can’t un-see, Scott). Well, I suppose there are just some resolutions that are meant to be broken. Of course, maybe if you get a few of these other resolutions going it won’t be so bad.
As a DevOps Advisor assigned to some of the largest software development shops in North America, I am constantly looking for ways to help my clients adapt to change and improve the quality of their lives and code. I hope this very real impression of my personality helps to provide some insight for you to find more happiness and fulfillment (and better code) in 2017. Let’s remove all the excuses in front of us to make this year even better than the last (who could take another Harambe, anyway?).