Author Archives: duduc

Tech Woman the Odd One Out

I am neither a hero nor a victim. I’m just a tech woman, the ugly duckling, the odd one out.

Tech Woman The Odd One Out

The world is torn in two directions. On one side I read articles about how difficult it is to be a woman in the world of information technology, I see statistics showing the low percentage of female programmers, studies trying to analyze the facts, find the root cause and give an explanation for this phenomenon. Such „negative publicity” presenting tech women as victims and emphasizing the negative facts does not encourage young girls to follow this path, it rather scares them away.

On the other hand organizations and institutes are dedicated to motivate and inspire girls to follow the path of incredible women who actually became famous in this domain. The heroes and role models are preaching to be strong and not to give up, preparing others for the rough path and fight of their lives. This kind of exaggerated representation of women could have the negative effect of transmitting high expectations which can be easily disappointed later on.

I would like to express my deepest respect to the ones engaged in both directions but I believe that there no reason to portray tech women as victims or heroes. 

In our world full of prejudices we tend to think in stereotypes. It is true that tech women are rare and some say that prejudices are to blame but aren’t also women driven by their own prejudices and so called legends around the reserved and non communicative IT nerds or the cruel, direct and unfair male dominated world?

At the end it all comes down to being the odd out one, the one who does not fit into the picture. The human brain is constantly seeking for balance and harmony thus it automatically focuses on the one disturbing element which does not fit to the pattern. It starts to search for reasons and explanations. In stead of trying to answer the question „Why is the one in the picture and why it is so different from the rests?“ we should rather ask „Why are all others there and why they all look alike? Wouldn’t they look boring without the one?“.

Tech Woman The Ugly Ducking

I know how it feels to be the ugly duckling. I have been confronted with questions like „What sort of creature are you and how did you end up here? Wouldn’t it be better for you somewhere else?“. I grew up in a country where I was a part of a minority. During my scholar studies and later at the university of information technology I was suddenly representing the minority of a minority. I left my native country to start a better life somewhere else and ended up switching countries several times. Now I am woman and I am working in the IT in a foreign country so I guess that makes me a triple minority. The minority effect branded my whole life.

Having everyone’s attention, being the focus of discussions, the target of jokes or left  aside can be difficult to handle sometimes. I know what I am talking about. As a tech woman I had the opportunity to experience such situations. I went through the stages of outrage, acceptance, resignation and ignorance, until I learned to use it to my advantage.

It takes time but with a good portion of tenacity and perseverance I have learned to laugh at typical jokes I did not find funny at all. I have also learned to accept and ignore the jokes about women although some are actually funny. Meanwhile I am trained to talk about or listen to the newest IT trends, frameworks and gadgets, even though such topics are not my main point of interest. Honestly speaking, topics like the latest fashion or the newest make up hype are not that exciting either.

Of course it is easier to judge and blame others for not being accepted and treated how we would like to but let’s face it, women could improve in some aspects as well. Here are some best practices that made my life easier.

Do not take IT personally!

I used to take everything more personally, I felt often offended or misinterpreted some words or reactions. Being sentimental does not help in this business. Objectiveness is something women can learn from their male colleagues. I used to think that I was the subject of discussions or the target of jokes whereas the others had absolutely no intention to offend me. Of course I am asked sometimes to get the coffee rather that to be a part of serious discussions. At the beginning I was indeed not amused but with time I learned to accept it with a smile and ignorance.

Be loud if needed!

I am often involved in discussions with alpha males and I do have difficulties to get their attention and to bring my opinion into consideration. The trick is not to give up, if I am not heard the first time I try again with slightly raised voice paying attention to remain polite and not become sentimental. Nobody will hear a trembling low voice begging for attention. Every beginning is hard, to win respect and acceptance takes time and does not come for granted.

Stop reading between the lines!

With time I learned not to question every single reaction and the behavior trying understand the background of every decision. It often turned out not to be true and I realized that it was a misinterpretation based on my own prejudices. Reading between the lines can lead to disappointment in one way or another. There is often nothing between the lines, just our imagination and the projection of our own thought and fears.

“The things we see are the same things that are within us. There is no reality except the one contained within us. That is why so many people live such an unreal life. They take the images outside them for reality and never allow the world within to assert itself.”

Hermann Hesse, Demian: The story of Emil Sinclair’s Youth

Fill the gap!

Let me tell you about the typical programmer behavior.

Programmers tend to loose themselves in details. Ask them to explain a solution in few sentences and they show you a code labyrinth, ask them to start implementing the best case scenarios and they give you the solution for rare, exceptional cases focusing to solve them before even having a solution for the rest of the cases.

The IT experts tend to overcomplicate the problems and solutions. Striving for perfection they transform the solution into a dissertation covering all possible, maybe not even valid, scenarios. A typical case of „over engineering“.

A true technician does not know compromises, he or she has the vision of creating the perfect system no matter how long it takes and how much it costs.

Nowadays, these characteristics are hardly tolerated in the IT world. Talents and visions are often suppressed by market driven organizations focused on mass production and cost savings. Exactly here I see the potential! The tech woman can be the link between the binary world of the information technology and the versatile world of reality. Having a different mindset they can fill the gap between the hardcore programmers and the rest of the world. A feminin touch can bring some benefit.

Tech Woman the link between two worlds

I experience this almost every day, talking to software users and to programmers who wrote the software. It is rewarding to see how two different worlds get aligned and understand each other and to know that I made it happen.

The life of a tech woman can be a challenge but I confess, I like to be the ugly duckling, the odd one out. My life would be much more boring on the other side.

Software bug, a marvelous creature!

If you like BUGS, your place is in the IT. Imagine spending your time searching for bugs and analyzing them, admiring their complexity and amazing talent to disguise and to transform. If bugs are not the reason why you chose IT, you might find the answer here Why did you choose IT?

Software Bug

Perfection is just an illusion, it simply does not exist and IT is no exception. Same as everything else, a software is also not meant for the eternity and will certainly not fulfill all expectations to the full extent during it’s complete lifecycle. Same as a child, software needs to grow and evolve until it reaches the maturity level. Continuos improvement is the key to survival.

From what I have seen so far (and I have seen IT from outside and inside), I can definitely say, that there is NO software without bugs! Just think about software programs and applications you have installed on you’re PC, laptop, smartphone or whatever small and fancy device you own to make your life more complicated. Once installed, you can hardly escape from the new releases and recommended updates promising you a better, more stable version which brings cool new features with it. They never say that with every new feature, with every new version you will become also the proud owner of new bugs, free of charge.

No program is absolutely flawless. Programs and bugs are perfect symbioses, they are like humans and bacterias, like bees and orchids. Programs are the natural habitats of software bugs, whereas bugs are often the impulse for improvements, enhancements and innovation.

There are two types of „bugs“ in the IT, the true ones and the fake ones. Like in the nature, the true bug is rather rare and the rest are just so called, wanna be bugs.

The Hemiptera or true bug are an order of insects…They range in size from 1 mm (0.04 in) to around 15 cm (6 in), and share a common arrangement of sucking mouthparts. The name “true bugs” is sometimes limited to the suborder Heteroptera. Many insects commonly known as “bugs” belong to other orders; for example, the lovebug is a fly, while the May bug is a beetle.“ Wikipedia

A true bug of the IT world is a problem indeed, causing wrong, unexpected results, sucking the memory or hardware resources, in worse case even causing a system outage. It is actually a flaw in the program, generally a human mistake, a tiny issue which was overseen or forgotten during the creation phase. A tiny issue with huge impact. Producing bugs and learning from mistakes is a part of the natural learning process in the life of a programmer. A good programmer needs to have hands on experience with infinite loops, unhandled exceptions, improper validation of input data and many more.

Several methods and techniques like agile software development, code analysis and review, automated unit testing and all in all discipline can prevent such bugs from being introduced in a software program. The problem is that most people do not realize the importance of such actions and tend to neglect them, using common excuses like: „there is no time for this now, but it is high on our To-Do list! Once the product is launched we will catch up.“ We all know what happens with always increasing To-Do lists.

But what about the rest of the bugs? If the true bugs are limited edition, what are actually the so-called fake bugs? A famous IT sentence comes to my mind: „It’s not a bug, it’s a feature“. There is a drop of reality in it, although it is often misused as an excuse to cover human mistakes. These bugs are not easy to handle as they are not clearly errors but a result of misinterpretation, miscommunication or other unfortunate circumstances.

If I ask you to bring me something to drink and you bring me coffee, whereas I was actually thinking of tea but never said it loud, would you consider it your mistake or my fault? Would you go to a restaurant and ask the waiter to bring some food, something digestible, without saying what exactly you wish for?

The more specific we are, the more the result comes closer to our expectations. If we choose not to, than we need to be flexible and be prepared for surprises. In a perfect world, the perfect IT project would have well defined requirements not leaving any room for interpretation, a clear design thought throw without any gaps and unanswered questions. This would be of course realized by highly motivated professional people with clear understanding, working together as a team. I must mention that in this case the written form is mandatory. Memory fades in time and people tend to misuse the power of the spoken word.

Whether they are true bugs or fake bug, they cannot be ignored, they need to be addressed, understood and corrected. Call it fixing, maintaining, patching, changing or adapting the software, one thing is for sure. Bugs are social creatures, they never come alone. Once you find one, you might encounter another one, or by fixing one, you might create two more. It can be a never-ending story and can drive one crazy. The key is to know when to stop, at least for a while to get a clear mind.

My personal tip to you is:  take a break and do something completely different, immediately after fixing a software bug and solving one problem. Don’t doubt yourself and triple check. If you let your brain rest for a while, you might see things much more clearly. If you keep looking at the same problem and the solution you just provided, I can guarantee that you will find the next bug in the system ending up in a vicious circle. Once it’s fixed, it’s fixed. Of course, I highly suggest to follow the four-eye principle and have the fix reviewed by another colleague. If the fix is actually a long-lasting stable solution or just a quick fix, a so called workaround which you plan to replace soon with a better solution, it’s a completely different story.

Noticing the problem and the symptoms is the easy part, finding the root cause is the real challenge. Some bugs are very tricky and hard to find. Sometimes it feels like being a doctor operating on a live system. We all have our tactics and strategies to find the cause of a problem, but there is one which seems to work if all other have failed. I am talking about the elimination principle, a common practice in the IT. I am sure you heard of it, if not, then I bet you apply this in your every day life, maybe not consciously but by following your instinct. People are not born with this skill but they seem to acquire it in the early years of childhood.

I will tell you a short story that, in one way or another, might sound familiar to you. Imagine  a child, let’s call him Dave, on a playground, surrounded by his friends and playing with many colorful, interesting, beautiful toys. Like any child, little Dave prefers to play with his favorite toy, a red dotted silver shining mini drum he just received from his father. Being distracted for a second by the sound of a barking dog, he turns away and just when he reaches for the drum again, he notices that it disappeared. Looking at all the  children running around and playing, he has only one thought in his mind: he wants to get his toy back.

Dave is a clever boy and decides not to cry but to solve the riddle by himself, without the help of his mommy and daddy. He sits down and starts to play a game. In stead of trying to figure our who took his toy, he decides to take a good look at his friends and think about who could possibly NOT take it. His idea is to eliminate the subjects one by one until only one is left. The sweet Mary is surely innocent, she is a very nice girl and he likes her very much. Without realizing that he could be fooled by his emotions, he shifts his attention to  Raemon, a self confident, very social boy. Dave has his doubts and decides to face him with a direct question, hoping that the surprise effect will force Raemon to tell the truth. This strategy doesn’t lead to success, as the boy loudly expresses his anger being accused by his own buddy of something he did not commit.

Little Dave does not give up, he hopes that with patience and perseverance, excluding several options and alternatives, applying different tactics he will achieve his goal. Although the game is often based on assumptions, he needs to trust his instinct and believe in himself.

However the story ends, if clever Dave gets his toy back or not, it will be a learning for a lifetime, one to help him solve problems later on. He might become a brilliant programmer capable of finding and fixing complex bugs.

Future IT people out there, prepare for an exciting debugging and bug fixing experience!

Island Hopping or just a regular day in the IT

Let me answer THE question raised in my previous post Grandma’s Cookies by inviting you to spend a typical day with me in the office, in a fast forward mode, of course. Don´t worry, I will skip the uninteresting details and do my best to keep your attention.

Let me grab my morning coffee first, bear with me, the meeting marathon is just about to begin. In a few minutes I will attend a project meeting together with the business department to understand the new requirements towards IT related to the launch of a new product. My gut feeling tells me that this will not be an easy ride, the project will require lot of effort and we better deliver a well thought-out solution.

Two hours later I attend a discussion full of tension, where the people from operational department and the end users, complain about the flaws and troubles of the existing software. My task is to keep calm and assure them that we will find quick solutions (so called workarounds) and future improvements to help them in their everyday work. I do not have any solutions ready and I know that I will not have time today (or the next days), but I prefer to keep this little negligible detail for myself.

During my coffee break I meet the colleagues from the testing department asking me for test support on a project delivered recently by our team. Of course, it touches a totally different area, nothing related to my previous meetings. It does not matter, the long years training in this business pays off and my brain is able to switch between topics pretty fast.

My phone rings in the middle of the conversation and I need to leave due to an urgent matter, a production problem, several provisioning orders are blocked and the customers are waiting for the service they ordered. You can imagine the panic, at this moment all eyes are on you, waiting for you to solve the problem. I must say, time flies on such days.

Luckily, the highlight of the day has arrived, it is lunch time! Time for biological and mental digestion, time that I take to clear my mind and to recharge my batteries.

I’ve got two more meetings to go and then I am done for today. Of course I have tons of mails to check and my TODO list (the action points I gathered during my last meetings) is also not getting shorter! Both activities require peaceful, quiet time, without any disturbing and without distraction. This is wishful thinking.

As I arrive to my desk (which I haven’t seen very often today), my calendar desperately signals me that the next meeting is about to start in fourteen minutes. Just enough time for me to answer the most important emails (which are, by the way, not the most urgent ones).

The rest of the unanswered mails have to wait as I have a really important meeting to discuss the concept of replacing an existing software with a brand new state of the art technology. This is not an easy topic to digest, especially when you do not see the benefit of it. During the meeting, I keep asking myself if this project will fail the same  way as  the most of similar big, expansive and complex migration and transformation projects. Such projects are purely IT initiatives and they rarely find any sponsors and fans in the business departments. Tons of books and scientific articles have been written, all trying to explain and solve this problem by defining recipes how to prevent such projects from heading towards a dead end. However, you cannot control human behavior with strict formulas, thus I am always skeptical about such recipes.

On the way to my last meeting of the day, I rush to take a cup of coffee with me. Entering the meeting room and holding an empty cup in my hand without any liquid inside, I realize that tiredness has taken over my brain. Good thing that it is the last mile, bad thing is that attending a team meeting without coffee will require double effort not to fall asleep and stay at least halfway concentrated. Not to mention the background noise in my head due to screaming emails and tasks which I have neglected the whole day.

As the final strike, when I finally arrive to my desk and plan to spend the last hour working on today’s backlog, a colleague comes to me asking me to check and analyze a production issue, which naturally cannot wait. He was hunting me the whole day and now, that he found me, I just cannot refuse.


Paradise Island

Such days are like island hopping.

Not because of the relaxing and pleasant art of a holiday, but because of the continuously changing landscape. This could become pretty much tiring and stressful, if it get’s out of control. Think about the Greek Islands, they are all different in their nature, environment  and culture. One moment you are in the middle of the dark forest trying to find the sunny beach to get some clarity, the next moment you are climbing high mountains to reach the top, hoping for the panoramic view to reveal the big picture to you. You hope to get answers to all those questions tumbling in you head by gaining an overview and seeing the big picture. You are desperately searching for the sense, the meaning of all what is happening to you and around you.

In stead of taking the time to explore and maybe enjoy the nature, you must leave and jump to the next Island. This could be fully populated, loud and overloaded with touristic attractions and party areas. This is not the place to retire, it is time to socialize and to have fun. If you have something to say, be as loud as you can. Sometimes you need to be loud enough to prove your point and influence decisions.

Hopping to the next island, you encounter a cozy place having a magical landscape and friendly people with amazing experience, gurus with special talents, mastering their profession. You can be thankful to meet them, as you can learn a lot from them.

You are overwhelmed to be on the paradise island, but suddenly a strong wind grabs you and takes you away to another place, a dense jungle full of hidden dangers and surprises. It sounds like  a thrilling adventure, having the time of your life, but after some time it can become really exhausting, driving you to the limit. Your survival skills are a must, your only goal is to get through the day, fighting through the jungle. It is actually not the nature you fight against, but the fictional, artificial enemies created by humans. Snakes could have been your friends, but it is too late for that now. The once virgin, pure, wild jungle is now full of intrigues, mental wars and conflicts of interests. Only the strongest survive.

There are two types of people on this planet: the ones who love island hopping and the ones who hate it.

Some prefer the hectic and adventure, the constant dynamic, moving from one place to another, but some people like to stay in one place, having time to enjoy and explore the scenery in its full splendor. Both has it’s advantages and disadvantages. The more you hop, the less time you have to explore but the more you hop, the more you get to see and experience.

Looking back, I would say that I am rather the island hopper than the „stay in one place“ person. Diversity attracts me, I tend to switch the scenery, being scared of the „monotony“ of one place. During my life, I have lived in several countries (and I am sure I haven’t reached the final destination yet), most of my holidays were tours, round trips, and I have worked mostly for companies where the ability to deal with many different topics at the same time was crucial.

Does this make me a superficial person? Will this ever change, will I become a „stay in one place“ individual with time?

Whatever happens, no matter which way we choose we need to adapt and make the best out of it, while it lasts. The next wind will come for sure to take us to the next island, maybe better or worse, anyway different. Changes change us.

Why to become a programmer?

If you work in the IT or it is just your hobby, you must know it. If you know anybody who works or is passionate about IT, you must know it as well. I am talking about THE question: „Why did you choose IT and what do you actually do?“. Sounds familiar, doesn’t it? If not, then you might read it as well, because at some point in your life, I assure you, it will hit you, no matter if you are asked or you are actually asking THE question. I was always before the camera being asked and had hard time to answer as there is no easy explanation. Now it is time to switch roles and ask myself: how can I explain a non IT person what I actually do every day? Being a practical person (IT is all about best practices and examples), I rather not hold a speech but prefer something easier to digest.

I always wanted to become a ballerina, it was my childhood dream! Coming home from school, eager  to meet my grandmother, as she was waiting for me, with cookies, I could tell her: „Grandma! I want to be a ballerina! I want to wear tutu, spread my wings graciously like a swan and dance into the sunset.“ If I could travel back in time and meet my grandmother again, if I could sit on her lap and stuff myself with her famous cookies… sorry, just got distracted a little bit :)… knowing what I know today, what would I tell her?

What do the kids nowadays say? „Grandma, I wanna be a programmer! I would love to sit day and night in front of the computer and stare at the monitor for hours, read and write  in a cryptic language…“. Hmm, that does not sound attractive at all!

Let’s try some other approaches, feel free to choose your favorite.

Grandma: „My dear, what would you like to be when you grow up?“
Me: „Grandma, I want to help people have a better and easier life. Computers were invented to help people by executing and finishing work much faster and do less mistakes. They could even finish tasks some people are not able to do. Those machines should also take over repeating tasks which could save our precious time, so we can focus on something better (cookies, for example). I want to teach those computers to do all these wonderful things“. Oh, my grandmother would have loved it! Being a smart child, I could have said: Grandma, achieving this, you would not have to cook and clean yourself, you could spend your time with me in stead.“, or even better „The clever machines could do my homework so I could spend more time playing!“,  but let’s not upset Grandma.

I know, this is a rather naiv way to see things, but sometimes it helps to go back to the roots and think simple. I certainly would not want to scare my beloved Grandma trying to explain the concept of object oriented programming, talking about design patterns, architectures, firewalls, endless loops, multithreading and rendezvous messaging.

Grandma: „Tell me little child, what would you like to become in 20 years from now?“
Me: „Grandma, you are my favorite grandma, today I am your grandchild, tomorrow I am just a kid playing with her friends, later I am a nice girl who always listens to her mother. We all play different roles in our lives. IT is not different, we wear different hats every day, every hour, in every situation (it is the so called multirole). There is no strict border between programmers, developers, designers, architects or project leaders, you need to be flexible. Through my IT career I had the opportunity to be a firefighter, an artist, a pastor of souls, a protective mother, a diva, life rescuer, a nurse, a politician, joggler and let’s not forget about being a soldier, a fighter. I want to be all of them when  I grow up!“

You might know the panic situations, when you feel like the whole world is burning and you need to stop it. I have had the chance to be in escalation meetings and task forces with the goal to solve highly urgent problems like system outages or applications with unexpected behavior. Just when I thought that the fire was deleted, it started in another place. It is the same feeling as trying to stop a leakage in the boat, fill a gap, hoping that it holds for a while. What you don’t see (or do not want to see), is that beneath the „bandage“ the hole and damage is getting bigger and at some point you cannot go back, the process becomes irreversible. In those situations, you feel that you only have two options to choose from: you either stay in the sinking boat and keep on patching it or you jump out and swim hoping that you reach some better places. This might sound crazy at this point but I assure you, I will do my best to explain through my next postings.

Grandma: „My sweet girl, what do you want to become, when you will be the same age as your mother is today. Have you ever thought about that?“
Me: „Of course I have, Grandmother, I know what I want to become: I want to be rich when I grow up! I would like to have plenty of pocket money to buy all the toys I wish for. I think if I learn how to program I could achieve that. Everybody needs good programmers and their work is highly appreciated“.

No comment on this one.

Grandma: „You know, you will not always be a child. Someday you will have to choose your own path…“
Me: „Yes, I know, and I can hardly wait to grow up and become an artist. I want to create something amazing, something what seems today impossible! I want to explore the universe and reach the stars. I would like to learn the computer do things that humans can only dream about. People will admire me and call me a magician because most of them will not understand how I make IT work. I know it will be a long and curvy road, but I will love it for sure. Programming computers is like teaching small puppies how to behave  according to your own ideas and instructions. Computers could be my playmates, they never get tired or bored, no matter how many times I start the game from the scratch. They also do not argue and do not complain. What a luxury!“

Of course, this might sound a little bit exaggerated, but believe me, I met many people who actually think like that. IT could become quickly an obsession, it could even isolate one from the world outside the box without even noticing it. In the same time, it does really feel like magic. You build systems and feed them with code. They grow up and become stronger and smarter, exceeding your expectations. Just make sure you never stop polishing and improving them.

Full Stop! It is getting late and we are out of cookies. I am sure you will also find your own version of the story, if not, you better have one of these ready.