Working (well-thought) software feels like magic when we use them, even when they do not magically build themselves out of nowhere.
To be a software tester means to see first-hand how software development actually happens, in real-time. They discover how programmers code what they can from concepts and (almost always) incomplete ideas, they catch themselves and their co-testers trying to cover all possible valuable test cases, they find user experience designers hampered down by client whims, and they learn how hard it is for product owners to figure out customer needs. Requests become examples that turn into a collection of links, copies, and buttons, which then grow into prototypes, then features, eventually complex products. The apps that we love in both mobile and desktop or in cars and toys gets built by people who enjoy creating digital stuff that help people do their work or have fun. Here, the software tester finds herself in the middle of an exciting adventure – on journeys to finding solutions to worthwhile problems. There are travels along the way – some smooth, some rough and bordering burnout, some really easy, others enormously difficult and sometimes doesn’t make much sense – and there are lots of stories that can be told. And always, the team tries to go forward on a sustainable pace even when there may be unforgiving deadlines, crappy customers, incorrect examples, heavy rains, failing servers, health problems, even personal irrational worries that’s just around the corner. There are ups and downs, and the software tester sees and knows that everyone in the team that’s actually building the feature from imagined descriptions is doing what’s possible in the moment, everything in their power to solve one problem at a time, day in day out, given the situation. There are successes and failures, and then working software goes live and becomes magic.
All because the people who made it together shared their magic.