• 33rd Degree 2013
  • 33rd Degree 2012
  • 33rd Degree 2011

Why to attend

  • Whole income collected for charities.
  • Opportunity to meet Jeff Sutherland in person.
  • Stuart Halloway first time in Poland.
  • Learn from Thomas Sundberg.
  • Best Polish speakers from Confitura.
  • Meet and learn from 300 participants.
  • Only great talks. No sponsored fluff.
  • Whole day of Java talks.
A single conversation with a wise man is better than ten years of study.
~ Chinese Proverb ~

Welcome

33rd Degree 4 charity is organized first time this year. The idea behind this edition is not to clone the main edition from spring/summer. This autumn edition is focused on charities. Developers are very lucky as average developer salary is much higher than average Polish salary. At the same time most of the developers would like to improve their skills and give something back to those who need help.

We would like to match the need of constant and strong need for improvements and learning, with the possibility to support charities. This conference brings very well known world class speakers like Jeff Sutherland, Stuart Halloway and Thomas Sundberg. As well as best speakers from this year Confitura conference like Slawek Sobotka, Jakub Nabrdalik, Jakub Kubrynski, Tomek Nurkiewicz and Tomek Cejner.

You can choose how much you would like to give away. It might be 50, 100, 150 or 200 zl. Please note it is volunteering donation and we will not be preparing VAT invoices for your contributions.

As we would like to collect as much money as possible, during "4 charity" edition of the conference we will not provide coffee breaks, lunches and any give aways.

Hopefully you will find the agenda interesting and you will help us collect money and support those who are in needs. We are working with selected charities like Szlachetna Paczka and Mam Marzenie and also we will consider any charity you will suggest. We can assure you whole income will be passed to charities.

Agenda

Time Session
09:00 - 09:45 Tomasz Cejner

Moda na REST - o tworzeniu pięknych API

09:45 - 10:30 Tomasz Nurkiewicz

Krótka historia czasu

10:30 - 11:00 Break
11:00 - 12:00 Jeff Sutherland

Scrum: The Future of Work

12:00 - 13:00 Break
13:00 - 13:45 Jakub Nabrdalik

Test Driven Traps

13:45 - 14:30 Thomas Sundberg

(Remote) pair programming

14:30 - 15:00 Break
15:00 - 16:00 Stuart Halloway

Narcissistic Design

16:00 - 16:30 Break
16:30 - 17:15 Sławek Sobótka

Model jest wszystkim czego potrzebujesz (w aplikacjach biznesowych) - czyli czego nauczyłem się w ciągu 6 lat stosowania i nauczania DDD

17:15 - 18:00 Jakub Kubryński

Co piszczy w Javie?

Sessions

Scrum: The Future of Work

Jeff Sutherland

Scrum jobs have increased in the U.S. by 3000% in the last year. In Europe the increase is 200%. What is driving this increase?

What will the future bring?

Over half of agile teams cannot deliver a successful project. What should we do about this?

What are proven practices that differentiate successful agile teams from those that cannot deliver?

How are large organizations transforming their structure to become Agile?

Narcissistic Design

Stuart Halloway

The software industry changes rapidly, but you can protect yourself from these changes by creating code that is complicated enough that only you can maintain it.

Of course you should not engage in obvious bad practices. The good news is that you don't have to. You can follow idiomatic industry practice and stay buzzword compliant with the latest trends, while quietly spreading complexity throughout systems. Better yet, the symptoms will show up not in your own code, but in other code that uses your code, directly or indirectly. You will be a hero as you lead larger and larger teams burning the midnight oil to keep systems alive.

Practice these principles, and your code will have an infectious complexity that guarantees you will always be needed to maintain it.

- Use OO, and don't forget those setter methods!
- Prefer APIs over data.
- Start with DSLs.
- Always connect (and never enqueue).
- Create abstractions for information.
- Use static typing across subsystem boundaries.
- Put language semantics on the wire.
- Write lots of unit tests.
- Leverage context.
- Update information in place.

(Remote) pair programming

Thomas Sundberg

Programming is often something that is done in solitude. Problem solving is something that often is done in a group. Programming is always about problem solving. It is therefore natural to do programming in groups. The group must not be too large and there must be at least two persons to make up a reasonable group. A pair turns out as the natural choice.

Some of the benefits with pair programming are
- Problem solving
- Continuous reviews
- Quality
- Learning
- Lower project risks
- Satisfaction

Pair programming is most efficient when the pair sits next to each other. This is not always possible. I will therefore show how to setup a remote pair programming session and then do some programming with a remote partner.

There is a myth that pair programming is twice as expensive as having one person solve each problem. The actual direct cost has been shown to be only 15% higher.

Model jest wszystkim czego potrzebujesz (w aplikacjach biznesowych) - czyli czego nauczyłem się w ciągu 6 lat stosowania i nauczania DDD

Sławek Sobótka

"Dlaczego ta zmiana kosztuje 100 mandaysów? Przecież chciałem dodać tylko jeden checkbox na ekranie?"

"Ale jaki dług techniczny musimy teraz spłacić? Przecież do tej pory wszystko działało!"

Wszyscy zapewne dobrze znamy tego typu sentencje.

Na domiar złego pojawiają się nowe symptomy: programiści uciekają z organizacji mamrocząc po nosem coś o "big ball of mud" - dziwne, przecież dostali karnet na siłownię...

Podczas prezentacji przedstawię kilkanaście "special hacks" modelowania domen. Niektóre z nich będą oczywiste (choć zwykle nieuświadomione) a inne mniej.

Niektóre mogą być dużymi zmianami a inne drobnymi szczegółami, które jednak robią różnicę.

Zaczniemy podejścia, w którym wspólny model może być stosowany jako narzędzie komunikacji w celu:
- uświadomienia wszystkim złożoności domeny
- zrozumienia kosztów zmian
- świadomego zaciągania długów technicznych
- lepszego rozumienia swojego biznesu przez kleinta

Następnie nazwiemy typowe problemy jakie miewa większość modeli:
- zbytnie uogólnienie
- brak różnienia technik uogólnienia i abstrahowania
- modelowanie tuzinów specjalnych przypadków zamiast znalezienia głębokich reguł
- brak modelu dla złożoności esencjonalnej
- pominięcie modelu czasu

Główna część zostanie poświęcona konkretnym technikom modelowania, które mogą być pomocne na poziomie procesu, na poziomie komunikacji oraz na poziomie architektury i implementacji.

Test Driven Traps

Jakub Nabrdalik

Czy masz czasem poczucie, że testy Cię spowalniają? Czy masz sytuacje, gdy mała drobna zmiana, działająca w runtime, powoduje 200 nieprzechodzących testów? Czy boisz się zrobić prosty refactoring, bo przekopanie wszystkich testów jest ponad Twoje siły? Czy masz czasem poczucie, że pisanie testów nie ma sensu?

Jeśli tak, jest duża szansa, że zabetonowałeś sobie aplikację testami. Test Driven Deveopment jest jak GO: zasady są proste, łatwo zacząć, ale sensowny poziom osiąga się po latach praktyki.

Przedstawię typowe błędy, które popełniają początkujący i doświadczeni użytkownicy TDD, oraz sposoby radzenia sobie z nimi i sztuczki, których się nauczyłem w trakcie ośmiu lat korzystania z TDD.

Naucz się na błędach innych, albo będziesz je powtarzał.

Prezentacja jest skierowana zarówno do początkujących jak i bardziej zaawansowancyh, którzy spotykają się z opisanymi na początku problemami. Przykłady będą z wykorzystaniem Spocka, JUnita, Mockito, Javy i Grooviego.

Co piszczy w Javie?

Jakub Kubryński

Jak to się dzieje, że znów w logach widzę PermGen? Czemu wywołanie tego serwisu tak długo trwa? Czemu maszyna co jakiś czas się dziwnie przytyka? Ile pamięci będzie potrzebowała nasza aplikacja przy podwojeniu liczby danych? Co próbuje do Ciebie powiedzieć Twój JVM? Jak go zrozumieć i wyłuskać potrzebne informacje?

Podczas prezentacji zobaczymy jakie możliwości otwierają przed nami profilery. Zweryfikujemy czy słusznie dorobiły się opinii “tajemnych instrumentów” i czy faktycznie są takie straszne jak się zwykło o nich mówić. Przeprowadzimy także kilka praktycznych eksperymentów, które pozwolą wyrobić własne poglądy i zbudują podstawy do wykorzystania tego typu narzędzi w przyszłości.

Krótka historia czasu

Tomasz Nurkiewicz

Jaka jest różnica czasu między Warszawą a Sydney? Odpowiedź na to pytanie jest zaskakująco trudna. Równie zaskakującym jest jak wielu programistów tej trudności nie dostrzega. Niby po co? Bo niemal co roku na światło dziennie wypływają zawstydzające błędy w oprogramowaniu, wynikające z niewiedzy bądź lekkomyślnego traktowania... czasu w systemach komputerowych.

Podczas tej prezentacji spróbuję pokazać, jak ważne jest świadome operowanie czasem podczas pisania oprogramowania. Nie będziemy (prawie) narzekali na klasę java.util.Date, ale skupimy się na fundamentalnych nieporozumieniach i błędach. Zobaczymy w przykładach fatalne skutki beztroskiego i nieumiejętnego obchodzenia się z czasem.

Nauczymy się także jak przechowywać, przesyłać i przetwarzać czas oraz jak testować systemy zależne od czasu (czyli w zasadzie wszystkie). Nie spodziewajcie się eksploracji takiego czy innego API. Skupimy się raczej na zrozumieniu praw rządzących upływem czasu i ich odpowiednim modelowaniem w naszych programach.

Moda na REST - o tworzeniu pięknych API

Tomasz Cejner

Gdy termin RESTful web services stał się jednym z gorętszych buzzwordów ostatnich lat, zastanówmy się co to tak naprawdę oznacza, jak należy projektować naprawdę "REST-owe" serwisy i dlaczego warto to robić dobrze.

Nie będzie o frameworkach i bibliotekach, więcej o tym jak tworzyć eleganckie i piękne API, tak by ich użytkownicy chętnie z nich korzystali.

Speakers

Jeff Sutherland

After graduating from the military academy at West Point, Jeff served as a fighter pilot in the Vietnam War, and after returning home, he continued his studies for a Master's Degree mathematics, statistics and computer science at Stanford and a Ph.D. in radiology from the University of Colorado, where he then worked as a researcher and lecturer.

In 1983, he moved to the IT industry, where he held various leadership roles (CTO, VP of Technology) in organizations implementing complex IT projects. The experience gained during this time led him to the creation of Scrum, which was first presented in 1995 at the OOPSLA conference.

Since then, Jeff continued his work as a manager, but at the same time kept spreading knowledge of Scrum all over the world and helped to apply it at hundreds of groups and organizations. Currently Jeff serves as the President of the Scrum Inc., President of the Scrum Foundation and senior advisor to investment funds OpenView Venture Partners.

Stuart Halloway

@stuarthalloway is a founder and President of Relevance. He is a Clojure committer, and a developer of the Datomic database.

Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.

Thomas Sundberg

Thomas Sundberg is a consultant based in Stockholm, Sweden. He has a Masters degree in Computer Science from the Royal Institute of Technology, KTH, in Stockholm. Thomas has been working as a developer for more than 20 years. He has taught programming at The Royal Institute of Technology, KTH, one the leading technical universities in Sweden. Thomas has developed an obsession for technical excellence. This translates to Software Craftsmanship, Clean Code, Testing and Automation.

Thomas is also a speaker at different conferences and developer venues, including eXtreme Programming XP, Agila Sverige, Öredev, Turku Agile Day, Agile Central Europe, GeeCON, Java Developer Day, Agile By Example, Scandinavian Developer Conference and Agile Testing Days.

Thomas runs a blog where he writes about programming, Software craftsmanship and whatever problem he wants to share a solution about. It can be found at http://thomassundberg.wordpress.com/

Sławek Sobótka

Programujący architekt oprogramowania i trener w firmie Bottega IT Solutions, specjalizujący się w technologiach Java i efektywnym wykorzystaniu zdobyczy współczesnej inżynierii oprogramowania.

Do jego zainteresowań należy szeroko pojęta inżynieria oprogramowania: architektury wysokowydajnych systemów (w szczególności CqRS), modelowanie (w szczególności DDD), wzorce, zwinne procesy wytwórcze. Hobbystycznie interesuje się psychologią i kognitywistyką.

Entuzjasta Software Craftsmanship. W wolnych chwilach działa w community jako: prezes Stowarzyszenia Software Engineering Professionals Polska, lider lubelskiego Java User Group, publicysta w prasie branżowej i blogger.

Jakub Nabrdalik

Jakub Nabrdalik is a Solution Architect at TouK, which means completely nothing except that he jumps into all the roles in software development: from analyzing requirements, leading teams, to his favorite: programming. As he does almost everything in the process of software development, he is equally bad at everything. Because he's not too smart and he has hard times understanding anything complex, he prides himself on writing simple, readable and maintainable code, something other folks call „craftsmanship” (not to be mistaken with „crapmanship”). You can meet him at Agile Warsaw, Warsaw Java User Group or find his blog at blog.solidcraft.eu. Jakub started commercial programming about 2003 and does TDD since 2005 in several different languages including Groovy, Java, C# and PHP.

Jakub Kubryński

Zawodowo związany z PayU z ramienia którego odpowiadam za ogniwo rozwojowe w Warszawie.

Prywatnie czuję się mocno przywiązany do pakietu java.util.concurrent i klasy sun.misc.Unsafe. Poza tym pasjonują mnie lekkie aplikacje, w których stosunek kodu do dostarczanej funkcjonalności jest jak najmniejszy :)

Tomasz Nurkiewicz

Na programowaniu spędził już połowę życia, od 6 lat zawodowo w Javie. Uwielbia back-end, toleruje JavaScript. Pasjonat Springa i języków około-Javowych. Rozczarowany jakością tworzonego oprogramowania (jakże często swojego!), nie znosi długich metod i ukrytych efektów ubocznych. Zakochany w wykresach, analizie danych i raportowaniu. Redaktor techniczny książki "Learning Highcharts". Uważa, że komputery wymyślono by programiści mogli automatyzować powtarzalne i nudne zadania. Także własne.

Mieszka w Oslo, gdzie pracuje nad platformą track & trace. Posiada certyfikaty SCJP, SCJD, SCWCD i SCBCD. Członek zespołu scala.net.pl, zaangażowany w open source. Wyróżniony DZone's Most Valuable Blogger. Niegdyś aktywny na StackOverflow.

Tomasz Cejner

Tomek od 20 lat usiłuje programować komputery z różnym skutkiem, a obecnie jest senior developerem w krakowskim start-upie SmartRecruiters, gdzie - jak w każdym startupie - próbuje zmienić świat. Zwolennik rozwiązań eleganckich i minimalistycznych rozwiązań, w myśl "mniej znaczy więcej". Gdy nie programuje w Javie pasjonuje się technologiami mobilnymi, programuje w systemie iOS i gotuje dania kuchni orientalnej.

Register NOW!

Stay connected

Charities

Szlachetna Paczka

Partners

  • Touk
  • Infolet
  • Procognita
  • ALE Krakow
  • FluidCircle

Location

Best Western Premium Krakow Hotel
ul. Opolska 14a
Krakow, Poland http://www.bestwesternkrakow.pl

© 2010, 33rd Degree Grzegorz Duda "Developers World" email: kontakt@dworld.pl phone: +48 691 793 877