Gearing up for CodeCamp

As CodeCamp 2018 is drawing near, I keep perusing my notes and wondering about the upcoming talks. Becoming CodeCamper for a day was such a rewarding experience last year, especially since it gave me a sense of belonging and allowed me to get together with fellow enthusiasts. #ByTheCommunityForTheCommunity is the shared vision that prompted the Testing Camp and the CodeCamp to partner up in the first place. Since April 2016 (Iasi) and May 2016 (Cluj), this partnership has brought together Content Owners as well as Participants from various IT fields, some of which have later on delivered presentations or workshops at the Testing Camp Meetups.

I’ve been switching between the Tester and Developer hats for a while now, which is all the more reason to look forward to the next gathering, with its cross-disciplinary approach. But for now, I’d like to give you an overview of what I took from the previous edition.

When I registered for the 2017 edition of CodeCamp in Timisoara (our first one), I struggled with a different kind of “knapsack problem”. Choosing between 8 parallel tracks and more than 50 speakers was no easy endeavor. Packing them in one day either. Especially since the Testing Camp had been allotted an entire track on the agenda. However, once I had settled on my conference line-up, I simply couldn’t wait to get there and learn the ropes of new testing, marketing and development-related topics.

Just read on for snippets from my Camping Log.

colaj
  1. Why do Projects Fail?

I first pitched camp at Track 5 and attended a presentation delivered by Andreea Bozesan and Andrei Panu from Softvision. It focused on reasons why projects may start off on the wrong foot or simply face hurdles along the way, which prevent them from achieving their milestones or trigger failure altogether. I found the speakers’ approach highly useful, because it provided examples for all stages of the Product Life Cycle. Instead of mere theoretical scenarios, these examples illustrated actual challenges from real-life projects, such as:

  • skipping the feasibility study
  • budgeting little time for software architecture and QA
  • scope creep
  • poor managing of remote teams and/or cultural differences
  • insufficient project tracking

(to name but a few of the situations brought to the table).

If I were to find some common ground between all these examples, I’d say that, more often than not, it all boils down to (lack of) communication. Among the takeaways suggested for preventing project failure, I jotted down the following:

  • management and stakeholder support
  • clear vision & realistic objectives
  • clear and optimized scope
  • formal methodology in place
  • skilled and motivated team
  • proper testing process
  • user involvement
  1. Using Technology in Online Marketing: Chatbots

The second presentation targeted (but was not limited to) the Generation Z and the marketing strategies that can be employed to engage such users, which are basically born with a digital footprint and favor social media interactions. Georgiana Dragomir from Grapefruit gave us a taster of how Chatbots foster customer loyalty and retention. Several case studies backed this statement up and provided memorable examples. Here are some of them:

  • The Pizza Hut chatbot (Sales & Advertising) – available via Facebook Messenger and Twitter. It is meant to simplify the ordering experience and catch up with Domino’s more advanced technical options. After a mere three months, Pizza Hut managed to increase its engagement and boost customer retention.
  • SIMI (Creative Marketing) – designed as a Personal Bartender Chatbot, which comes up with recipes based on the ingredients input by the users. To prompt retention, it also rewards its customers with free drinks and paid taxi rides to and from the bar, so as to avoid any drunk driving.
  • ERICA (Customer Service) – the digital assistant, released by the Bank of America. It is a proactive chatbot, which uses AI, predictive analytics and cognitive messages to oversee payments and offer support in developing saving plans. This initiative is aimed at encouraging customers to change their spending habits.

Consequently, emphasis was placed on the marketing aspects, rather than on the technical implementation. This shift in perspective provided me with valuable interdisciplinary insights. What I also found interesting in addition to the use cases, is the fact that Facebook Messenger offers the necessary infrastructure for developing chatbots. This means that it takes little time to implement and maintain one, thus making it more accessible to developers and the end users alike.

  • Infrastructure Testing for Docker Containers

