Gender holidays in IT. How to note

In the midst of gender holidays, I want to help those who do activities in the office. The attitude towards February 23 and March 8 is more and more ambiguous every year. But we are not yet ready to give up another reason to have fun together.

We know that often HR delegates the work of choosing entertainment and gifts to those who are not at all ready for this. Therefore, if you are a developer architect tester (underline as necessary) … or a desperate HR without any congratulation ideas – this material is for you.

The article contains cases that came to our employees. Perhaps you will be able to become the king of the party, if you read to the end.


Best practices. Or how to use what they do in telly or on YouTube for their own purposes.

We “invented” the game “Directumbler“. What to do?

Take the name of your employee, for example, Chernova. Add a picture of the subject to the surname, for example, a vacuum. We get: Black Vacuum.

Maybe someone will be surprised now, but the game has stopped. We received 331 comments by posting the game on the corporate Blog. At some point, we even lost control, because the employees began to make their own pictures in paint. Here we have the name Chepel and everyone’s favorite dumplings. At the exit we get – ChePelmeni. Try it, you will like it.

image

For congratulations to a team of up to 10 people, the game “Intuition“. We collect strange facts about colleagues and try to guess where, what, about whom. So we found out that there are those in the department who: ran away from kindergarten, printed a ticket on the printer, wore garlic beads and fell asleep in the sea.

CommentOut on minimum

Divide colleagues into 2 teams. Tasks can be performed by all players in turn. Also, as in the popular show, first they pull a comment, then, if they don’t write, they complete the task.

It is better to make the comments relatively light, but with internal jokes and mentions of colleagues. We added more comments to instagram accounts of competing companies that we work better. As the tasks are suitable: strange dances in the next department or break-dance at the reception, uploading a video where you sing horribly in the story and stuff like that.

There is a life hack for this entertainment – it is better to carry it out when the colleagues are already warmed up.

According to the classics

The simplest, but so dearly beloved by many – game tournaments. Mortal Kombat, FIFA, CS or Dendy – depending on what the imagination is enough for and what the celebrants will choose. In our experience, girls like MK – randomly pounding the enemy is still fun.

If tournaments are already last century for you, I propose to diversify them. Holiday in the end.

Spend Drunk fight. Everything is the same as in ordinary mortalics, but before each game the participants drink. Non-drinkers do not play. It is better to take light beer from alcohol, so that in the end there is someone to reward. And this is +50 to entertainment, fun and festive mood.

Of the games you can still rent a kicker, air hockey or arcade machine for the office. Everyone is playing throughout the day. People’s reaction to arcade machines is especially beautiful – a classic that is so close and dear to the heart: Space Race, Street Fighter, Pacman.

image

Another classic event is Encounter. Find those who write questions, it is advisable to associate with IT to make it more fun. Then it’s the small business: organize drivers, assemble teams and go to solve puzzles around the city before midnight. For simplicity, you can restrict yourself to certain areas. In the best years, we had 15 teams of 5 people.

What else do you want on a holiday? Of course it’s good to eat.

For girls for a morning meeting, you can order a machine that makes cotton candy or cook apples in caramel. No, it will not stick together. And if they are still beautiful and will be photographed – you are guaranteed success.

image

And for men, morning coffee with cinnamon, cream or Baileys. Toasts with cheese, sausage or vegetables, pancakes, pancakes or even morning barbecue. In food it is better not to be limited.

It’s more difficult to organize, but they come in well.

If you have colleagues who play the guitar or sing well, you can put together a group and arrange lodger. We rented a small room, put corporate paraphernalia, scattered pear chairs. Those who wanted brought along drinks and food. It turned out well and sincerely.

image

Code in the dark. The event is quite popular, but if you did not know, it can also be held as part of the celebration. What is the point? This is a fun layout contest, which will appeal to those who “well, I’m not really a typesetter” or “I remember something else”, and to those who “I’m such a frontend god.”

As we had:

  • 4 or 2 developers temporarily make up one simple layout;
  • viewers watch the projector in real time;
  • after 15 minutes, the editor is blocked, the audience selects the best.

The fun is that each participant sees only the html editor and cannot switch between browser tabs, which means that he does not see the layout result to the very end. The results are displayed on the projector after the editor is locked. We brought popcorn, drinks and snacks, included drum & bass in the background. It was fun!

image

In a world where a 17-year-old eco-activist becomes the person of the year, there is a place for such activity as dress crossing. We spend it for girls, but men can also connect. The task is to bring things that have been gathering dust in the closet for a long time and either give them away just like that, or exchange them, or sell them for very little money. You can add canapes, music and champagne. Together we try not to litter the planet with things.

The scariest code

There was a task to connect developers to the holiday, they threw a piece of unpleasant code on the Blog and offered to make it even more scary, while maintaining efficiency. Here is one:

public DateTime EndOfMonth(DateTime date)
  {
    try
    {
      var date_string = date.ToString("dd.MM.yyyy");
      var month = date_string.Substring(3, 2);
      var year = date_string.Substring(6, 4);
      var rez = "";
      Console.WriteLine(month);
      if (month == "01")
        rez = "31.01";
      else if (month == "02")
        if ((Int32.Parse(year) / 4) * 4 == Int32.Parse(year))
          rez = "29.02";
        else
          rez = "28.02";
      else if (month == "03")
        rez = "31.03";
      else if (month == "04")
        rez = "30.04";
      else if (month == "05")
        rez = "31.05";
      else if (month == "06")
        rez = "30.06";
      else if (month == "07")
        rez = "31.07";
      else if (month == "08")
        rez = "31.08";
      else if (month == "09")
        rez = "30.09";
      else if (month == "10")
        rez = "31.10";
      else if (month == "11")
        rez = "30.11";
      else if (month == "12")
        rez = "31.12";

      return DateTime.ParseExact(rez + "." + date_string.Substring(6, 4), "dd.MM.yyyy", CultureInfo.InvariantCulture);
    }
    catch (Exception e)
    {
      // Ничё-ничё...
    }

    return date;
  }

As a result, we scored 20 terrible options, which won this one:

using System;
using System.Globalization;
using System.Diagnostics.CodeAnalysis;

namespace ScaryCode
{
  public static class DateTimeNormalizeExtension
  {
    public static string ToNormalString(this DateTime dateTime)
    {
      return dateTime.ToString(Program.EndOfMonthCalculatorExecutor.DateFormat);
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      var endOfMonth = UniversalFunctionsExecutor.ExecuteRandomFunction(typeof(EndOfMonthCalculatorExecutor), "EndOfMonth", DateTime.Today);
      Console.Write(endOfMonth);
      Console.ReadKey();
    }

    public interface ICalendarElement
    {
      // Абстракция.
    }

    public interface IDay : ICalendarElement
    {
      // На будущее пригодится.
    }

    public interface IMonth : ICalendarElement
    {
      // На будущее пригодится. 
    }

    public interface IYear : ICalendarElement
    {
      // На будущее пригодится.
    }

    public interface IDate : ICalendarElement
    {
      // На будущее пригодится.
    }

    public abstract class LastMonthDay : IDay
    {
      [SuppressMessage("Используем String, чтобы лучше считалось","Без этого параметра не компилируется")]
      public virtual string GetLastDayTwoPartsOfThree()
      {
        return String.Empty;
      }
    }

    public class LastJanuaryDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.01";
      }
    }

    public class LastFebruaryDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "28.02";
      }
    }

    public class LastVisocosicFebruaryDay : LastFebruaryDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "29.02";
      }
    }

    public class LastMarchDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.03";
      }
    }

    public class LastAprilDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "30.04";
      }
    }

    public class LastMayDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.05";
      }
    }

    public class LastJuneDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "30.06";
      }
    }

    public class LastJulyDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.07";
      }
    }

    public class LastAugustDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.08";
      }
    }

    public class LastSeptemberDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "30.09";
      }
    }

    public class LastOctoberDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.10";
      }
    }

    public class LastNovemberDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "30.11";
      }
    }

    public class LastDecemberDay : LastMonthDay
    {
      override public string GetLastDayTwoPartsOfThree()
      {
        return "31.12";
      }
    }

    public interface ICalculationFunctionExecutor
    {
       
    }

    public static class LastDayWithootYearCalculatorFabric
    {
      public static string GetLastDayWithoutYearCalculatorExecuteAndReturn(string month, string year)
      {
        var rez = "";

        if (month == "01")
          rez = new LastJanuaryDay().GetLastDayTwoPartsOfThree();
        else if (month == "02")
          if ((Int32.Parse(year) / 4) * 4 == Int32.Parse(year))
            rez = new LastVisocosicFebruaryDay().GetLastDayTwoPartsOfThree();
          else
            rez = new LastFebruaryDay().GetLastDayTwoPartsOfThree();
        else if (month == "03")
          rez = new LastMarchDay().GetLastDayTwoPartsOfThree();
        else if (month == "04")
          rez = new LastAprilDay().GetLastDayTwoPartsOfThree();
        else if (month == "05")
          rez = new LastMayDay().GetLastDayTwoPartsOfThree();
        else if (month == "06")
          rez = new LastJuneDay().GetLastDayTwoPartsOfThree();
        else if (month == "07")
          rez = new LastJulyDay().GetLastDayTwoPartsOfThree();
        else if (month == "08")
          rez = new LastAugustDay().GetLastDayTwoPartsOfThree();
        else if (month == "09")
          rez = new LastSeptemberDay().GetLastDayTwoPartsOfThree();
        else if (month == "10")
          rez = new LastOctoberDay().GetLastDayTwoPartsOfThree();
        else if (month == "11")
          rez = new LastNovemberDay().GetLastDayTwoPartsOfThree();
        else if (month == "12")
          rez = new LastDecemberDay().GetLastDayTwoPartsOfThree();

        return rez;
      }
    }


    public static class UniversalFunctionsExecutor
    {
      public static string ExecuteRandomFunction(Type type, string FunctionName, DateTime FirstArgument)
      {
        var instance = type.GetProperty("Instance").GetValue(null);

        var rez = type.GetMethod(FunctionName).Invoke(instance, new [] { (object)FirstArgument });
        return DateTime.Parse(rez.ToString()).ToNormalString();
      }
    }

    public sealed class EndOfMonthCalculatorExecutor : ICalculationFunctionExecutor
    {
      private static EndOfMonthCalculatorExecutor instance;
      static EndOfMonthCalculatorExecutor() { }
      private EndOfMonthCalculatorExecutor() { }

      public static string DateFormat = "dd.MM.yyyy";

      public static EndOfMonthCalculatorExecutor Instance
      {
        get
        {
          if (instance == null)
            instance = new EndOfMonthCalculatorExecutor();
          return instance;
        }
      }

      public enum NumbersPositionInDate
      {
        MonthStart = 3,

        MonthLength = 2,

        YearStart = 6,

        YearLength = 4
      }

      public DateTime EndOfMonth(DateTime fullIncoming_dateParam)
      {
        try
        {
          var date_string = fullIncoming_dateParam.ToNormalString();
          var month = date_string.Substring((int)NumbersPositionInDate.MonthStart, (int)NumbersPositionInDate.MonthLength);
          var year = date_string.Substring((int)NumbersPositionInDate.YearStart, (int)NumbersPositionInDate.YearLength);
          
          Console.WriteLine(month);
          var rez = LastDayWithootYearCalculatorFabric.GetLastDayWithoutYearCalculatorExecuteAndReturn(month, year);

          return DateTime.ParseExact(rez + "." + date_string.Substring((int)NumbersPositionInDate.YearStart, (int)NumbersPositionInDate.YearLength),
            DateFormat, CultureInfo.InvariantCulture);
        }
        catch (Exception e)
        {
          // Ничё-ничё...
        }

        return fullIncoming_dateParam;
      }
    }
  }

    
}

Scary people, these developers, of course. By the way, if you want to connect, write your options for obfuscation in the comments.

A little more for those who like to spoil and break. Once we hacked the system. Prepared a contest with different levels of difficulty. The first one was to order flowers on March 8 for free in the online store. With each new level there were more difficult holes. But an important point for the organizers: we were faced with the fact that at the first stage we were not just hacked into the system, but put it down. Be prepared for such turns and connect professionals to events.

You can combine business with pleasure and organize informal meetings in the office. We invited the owner of a bar with Belgian beer. He told about the history of beer, types, sorts and that’s all. With tasting, naturally.

And once we had meetings about emotional burnout. To each his own, as they say.

At the company we work in the Directum system. The system has standard routes that are designed to solve routine, everyday tasks. We decided to take these routes and launch a new one. TM “Fulfillment of desire”. The first step was brought into the route of all those who are ready to fulfill and receive wishes – specified through a short survey throughout the company. Then one day within the route could be sent and completed at the request of colleagues. Someone asked for flowers, someone coffee, someone poetry. Nothing complicated, no wishes for holidays in Bali and iPhone11. The effect was very positive, however, for the third time this story has become boring, and we do not risk repeating it yet, but perhaps we will revive it in a new format next year.

A little bit about gifts

We have 319 men and 247 women in our company. It is difficult to choose a gift that everyone would like, but it seems we have found.

  1. Of course, lego.
  2. Of course the flowers.
  3. And they also gave sets of soda (Dr. Pepper) + Pringles and badges + brutal chocolate.
  4. More sets: hand cream / badges, again flowers and immediately vases for them.

And somehow, on March 8, we were presented with nice, fluffy socks. Yes. Socks on March 8th. And it was very cool.

Such gifts as a complement to the main fun fit well. They are universal, in which case, it is not a pity to throw them out (: D), well, they can stay at work as a reminder of the holiday.

What we gave and nobody liked

Cheap business card holders with an engraving of the company logo, oddly shaped phone coasters that did not stick on the phone, small flasks for alcohol (strange volume, poor quality coating, rarely who carries alcohol in such quantities with them). Do not repeat our mistakes.

It seems to be all. I hope that with such entertainment you will be able to spend a cool holiday, well, and relax yourself.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *