Wednesday, March 13, 2019

#CodeConfident: Serenity Cucumber Practice - Part 3

This is the continuation of the coding journal on my first public code challenge serenity-cucumber-practice. If you haven't done so already, it's advisable to check out the previous entries first.
Although this part reflects only one more step in this practice project, its impact was huge. Parveen Khan had scheduled a pairing session with me. I was really looking forward to it as we had a call end of last year where she had shared that she was on a similar learning journey as I was!

March 9

  • #CodeConfident live pairing session with Parveen Khan
  • shared our challenges and struggles, what we want to learn
  • demoed the existing project, what's included, how it works, how I got started
  • Parveen agreed to give it a try, she drove and I navigated her through
  • implemented a new scenario this way, sharing a product to a friend
  • could re-use the given step; the when step was easily done; regarding the then step, we could not yet find the correct locator as it hit the wrong element; here we ran out of time
  • we did all that in very small time frame
  • in retrospect, Parveen shared how scary but how great it was to do it herself, but now she understood what we do; she only wrote feature files so far, not more; asked lots of people to explain the concepts; only when she now did it hands-on, getting instructions she understood the connections; once again the magic of strong-style pairing! really really happy about the outcome; great practice for myself as navigator as well, felt quite confident in what we were doing
  • we agreed to have a second session, Parveen will practice as well and then we can tackle the next challenge together
  • TODO: fix, clean-up and commit

March 9 (cont)

  • fixed locator
  • cleaned up, adapt code to domain language
  • committed scenario


Meanwhile...

Shortly after Parveen and I had our session, the program for TestBash Germany 2019 got released. You can't imagine how delighted I was to see Parveen on that program! Originally, I had planned to skip the 2019 edition as my schedule is very tight this year and I promised myself to take care of myself. However - Parveen now really makes me buy a ticket! I simply cannot miss the chance to see her speak. She has so much to share we all can learn from! Oh, and if you cannot make TestBash Germany, she's speaking at Agile testing Days USA as well ;)

Sunday, March 3, 2019

#CodeConfident: Serenity Cucumber Practice - Part 2

If you've read the coding journal of my first #CodeConfident challenge, you know that I've called for collaboration. The great thing: people followed the call! Many thanks to those who gave feedback on my first public code challenge serenity-cucumber-practice. Here's how the story continues and the project evolved.

February 7

  • received the following code review feedback from Peter Kofler:
  • "The Java language `assert` should not be used in tests. It can be disabled (is disabled by default) and does not give a good error message. I recommend using `assertEquals(expected, actual):` I see Serenity comes with AssertJ includes. I recommend using that. Open http://thucydides.info/docs/serenity-staging/ and search for assertj."
    --> switched from Java assert to use AssertJ assertions (http://joel-costigliola.github.io/assertj/assertj-core-quick-start.html); now understood why the Java asserts did not provide me as great messages as the Groovy asserts we use at work (note to myself: should have questioned that earlier...)
    --> "Thanks a lot! I already wondered why the asserts did not provide me a decent message. Switched to AssertJ assertions now, definitely a way better option :)"
  • "You do not have to create a branch for a work in progress test. Instead mark it as pending. E.g. Cucumber's "@wip" in the feature file ignores the scenario. Here are some options https://stackoverflow.com/q/3064078/104143"
    --> added option to ignore certain features & scenarios, excluding the tag from the Cucumber test runner
    --> "Thanks! I am aware I don't have to create branches to try things out. In this special case I decided to go for a branch as I was already suspecting that my approach is flawed and won't work. I only wanted to keep the work for reference and to receive feedback on it. Still, I now added the option to ignore single features or scenarios, something I was aware of but had not included here. Thanks for the hint!"
  • "All methods in this file are too long. Maybe split out chunks of coherent logic into helper methods. E.g. line 125-132 could go into a `createProductJsonItem()` method. Also building the request should go into another method. The remaining top level method will be easier to understand."
    --> did not think of this as this was "only" playground code - and yet it still makes any code harder to read, even if it's throw-away code; so, split parts into helper methods
    --> "Good point, thanks! I've now split parts into helper methods."

February 25

  • first #CodeConfident live pairing session with João Proença
  • I showed the project status, shared the struggles with the remove item from cart scenario
    • João: let's first see what it really does; inspected the add to cart button
    • we learned we can simply use the URL call sent on adding an item to the cart ("http://automationpractice.com/index.php?controller=cart&add=1&id_product=1&token=e817bb0705dd58da8db074c69f729fd8"); learned that the token parameter is not needed, but this call only works in case you have a session first, so need to access the page in general in the same browser session first; --> we implemented this approach and it worked! :D
    • there are still problems with it, like the usage of a hardcoded product id; we are depending on its existence; João would rather use the product name or something; using a proper API to create our test data would be best
    • João is using a lot of subcutaneous testing for his product, using an API that's exactly called as the UI calls it, would increase testability here a lot
    • test data management is a really complex topic; they first tried the approach to set up the complete data before any test suite run, which turned into a big monster; now they are offering methods to create test data on demand when needed for each scenario; we use the latter approach at work, too
    • I learned what I missed when searching for a solution myself: the exploratory mindset when approaching an automation problem, I already jumped to approaches I knew
  • another problem João sees: usage of product ids in the feature files is not nice; would rather use the product name
    • João explored the URLs found in the source, could not find something suitable; "?name_product=Blouse" or "?name=Blouse" were not working
    • ideas: we could 1) maintain a sort of dictionary in the code to map id and names, 2) use any product randomly but we would loose deterministic characteristic of the test, 3) hide the product id to lower levels as we don't care which one is used (in our product we often use the third approach)
  • I shared my challenge to hover over category menus
    • João would try an implementation to hover over the element then debug the test and see what's really happening; would probably need to wait that submenu is displayed, would check that style is changed to block
    • afair the problem was finding the element to hover over; João: maybe the element did not have the hover, seems the <li> has it
  • retrospective: for João it was a really cool session, these kind of exercises always trigger interesting discussion, e.g. around test data management, that the Serenity session offers to pass over variables between steps, and more; was really productive for him; Lisi: was really cool, the biggest learning was to see João's approach how to tackled these challenges, realized I got stuck in my boxes when tackling different challenges but should rather combine all skills I have; the short coding part together was nice too, would like to see more of that in future sessions, but also had really interesting discussions, was eye-opening overall; João: I'm not coding all the time, I'm not the person for that, rather trying to figure out shortcuts like calling the URL, I saw the URL and found it interesting so I tried things there; it's really about combining the skills to the problem, it's not just coding
  • TODO: commit solution, hide product ids, try again hover scenario, add update quantity scenario
  • TODO: update blog post / create new one, including code review from Peter and session with João; ask both first whether they are okay with that!
  • TODO: select next challenge
  • reflection before session and afterwards: we did it now quite similar to Angie Jones' proposal: http://angiejones.tech/hybrid-tests-automation-pyramid/
  • realized that the needed URL was only given when inspecting the "add to cart" button on the search page, not on the product page itself!


February 25 (cont)


February 26

  • hid product ids from shopping cart scenario steps, don't care which product it is
  • TODO: try again hover scenario, add update quantity scenario
  • TODO: create blog post with code review from Peter and session with João
  • TODO: select next challenge

February 27

  • aimed to implement hover scenario
  • tests suddenly get ignored and therefore skipped! found it's related to the tags used to mark parts to be ignored; as soon as no scenario is ignored the tests run; found that ignoring single scenarios still worked, but ignoring a whole feature file will lead to the not ignored one to be skipped! updating Gradle dependencies, rebuilding project, restarting, etc. did all not solve the issue; updated Serenity libraries to latest version --> now feature level tags work again!
  • found that TightVNC can auto-scale the window, more useful for my case than TigerVNC on Windows
  • found a way to navigate to the desired category (not elegant, but it's working)
  • found that the assertion failed and yet the scenario was marked as passed! IntelliJ warned that the assertion result is indeed ignored; using a JUnit assert the assertion throws... lesson learned: sometimes it helps to walk away, take a break, then have a look again; this way I found that I set a bracket at the wrong spot so I did not really assert for something
  • cleaned up
  • TODO: add update quantity scenario
  • TODO: create blog post with code review from Peter and session with João
  • TODO: select next challenge

February 28

  • implemented update quantity scenario
  • got annoyed by rewriting camel case to snake case, so installed this plugin to switch easily: http://plugins.jetbrains.com/plugin/7160-camelcase
  • speed of implementing very first attempt heavily increased the last days when practicing more regularly :)
  • remembered how to wait for expected condition
  • remembered how to cast different data types in Java
  • remembered regex for numbers
  • realized code style inconsistency, having step definitions in snake case and all other methods in camel case; unified it in favor of camel case
  • TODO: create blog post with code review from Peter and session with João

What else, what's next?

A few more pairing sessions had been arranged already. We will decide on the challenges to tackle together when the sessions get closer. In case you'd like to become a part of my journey, feel free to schedule a session with me as well.

Although I had not planned to do so this year, Angie Jones triggered me to submit to Test.bash(); - and in the end I could not resist any longer. The topic? My code-confident challenge of course. Fingers crossed!
Besides that, my Test Automation University course "The Whole Team Approach to Continuous Testing" is finally recorded and about to go live soon - which means I have my focus back on becoming code-confident. I'm about to choose my second code challenge these days, so stay tuned for more!

Thursday, February 21, 2019

European Testing Conference 2019 - Designed for Us

Last year I got selected to speak at European Testing Conference together with my learning partner, Toyer Mamoojee. It was such an inspiring experience that I knew I had to come again in 2019. And yet again it was amazing!
For this edition I was joining the conference as participant - nothing to do for me than learning together with great people of many different roles and perspectives, all interested in testing. After speaking at many conferences this was a really relaxed experience that I really enjoyed for a change.
Here are the sessions I attended, including my sketchnotes.
As always, I tried to get the most out of the event, not only attending all session slots (I felt I also had the energy to do so), but also making good use of the breaks to talk with people old and new, and of course using the time after the official program was over. After experiencing a lot of conferences during the last few years (a lot more than I ever imagined, thanks to my speaking challenge of 2017), I learned that the unofficial socializing part of a conference is usually the most valuable time spent. Attending sessions is great and a good learning experience, and yet exchanging knowledge and new things learned with my peers is unbeatable.

The great thing about European Testing Conference is that they design the conference so that plenty of these kind of informal learning opportunities and networking chances are available, the space for that is created by intention. You only have to seize the moment! To get further impressions about this very special atmosphere, check out the following links.
One conference was over, and the next one started! I felt really honored and lucky to get the opportunity to attend #ET19 just the day after European Testing Conference. This was my very first peer conference, and also one about a topic very dear to my heart: exploratory testing. For now, I can only say so much: it was great, and it was a lot to take in! I still have to process everything. In the meantime, check out Marianne Duijst's awesome #ET19 sketchnotes.
Last but not least, here are some of my favorite #ETCmoments of 2019! I'm already looking forward to the 2020 edition of European Testing Conference!

Thursday, February 7, 2019

#CodeConfident: Serenity Cucumber Practice

As announced, I plan to publish my coding journal for each GitHub repository I create within my #CodeConfident challenge. I've just finished the scope of my first challenge, so here are my related notes; as raw as they are, in chronological order. My hope is that they will serve three goals.
  1. Act as learning journal for myself, making my learning journey visible helping me acknowledge what I achieved
  2. Provide context for anyone who would like to check out my repository and maybe provide feedback and support
  3. Potentially provide a source of learning and inspiration for anyone else following my journey
Here's my journal for my first GitHub repository serenity-cucumber-practice. Want to provide feedback on it or pair up with me on further challenges? I hereby call for collaboration!

January 13

  • start from Serenity Cucumber starter project (https://github.com/serenity-bdd/serenity-cucumber-starter)
  • set up remote Chrome running Docker  
  • install TigerVNC for Windows 
  • revise scenario 
  • adapt step definitions -> still successful (gradlew clean test aggregate) 
  • create first page object and try to open it -> not compiling, packages to import "don't exist": "error: package net.serenitybdd.core.pages does not exist" 
  • TODO: fix issue

January 14

  • followed instructions to have page objects in main>java, which resulted in lots of fruitless searching why I got a "error: package does not exist" and the class and import could not be added to the classpath by IntelliJ; tried lots of things until realizing the resolved dependencies are shown in External Libraries for each module in the packages sidebar (always checked in the projects view); move of page object to another place solved the issue
  • "error: package net.serenitybdd.core.pages does not exist"  -> realized it has to be in test as only there dependencies are resolved by gradle build  
  • Selenium Grid setup in Docker is working as usual  
  • TODO: Clean up and do first minimal commit

January 15


January 17

  • generated SSH key and added it (all of https://help.github.com/articles/connecting-to-github-with-ssh/) -> worked like a charm, IntelliJ saves passphrase
  • discovered https://desktop.github.com/ -> could delete old branch via UI
  • first version of add item to cart scenario
  • cleaned up a bit
  • revising package structure: learned I need to put everything into one custom package, otherwise test runner fails
  • TODO: improve first scenario, then implement second

January 20


January 24


January 26


January 29


January 30

  • cleaned up branch
  • split different test version into methods to keep code for feedback and be able to switch between them easier
  • none of them is working, need feedback
  • TODO: implement 2 other scenarios on master to finish scope and ask for feedback

February 5


February 6

  • several potential scenarios to try
  • tried to go for categories; stumbled across finding a good selector for menu element, was not interactable
  • switched to extend the search feature by further scenarios; added view product page
  • tried to add view product preview and again element was not interactable; found I was using the mobile site not the website for locating it!
  • learned how to use actions to mouse over the element then the next element is interactable
  • learned how to switch to an iframe (https://www.guru99.com/handling-iframes-selenium.html)
  • merged latest master into branch
  • TODO: write blog post with learnings, ask for feedback

Calling for Feedback

That's it so far, good enough for now! Your feedback is appreciated.

Thursday, January 24, 2019

#CodeConfident: Getting Started with My Challenge

As soon as I made my challenge for 2019 to become code-confident public, I started thinking about how to tackle it. Drawing on the lessons of my past challenges, I created a Trello board to brainstorm and make things visible. From that starting point until my very first GitHub commit it took me quite some time. On the one hand I was facing other challenges at the same time and I still cannot fully focus on coding yet. On the other hand I honestly did not know how to get from a few familiar first steps to starting for real; and yet things evolved and finally all pieces fell into place.

Kicking Things Off

At work, we started out some months ago revising our legacy test automation through the UI in an incremental way. As it's work related and confidential I can only share generic lessons. Nonetheless, the frequent pair programming sessions are continuously increasing my confidence already, plus I get the feedback I desire to improve.

Still, kicking off my public learning journey was not that easy for me. Starting from my Trello board I added several lists. I brainstormed potential challenges I could tackle, courses and other resources to learn or get inspired from, people that might provide feedback or potential pairing partners, practice sites and last but not least my next todos.
As Calendly turned out to be massively useful when it comes to inviting people to pair up with me, I added a new event there. I read a bit more about licenses and how to properly use them when starting on GitHub. And I read really inspiring posts!

Then there was nothing left than the scariest task so far: decide on the first small challenge and start. I got stuck on that one for a while. Originally, I planned to finish another challenge I have and only afterwards start my coding challenge. However, this way I would have abandoned my challenge for several months which did not leave me with a good feeling. So I decided to mix things and follow my energies when it comes to deciding what to work on right now.

When really considering actual challenges to start with, I realized how comfortable and convenient it would be to just follow the guidance of a course instead of having to make decisions on my own and deliberately wander into the dark. At the same time I already presumed I would learn more by exploring.

Then I realized that defining a fixed scope and setting concrete goals for myself when to stop one coding challenge and move on to the next one was crucial for me to get started at all. My whole challenge is not about perfecting things or choosing exactly the best approach, the goal is practicing and this way eventually becoming more confident when coding.

And finally: If I would start with something I was more familiar with it would be less scary. I mean it would be scary enough to put something out there publicly, right?

This finally freed me up! I picked my first challenge. I made my first commit on my very first public GitHub repository. I nearly did not dare to celebrate it - and then still did it anyway the next day. Didn't regret it so far.
I haven't made much progress on my first coding challenge so far yet, and still I received lots of really encouraging feedback. Thank you everyone who supports me here! It means a lot to me.
Something came to my mind while setting everything up. Many people recommend to spend your time and energy and focus on working on your strengths, not on reducing your weaknesses. I feel more and more that my strength is being a generalist who can fill the gaps. Considering that, I'm indeed working on strengthening my strength right now. Even more important: I'm feeling good about it.

Coding Journal

When designing my challenge, I deliberately limited myself by defining pause and exit criteria for it. Therefore, I wanted to keep track of them early on. As they were depending on calendar weeks, I came up with just creating a new Google calendar and adding a new entry every time I managed to keep going with my challenge by granting myself free time to play a non-casual computer game. As I used Google calendars a lot already, this was a fast, easy and convenient way for me to get the quick visual overview I needed for monitoring.

After doing so, I realized I could also keep track of when I am actually working on things and document what I learned today, what were the next steps to go, and so on. So I added these to the same calendar as well. Yet again, doing one thing triggered another idea.

One of my goals was to spend less time writing lengthy blog posts. They were really valuable for me last year, this year, however, I wanted to use more time to work on hands-on challenges instead. Still, I'd like to preserve my lessons learned for my future self. My first reason why I blog is for my own learning, and only the second one is sharing my learning journey with the rest of the world in case someone cares. So I decided to try out a lightweight approach this time: For each GitHub repository I create, I plan to blog about what I learned on my way as sort of coding journal. Just the raw notes as they are, in chronological order. They might not be easy to follow for readers this way and yet will depict my learning journey as it went.

Only recently I came across a great blog post by Amy Williams about why you should keep a code diary and it clearly reflects my intention here. Give it a read and see for yourself.

Keeping Going

I'd like to spend a bit more time and go a few more steps on my own, then I'll call for collaboration and invite for feedback and hands-on pairing. Also, I hope to be able to focus more on my coding challenge from March on as other things will have been clarified until then. Well, that's at least my hope; I never know what might wait around the corner that will make me adjust my plan.

In conclusion, the challenge is clear. I can only grow more confident by practicing more. The good thing: I have the capacity to practice during my free time and the opportunity to practice at work as well. I consider myself lucky and I'm eager to make good use of it.

Thursday, December 20, 2018

2018 - A Crazy Year in Retrospect

What a year. It was crazily busy and yet incredibly awesome. Here's my end-of-year review of all the great things that happened in 2018. Time to celebrate and take a deep breath!

Timeline of 2018

If it's scary, do it more often, right? Like releases? As you can see below, this wisdom applied to both my public speaking as well as my pair testing challenges as well.
  • January
  • February
    • I joined our company's newly found Tech Chapter, a cross-team structure to drive technical topics on a global level.
    • European Testing ConferenceToyer Mamoojee and I told our story how we became learning partners. In addition, this was our very first paired talk!
  • March
    • I created the concept for the first tech conference of my company, the FlixTechSummit, and started putting the plan into practice together with a group of wonderful people across tech. 
  • April
    • Mob Programming Conference: I got invited to facilitate two mob sessions and visited the US for my very first time.
    • DevExperience: This developer conference added a new testing track and invited me as speaker.
    • My product team implemented and achieved a zero defect tolerance policy and has adhered to it ever since.
    • I introduced two other product teams at our company to the mob approach.
  • May
    • I wrote my first post for our company's new tech blog about my story as first-time conference speaker.
    • Toyer Mamoojee and my extended pact group kicked off.
    • I mentored people on public speaking for the first time.
  • June
  • July
    • I got promoted to "Principal", which is the next seniority level after senior in our company and comes with working on a global level in addition to the work in our product teams.
  • August
    • CAST: I shared the lessons learned on my testing tour and inspired others to go on their own tour. Also, I introduced further people to the mob approach.
  • September
    • SwanseaCon: I got selected again to speak at this wonderful software crafter conference, sharing my testing tour lessons here as well.
    • TestBash Germany: I started my sketchnoting experiment, inspired by Marianne Duijst. I did sketchnoting at four conferences now, and I can clearly see my progress as well as the benefits this method provides. I even managed to inspire others to start their own sketchnoting journey!
    • I learned once more about the power of visibility and positive feedback, this time within my own company.
    • Agile Greece Summit: Thanks to Maaret Pyhäjärvi I got invited to speak in Athens about my journey at my current company FlixBus as well as facilitate a mob session. The talk triggered lots of conversations, the mob session inspired people to try it in their own companies!
    • Toyer Mamoojee and my extended pact group evolved into a power learning group bringing together even more wonderful people to learn from.
    • Despite all the time I've spent away from my product team during the year already, my team still had my back and everything was working very well.
    • I had learned to acknowledge that I am technical during the past years, and to tell people so. This time I received a wonderful reminder not to belittle any skills I have.
  • October
    • A dear teammate triggered revising our automated end-to-end tests in an incremental way by frequently pairing with me.
    • HerCAREER: I facilitated a meetup at this career fair and exhibition targeted at women, sharing my story as well as answering any of their questions regarding my job as tester.
    • My testing tour ended - and it was a full success.
  • November
  • December
    • I received absolutely lovely peer feedback from my product team, even though I've been a lot at conferences or working on other company initiatives. Seems I managed to strike the balance in their point of view!
  • General
    • Overall, I now gave 15 sessions at 11 conferences in 7 different countries since September 2017.
    • I received further speaking offers and other opportunities and was strong enough to say no. Note to myself: Practice that more often.
    • Including this one, I wrote 45 blog posts this year, summing up of a total of 75 since I started this blog in December 2016.
    • I continued to attend several different local meetups, something I only started last year.
    • In my company's testing community, the other two moderators got engaged a lot more this year. We tried lots of different formats for our monthly meetups, aiming for continuously improving how we can provide value for each other.
    • I made some further steps towards changing the world to the better when it comes to diversity and inclusion. I spoke up in case of bad talk; not always, but a lot more often. I made colleagues aware of the singular they and asked them to get used to it. I made clear that as a woman I don't feel included in "guys", and I know many more who don't as well.
    • I received so much lovely feedback from the community. This means a lot for me and is super encouraging!
    • As you can clearly see above: I got a LOT better at recognizing and stating my own achievements. I indeed practiced to do so! I'll be glad I wrote about them so I can remind myself of them whenever impostor syndrome overcomes me again.

Thanks Are Due

There are so many people to thank. Simply look at above tweets and you see I was not and am not alone on my journey. I am so grateful to have so many people around me! Lists are always incomplete, however, I'd like to give it at least a try and close this year by explicitly thanking the following people as they gave me a boost this year, provided invaluable feedback, support, encouragement, advice, and more. THANK YOU.
  • My personal learning network, with my accountability and learning partner Toyer Mamoojee leading the way! Also, I'd like to thank everyone of our power learning group explicitly: Dianë XhymshitiJoão Proença, Mirjana Kolarov, Viktorija ManevskaSimon Berner, Lilit Sharkhatunyan, Pooja Shah, Dragan Spiridonov.
  • All those wonderful people who joined me on my testing tour this year, with Maaret Pyhäjärvi in first place who heavily influenced my tour through leading by example. Peter Kofler for having three pair testing sessions with me and agreeing to continue pairing regularly in 2019.
  • All people of the Women in Testing slack as this is a most wonderful support group and network I learned to heavily appreciated.
  • All those people who provided me new opportunities! Like getting selected or even invited to conferences, webinars, podcasts, writing articles, and more.
  • All those people with whom I went sightseeing after conferences - I had a lovely time with you! Lisa Crispin, Barney Dellar, Marcus Hammarberg, Nancy Van Schooenderwoert, Woody Zuill, Dawna Jones, Mark WestMarianne DuijstGwen Diagram.
  • Marianne Duijst, for being such a huge inspiration when it comes to getting out of our own comfort zone, public speaking, sketchnoting, and more.
  • Patrick Prill, whose kindness, encouragement, support and wonderful constructive feedback on my conference talks is invaluable.
  • Thomas Rinke, for all the things he does to drive our community forward, for being a great ally, for being a wonderful person to talk with in general.
  • Ashley Hunsberger, for openly sharing her thoughts and emotions and for providing sound advice on my very first keynote!
  • George Dinwiddie, for sharing his story when it comes to bad talk, and for having a sympathetic ear when it was most needed.
  • My fellow FlixTechSummit organizers, for their hands-on support and hard work. No one could have done it alone and we made this first tech conference happen together!
  • And last but not least: My wonderful product team! I know we have each other's backs and this is not taken for granted. THANK YOU.

Outlook for 2019

Here's a sneak peek of what's coming next.
  • #CodeConfident: I decided on my personal challenge for 2019. Several people already offered their support and am eager to kick it off.
  • I will continue pair testing on the topic of security with Peter Kofler.
  • In the first quarter I offer cross-team and cross-role mob sessions at my company to have people learn with and from each other. The first response was positive and people already signed up.
  • TestBash Brighton: I have the chance to finally experience the home of all TestBashes and share my lessons from my testing tour.
  • There are more conferences to come, so stay tuned.
  • There will be a second FlixTechSummit to organize! I hope we can include our lessons learned and make it even an better learning experience for everyone.

The Biggest Challenges

Other speakers are frequently asking me: You're all over the place, doing so many things - do you still work? When do you work? How to deal with work when you're speaking? The funny thing is that my colleagues keep asking me: Do you have any free time at all? (They know I do work indeed.)

Now, I do all of that and more. There's family, friends, and personal interests. Last year I wrote I noticed I played a lot less computer games! Unfortunately that's still true. Therefore, I explicitly included this as an indicator to pause in my new #CodeConfident challenge. So, besides that, my biggest challenge for 2019 will be to take care of myself.
  • Avoid "hamstering". The more I did and shared publicly, the more visible I got, the more opportunities opened up for me. Which is great! The downside: it's really hard to say no to things I'd love to do, however, I only have limited capacities just like anyone else.
  • Balance the load. Even when carefully selecting what I do, I know I will do a lot. So I need to balance my time even more carefully.
Portia Tung at Agile Greece Summit 2018 told us: "You may." Allow yourself to play. I add: and allow yourself to take a break and rest. I am looking back at wonderful 12 months and I am looking forward to what's coming in the new year. See you all in 2019!