Next on my line-up was the presentation delivered by Alina Ionescu from Haufe Group.  It brought me closer to a type of testing, which I was yet unfamiliar with. Consequently, I found it very useful that Alina focused on an actual project to contextualize the subject matter. Infrastructure Testing had been conducted for a large backend project with more than 10 other dependencies. This sheer scale entails working with an immutable infrastructure. Since some Docker containers don’t complete at the same time, the need arises to check that everything is up and running.

Apart from the technical benefits of using such tools as Bash or Docker, what I found particularly interesting was the process itself, which is aimed at ensuring transparency and communication at team level. The workflow involves creating a ticket before the actual deploy, so that all involved parties are informed. The infrastructure tests are run. If they pass, the ticket is closed automatically and everyone is again briefed. In case of test failure, it is possible to roll back and work on a solution. Prioritizing your tests is also an option.

Having pointed out the process, it is also well worth mentioning that Infrastructure Testing is only one of the stages, slotted after the code deploy. Below is a visual rendition of how testing is parceled out:

Code Camp 2017 Infrastructure Testing

(Adapted from Alina’s presentation)

Visualizing the process aided me in understanding each stage better and grasping the benefits of this “Deploy-Destroy-Redeploy” approach, which is less time-consuming and more performance-oriented. Writing automated tests in the same environment that the Developers use is another plus. The deployments thus become more efficient and predictable, while focus is placed on decreased recovery times and higher quality. An extensive project like the one in the example benefits from this approach, which I think can also come in handy when scaling an initially smaller project.

  • A Game of Performance

Delivered by Alex Moldovan from Fortech, this presentation revolved around the mobile aspect of performance, suggesting various approaches to handling browser issues, app size and JavaScript.

It was quite intriguing for me to take a peek behind the curtains, especially since I had already come across and muddled through some of those issues myself, yet only as a user. Being introduced to the challenges mobile developers face on the eclectic and ever-evolving browser and device market really puts things into perspective. For one, it definitely makes you empathize more with the struggles put into providing users with an efficient, effective, satisfactory and accessible experience.

The catchy titles, the well-chosen visuals and the Alice-Developer-Persona made the suggested solutions more memorable.

Here are some of my takeaways:

Code Camp 2017 Mobile Performance
Code Camp 2017 Mobile Performance
  • Testing Trends or Buzzwords?

The last item on the agenda of the Testing Camp set about rounding off a diverse and engaging Track. Throughout their sessions, the content owners had offered their view on a number of topics, ranging from Infrastructure, Front-end, Continuous Delivery to Planning, as well as Exploratory Testing. Therefore, it seemed only fitting for Iulian Benea from Steadforce to prompt the audience to consider how Testing is evolving. Three aspects provided me with ample food for thought.

First of all, Iulian addressed the current need to automate tests as much as possible, in order to catch as many bugs as possible at an early stage. While this approach is cost-effective and less time-consuming, I think it should still leave room for Exploratory Testing, which can uncover important bugs in a shorter time span and can also be conducted in a structured and traceable manner (e.g. through SBTM).

The second aspect revolved around the specialization of testing. Usability, Performance, Security, Data Analysis and DevOps are just some of the focus points, which have gained leverage and popularity over time. These are more often than not connected with or influenced by the new fields, that are high in demand nowadays and constitute the third course of our “food for thought” meal: Big Data, Augmented Reality, Artificial Intelligence, Internet of Things and the coveted Blockchain Technology, to name but a few.

Drawing on these three aspects, we went on to discuss how Testers could adapt to such almost paradigmatic changes, in order to perform their tasks. Developing one’s skills beyond testing has become paramount. Adding request analysis, scripting, programming, management and even legal compliance to one’s profile are some examples in this respect. Specializing in Mobile Development, DevOps or Big Data has also been requested by various industries. During the Q&A session, we broached the trend in Timisoara. From the audience’s experience, Testers are currently learning how to write code, while Developers are conducting more testing. Some companies are experimenting with Test-Driven Development, while others favor employing Automation Testers with JS.

It was a lively discussion and I felt inwardly glad that I had selected such a varied range of topics at CodeCamp 2017, that I could add to my technical kit and further explore.

  • Gamification

In addition to the various tracks, the Code Campers had the opportunity to engage in various gamified activities, designed by the partner companies present at the event. During the breaks, you could take online quizzes on your topic(s) of interest, dabble in Augmented Reality, try your hand in technical trivia or participate in the Code Camp Raffle.

Bottom line: Apart from dealing with the technical challenges prepared, you could also get to know fellow campers and network.  Which is what getting together on such occasions is basically all about: experimenting in a safe environment, exchanging best practices and keeping up-to-date with the most recent trends.

Curious? Then just register hereYou can also sign up as a Content Owner and prepare to share your experience with eager Code Campers! See you on April 21st!

Cautam Content Owners pentru Tabara de Toamna – Editia Nr. 5

Esti Software Tester sau lucrezi intr-un domeniu conex? Iti doresti sa impartasesti altora din cunostintele tale? Atunci nu mai sta pe ganduri: Sustine un workshop in cadrul Taberei de Toamna!

Indiferent daca ai livrat deja numeroase sesiuni practice ori abia acum te familiarizezi cu vorbitul in public, aici poti sa te perfectionezi in continuare. Vei avea sustinerea noastra in pregatirea atelierului, precum si feedback, pentru a te prezenta cu o varianta imbunatatita la alte evenimente nationale si internationale.

Asemeni editiilor precedente, incurajam o abordare hands-on si te invitam sa participi la un experiment inedit, pe durata unui weekend prelungit.

De ce? Pentru ca editia 2017 sta sub semnul experimentarii cu diverse metode, abordari sau instrumente, intr-un cadru safe, care incurajeaza schimbul de experienta si invatarea continua, fara constrangerile unui produs anume ori a unui mediu de lucru specific.

Daca doresti sa ni te alaturi, completeaza acest formular si trimite-ne intre 01.09. si 10.09. propunerea ta pentru un atelier.

Hai cu noi in Tabara:

  • De ce? –  pentru “Experimente si Experiente”
  • Cand?   –  26.10. – 29.10.2017
  • Unde?   –  Hotel Silva, Busteni

Ne vedem acolo,

Facilitatorii TdT

Aici gasesti versiunea in limba engleza.

Tabara_de_Toamna_2017

A Taster of Automated Testing

Last Saturday, I attended my first monthly meet-up hosted by the Testing Camp in Timisoara. This session placed special emphasis on Go.CD and Docker, while aiming at introducing the topic to those of us who are yet unfamiliar with such tools or frameworks. Since I’ve mainly focused on Manual Testing so far, I was eager to get a taster of what Automation is all about, especially in the context of Continuous Delivery. So I packed my laptop and went to join the fellow Meeples who had registered for the session, delivered by Alina Ionescu and facilitated by Camil Bradea, Iulian Benea and Ecaterina Ganenco.

In order to assist us in this process, Alina informed us in advance about the tools we needed to install on our computers, prior to the meet-up. During the actual session, she also provided a step-by-step guideline for us to rely on while creating our testing environment. Once receiving the instructions, we paired up and started working on our assignment. It was quite challenging to navigate our way via the Terminal by typing and executing text-based commands, but it was all the more satisfactory when the steps started rendering results. Whenever we seemed to get side-tracked by an error message or some other type of constraint, we exchanged views with other teams or received support from the facilitators, who mingled and tackled as many questions as possible. By the end of the meet-up, I was thrilled to have set up my own GitHub account and to have performed my first Commit and Push. Creating the necessary stages and jobs was equally rewarding.

Most of the participants managed to run an automated test on their machine within the allotted time frame. Even those who had only succeeded in passing some of the stages, simply resolved to try again at home, since we could all just revisit the steps in the guideline that Alina had provided at the beginning of the session.

To sum this whole experience up, I’ll just leave you with my “Lessons Learned”: