<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aga Zaboklicka</title>
    <description>The latest articles on DEV Community by Aga Zaboklicka (@agazaboklicka).</description>
    <link>https://dev.to/agazaboklicka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F20931%2F2e92694f-73a8-48e3-b121-bc6aa303e439.jpg</url>
      <title>DEV Community: Aga Zaboklicka</title>
      <link>https://dev.to/agazaboklicka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agazaboklicka"/>
    <language>en</language>
    <item>
      <title>Nevertheless, Aga Coded</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Thu, 08 Mar 2018 07:08:35 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/nevertheless-aga-aboklicka-coded--2am6</link>
      <guid>https://dev.to/agazaboklicka/nevertheless-aga-aboklicka-coded--2am6</guid>
      <description>&lt;p&gt;I wanted to quit writing software for good.&lt;/p&gt;

&lt;p&gt;Nevertheless, I coded. And I still do.&lt;/p&gt;

&lt;p&gt;I've been a software developer for 3 years then. And I totally didn't feel like getting up and going to work. I struggled with my tasks and worked much slower than I used to. I tried to look for another job but it didn't go well. I feared that I would never get another programming job. And I didn’t want to look at the code ever again. I felt mentally and physically exhausted. Maybe even depressed.&lt;/p&gt;

&lt;p&gt;But I've got a great job. I worked remotely and had time to travel. I had a supporting boss and great coworkers. But I still felt like something's amiss.&lt;/p&gt;

&lt;p&gt;Then one night I woke up with this crazy idea: I'll take a break from my life and go to Japan.&lt;br&gt;
I was so excited I couldn't sleep. I set up with my boss organized everything within a week and two months later I was on the plane heading for Japan. 3-months-long unpaid vacation.&lt;/p&gt;

&lt;p&gt;It was great. The first month was full of sightseeing in Kansai and volunteering in the guest house. After first few weeks though when I already got used to living in Kyoto I started to think my life over. Where do I want to be by the end of next year (it was December, you know)? What do I want to do? I started to ask myself those questions and figured out all the stuff but work goals.&lt;br&gt;
The whole vacation went by quickly, as it usually does. I came back still not knowing how to change my profession.&lt;/p&gt;

&lt;p&gt;I never did. I didn't even change my job. I didn't need to anymore.&lt;/p&gt;

&lt;p&gt;When I got back I restored my faith in programming. I ended up with an amazing project. I had some time to ramp up and gradually ease my way back into programming. I've got new, more interesting and challenging tasks. James, my project manager at the time, was one of those rare species that knows how to say no so I was never overloaded with work. If I ever had to pull long hours I could compensate for it with a breather later on. It all went to place.&lt;/p&gt;

&lt;p&gt;I knew where my life was heading and I noticed that being a software developer is fun.&lt;/p&gt;

&lt;p&gt;But there's one more thing that really, really helped me.&lt;/p&gt;

&lt;p&gt;Conferences.&lt;/p&gt;

&lt;p&gt;I went for my first software development conference way too late. It was just a few months after I came back from Japan. It gave me quite a kick and made me wonder why was I there so late? I've met a whole bunch of like-minded developers. Developers sharing their stories about overcoming work, code and life-related troubles.&lt;/p&gt;

&lt;p&gt;I'm more mindful of how I work since that year. I had time to notice, that having time and space to do something fun that's not writing code helps a lot. It helps me to stay motivated and productive in the long run.&lt;/p&gt;

&lt;p&gt;Also posted on &lt;a href="https://jumpstart.blog" rel="noopener noreferrer"&gt;https://jumpstart.blog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I began to code because...
&lt;/h2&gt;

&lt;p&gt;While studying electronics I got hooked on designing software more than hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  I recently overcame...
&lt;/h2&gt;

&lt;p&gt;The barrier to getting a first full-fledged programming job in a new country (Canada)&lt;/p&gt;

&lt;h2&gt;
  
  
  I'm excited about...
&lt;/h2&gt;

&lt;p&gt;Clean code and having my code properly reviewed last few days...&lt;/p&gt;

&lt;h2&gt;
  
  
  My advice for allies to support women and non-binary folks who code is...
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Find a mentor, a job you like and a team that supports you.&lt;/li&gt;
&lt;li&gt;Pick up your battles and voice your concerns when you feel something's not right.&lt;/li&gt;
&lt;li&gt;Ask for what you need&lt;/li&gt;
&lt;li&gt;And, most importantly, &lt;strong&gt;whatever happens, keep going.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wecoded</category>
    </item>
    <item>
      <title>How to write a SOLID dev resume to be 2018 STAR</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Mon, 22 Jan 2018 06:23:58 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/how-to-write-a-solid-dev-resume-to-be-2018-star-3h8a</link>
      <guid>https://dev.to/agazaboklicka/how-to-write-a-solid-dev-resume-to-be-2018-star-3h8a</guid>
      <description>

&lt;p&gt;&lt;em&gt;The post comes from &lt;a href="https://jumpstart.blog/2018/01/21/how-to-write-solid-dev-resume-to-be-2018-star/"&gt;my blog&lt;/a&gt;, where you can find my resume (more or less) in *.pdf if you're interested.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I've been coaching IT people with their job search and resume writing since the end of November. And I've noticed that a lot of us struggle (and yes, I do too) with writing this scary piece of paper. So here is the compilation of the knowledge and most common tips I gave so far.&lt;/p&gt;

&lt;h3&gt;
  
  
  KISS - Keep it short and simple
&lt;/h3&gt;

&lt;p&gt;A resume is your marketing piece to encourage recruiter or hiring manager to interview you (and not an elaborate essay on your experience/projects). Your resume shows your most important and relevant skills for the position you apply for. I'm not telling you to do a one-pager (this info is long outdated), but 2 pages are enough space to give the other person of who you are and what you know.&lt;/p&gt;

&lt;h3&gt;
  
  
  Make it SOLID (as in SOLID by Uncle Bob)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Single Responsibility Principle
&lt;/h4&gt;

&lt;p&gt;One resume for one position/one job posting. Your resume will be different for IT Architect Role than for Senior Software Engineer position. And it'll be different for Senior Software Engineer in ABC Company and for XYZ Corp.&lt;/p&gt;

&lt;h4&gt;
  
  
  Open/Close
&lt;/h4&gt;

&lt;p&gt;Close it for modification by opening it up for extension: you'd want to extend your resume by adding extra info in cover letter by  there (yeah I know it's not 100% like this in open/close but I think you can relate ;))&lt;/p&gt;

&lt;h4&gt;
  
  
  Liskov substitution
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;“Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”&lt;/em&gt;&lt;br&gt;
Meaning: if you were able to do something as a junior it's you're still capable of doing it with more experience. &lt;br&gt;
DRY comes in handy here. So please &lt;strong&gt;don't repeat yourself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There's one exception here, though. If what you did in each job is a basic need for the position you're applying it's good to showcase throughout your career. E.g.: applying for JavaScript Dev describe all JavaScript development roles/tasks. Tweak it so they don't seem the same, e.g:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Software Developer, ABC company&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developed, maintained, debugged and fixed bugs in distributed Java and JEE applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Software Developer, XYZ Corp.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Involved in full-stack software development based on Java, Struts, JavaScript, Hibernate and DB2&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Interface segregation principle
&lt;/h4&gt;

&lt;p&gt;Many role-specific resumes are better than one generic resume. (There's nothing more to add to it)&lt;/p&gt;

&lt;h4&gt;
  
  
  Dependency inversion principle
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;"High-level modules should not depend on low-level modules. Both should depend on abstractions.  Abstractions should not depend on details. Details should depend on abstractions."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your abstraction is the job you apply for so everything you write should be based on that job/job posting. Keep only the details you're asked for in the job description. Again KISS works nicely here too :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Start with master resume
&lt;/h3&gt;

&lt;p&gt;A master resume is like a database of everything you did thus far. It's a great reference point for your future resumes and lists all or the most important skills and accomplishments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accomplishments instead of tasks
&lt;/h3&gt;

&lt;p&gt;Few accomplishments are better than just to list your duties. E.g:&lt;br&gt;
&lt;strong&gt;Task&lt;/strong&gt;: Wrote JUnit tests&lt;br&gt;
&lt;strong&gt;Accomplishment&lt;/strong&gt;: Assured expected behavior of applications by writing JUnit tests and ensured 85% code coverage&lt;/p&gt;

&lt;p&gt;You can find a lot of generic articles on how to turn your task into accomplishments, like &lt;a href="https://www.themuse.com/advice/resume-revamp-how-to-turn-your-duties-into-accomplishments"&gt;this one on The Muse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are still not sure on how to approach it here's a little advice:&lt;/p&gt;

&lt;h3&gt;
  
  
  Be a STAR of your resume
&lt;/h3&gt;

&lt;p&gt;Think about a &lt;strong&gt;Situation&lt;/strong&gt; when you performed that &lt;strong&gt;Task&lt;/strong&gt;.&lt;br&gt;
What &lt;strong&gt;Action&lt;/strong&gt; did you take and what was the &lt;strong&gt;Result&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Then write it in POR format:&lt;br&gt;
&lt;strong&gt;P&lt;/strong&gt;ast tense action verb&lt;br&gt;
&lt;strong&gt;O&lt;/strong&gt;bject of your statement&lt;br&gt;
&lt;strong&gt;R&lt;/strong&gt;esult of your action&lt;/p&gt;

&lt;p&gt;And try to add some keywords in between.&lt;/p&gt;

&lt;p&gt;E.g: &lt;em&gt;Guided a team of 4 developers using &lt;strong&gt;Kanban&lt;/strong&gt; to design, configure, and test &lt;strong&gt;RESTful&lt;/strong&gt; loyalty cards management system run on &lt;strong&gt;RedHat Linux&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;I welcome all questions, so don't hesitate to ask :)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;


</description>
      <category>resume</category>
      <category>career</category>
      <category>careerchange</category>
    </item>
    <item>
      <title>Are you (programming) in your comfort zone? Please don’t.</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Sun, 12 Nov 2017 00:43:00 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/are-you-programming-in-your-comfort-zone-please-dont-69i</link>
      <guid>https://dev.to/agazaboklicka/are-you-programming-in-your-comfort-zone-please-dont-69i</guid>
      <description>

&lt;p&gt;&lt;em&gt;Originally posted at &lt;a href="https://jumpstart.blog/2017/11/11/are-you-programming-in-your-comfort-zone-please-dont/"&gt;Jump Start Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I worked as a software developer using only Java tech stack for over five years. And I'm pretty comfortable with any Java code. I started playing out with JavaScript, namely node.js, just recently. JS is similar in many ways to Java but it's different. As Java dev, I've seen JS as quite a dirty front-end tool. Using node made me appreciate the language and shift my thinking processes. And the more I used it the more fun I had. And now I'm using MEAN stack at work. And it's soooo exciting :D&lt;/p&gt;

&lt;p&gt;I wasn't comfortable with using node at first. It made me anxious. I struggled with expressing my thoughts properly in JS. I wasn't sure if the code I wrote follows good practices or any architectural standards. It was outside my comfort zone.&lt;/p&gt;

&lt;p&gt;And you also have one. A comfort zone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The comfort zone
&lt;/h2&gt;

&lt;p&gt;The comfort zone in a place where you feel safe. Comfortable. It's where many people operate.Â &lt;/p&gt;

&lt;p&gt;Everyday activities that you’re used to or that don’t make you feel anxious and uneasy are part of your comfort zone. It’s the location of the skills and abilities you’ve acquired. You're pretty productive in your comfort zone.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why should you step out of your comfort zone?
&lt;/h2&gt;

&lt;p&gt;You're safe. You're productive. You don't feel anxious or stressed out.&lt;/p&gt;

&lt;p&gt;But then you're bored. You don't feel challenged. You can’t make progress or build skills in the comfort zone since it consists of the abilities we can already do easily. It's a stagnation.&lt;/p&gt;

&lt;p&gt;And as a software developer, if you're not moving forward it means you're already moving backward.&lt;/p&gt;

&lt;p&gt;The biggest benefit of stepping out of your comfort zone is your personal growth. When you decide on a task that's outside of your comfort zone and then complete it, your confidence will grow. You'll feel accomplished.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outside of comfort zone
&lt;/h2&gt;

&lt;p&gt;Just outside the comfort zone is a learning zone. The skills and abilities in the learning zone are barely out of reach. They’re neither so far away that you panic nor close enough to be too easy.&lt;/p&gt;

&lt;p&gt;Since a person can only make progress by choosing activities in the learning zone, it’s important to be able to find your learning zone. The learning zone may be wide for some and thin for the others. But as you start to challenge yourself you begin to extend that zone.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to know you're moving forward
&lt;/h2&gt;

&lt;p&gt;If you don't know where your learning zone is, try testing yourself. If the task at hand is challenging enough to have you engaged (and not bored), but not hard enough to discourage it means you're in the learning zone.&lt;/p&gt;

&lt;p&gt;Here are some examples of some task you can try to challenge yourself (bigger and smaller):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;learn another IDE (try Visual Studio Code or IntelliJ if you're using Eclipse)&lt;/li&gt;
&lt;li&gt;use different OS (for example try Linux when you're used to Windows, or Fedora when you're used to Debian based OS and don't feel like working on Windows)&lt;/li&gt;
&lt;li&gt;use command line instead o the user interface&lt;/li&gt;
&lt;li&gt;use vim instead of notepad/scratch&lt;/li&gt;
&lt;li&gt;learn a different programming language (like JS when you're using Java)&lt;/li&gt;
&lt;li&gt;learn a programming language that uses different programming philosophy (for example if you're used to object oriented languages try something functional:
Clojure when you're programming in Java, C# &amp;amp; Objective-C)&lt;/li&gt;
&lt;li&gt;if you read only technical books try reading some fiction (really)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Don't get yourself into panic zone
&lt;/h2&gt;

&lt;p&gt;Outside of a learning zone is a panic zone. Like the comfort zone, you can’t make progress in the panic zone. Activities in the panic zone are so tough that you don’t know how to approach them. Instead, you become so anxious you can no longer think. Or you're uncomfortable and possibly discouraged.&lt;/p&gt;

&lt;p&gt;For example, if you only used object oriented Java over your entire programming life and have no idea how to approach Haskell try learning .net first. Or try using lambdas and learn functional programming in Java.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stay in the learning zone
&lt;/h2&gt;

&lt;p&gt;As you operate in the learning zone, you will get more comfortable with the current skills and they’ll start to move into the comfort zone. As this happens, tasks that were once a part of the panic zone will move into the learning zone and the cycle will continue.&lt;/p&gt;

&lt;p&gt;Good luck in your learning endeavors!&lt;/p&gt;


</description>
      <category>comfortzone</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>It takes time to make a team...</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Wed, 18 Oct 2017 20:37:38 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/it-takes-time-to-make-a-team-bgl</link>
      <guid>https://dev.to/agazaboklicka/it-takes-time-to-make-a-team-bgl</guid>
      <description>&lt;h2&gt;
  
  
  Building a team
&lt;/h2&gt;

&lt;p&gt;I went sailing some time ago. For years I used to sail minimum once a year with a group of my friends. But as we got older and built our own lives it became harder to get a group together.&lt;/p&gt;

&lt;p&gt;So this year I decided to join another crew. It wasn’t just me thinking that away so we ended up on a boat without knowing each other. Group of total strangers that never met each other before. The only thing we knew about each other was that we all sail. But our skills, sailing knowledge, habits and expectations were completely different. We didn’t know what to expect, what position to take and what responsibilities. Every task was a struggle. The first day was too long and tedious.&lt;/p&gt;

&lt;p&gt;It took few days for us to form somehow organized crew. As we got to know each other we started to appreciate and understand other participants. We started to trust. But at first, it was a total disaster.&lt;/p&gt;

&lt;p&gt;It’s similar in whenever the team has to form. Also so it is in software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stages of forming the team
&lt;/h2&gt;

&lt;p&gt;A new team doesn’t perform well when it first comes together. Forming a software team takes time. And there are four noticeable stages of that development process: forming, storming, norming and performing were identified by Bruce Tuckman in 1965. Adjourning, a fifth stage, was added by Tuckman about ten years later.&lt;/p&gt;

&lt;p&gt;I'm not going to describe those stages here (this time), but if you're interested you can go on and check the rest of the post on my &lt;a href="https://jumpstart.blog/2017/10/18/it-takes-time-to-make-a-team/"&gt;blog.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>team</category>
      <category>teamwork</category>
    </item>
    <item>
      <title>If you were hit by a bus tomorrow would your project be dead in the water?</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Thu, 03 Aug 2017 08:10:25 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/if-you-were-hit-by-a-bus-tomorrow-would-your-project-be-dead-in-the-water</link>
      <guid>https://dev.to/agazaboklicka/if-you-were-hit-by-a-bus-tomorrow-would-your-project-be-dead-in-the-water</guid>
      <description>

&lt;p&gt;&lt;em&gt;Originally posted on my &lt;a href="https://jumpstart.blog/2017/08/01/if-you-were-hit-by-bus-tommorow-would-the-project-be-dead-in-the-water/"&gt;blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  If you were hit by a bus tomorrow...
&lt;/h2&gt;

&lt;p&gt;If you were hit by a bus tomorrow (knock on wood) would your project get stuck?&lt;/p&gt;

&lt;p&gt;I still remember when one I worked on did.&lt;/p&gt;

&lt;p&gt;Well, I wasn't exactly hit by the bus, but from the project standpoint, it was close enough.&lt;/p&gt;

&lt;p&gt;We worked on an important security change and I was the only dev assigned to the module. The job could be done within acceptable time frame by a single developer.&lt;/p&gt;

&lt;p&gt;But I got keratitis (eye's cornea inflammation) and had to take three-weeks-long sick leave (with no option to work on the computer).&lt;/p&gt;

&lt;h2&gt;
  
  
  Yikes! We’reÂ dead in the water
&lt;/h2&gt;

&lt;p&gt;There was no developer to take over my tasks. When I got back the project was late. The new functionality was delivered on time only because we pulled quite serious overtime later on. It almost got me sick again.&lt;/p&gt;

&lt;h2&gt;
  
  
  if(busFactor == 1)
&lt;/h2&gt;

&lt;p&gt;The bus factor is the number of people on the team who have to be hit by a bus to get the project in serious trouble.&lt;/p&gt;

&lt;p&gt;Take a look at your team.&lt;/p&gt;

&lt;p&gt;Is there a person you can't complete the work without? Will you be able to function when the most experienced developer leaves or will you miss your commitments?&lt;/p&gt;

&lt;p&gt;If the answer is, “Yikes! Without him/her we’d be dead in the water, your bus factor is one. Prepare for a project delay or sprint failure in the near future.&lt;/p&gt;

&lt;h2&gt;
  
  
  fix(busFactor);
&lt;/h2&gt;

&lt;p&gt;There is no quick fix or simple solution to the low bus factor.Implementing certain practices, though, will help:&lt;/p&gt;

&lt;p&gt;Implementing some practices, however, will help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work in a shared space and/or daily stand-upsÂ (&lt;em&gt;communication gets better&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Regular code reviews (ideally real-time) and pair programming (&lt;em&gt;you share your knowledge about the module you work on&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Test-driven development (&lt;em&gt;if someoneÂ gets stuck, she/he can check the intent of the code in tests&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Team focused on one project at a time (&lt;em&gt;team focus shifts fromÂ specific specializations (such as “being the SQL guy”) to how to work together to deliver a specific set of changes&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;


</description>
      <category>busfactor</category>
      <category>softwareproject</category>
    </item>
    <item>
      <title>Feeling stuck? Getting past the programming blockade</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Tue, 01 Aug 2017 09:25:37 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/feeling-stuck-getting-past-the-programming-blockade</link>
      <guid>https://dev.to/agazaboklicka/feeling-stuck-getting-past-the-programming-blockade</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published on my &lt;a href="https://jumpstart.blog/2017/07/08/feeling-stuck-getting-past-the-programming-blockade/"&gt;blog.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The production system broke last Tuesday...
&lt;/h2&gt;

&lt;p&gt;I got a phone call last TuesdayÂ around 8 pm. The operator told me a daily task broke in the production and I had to take care of it as soon as possible.&lt;/p&gt;

&lt;p&gt;I turned on my laptop and connected to the customer's system. I checked the error logs and found a decent error in the file. I found the place where the exception was thrown. Then I analyzed the code in the function.And I had no idea what was the real cause of the system error. No clear bug in the code... I looked at it from every angle and couldn'tÂ find a solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  I tried to fix it but got stuck...
&lt;/h2&gt;

&lt;p&gt;And I still had no idea what was the real cause of the system error. No obvious bug in the code... I looked at it from every angle and couldn'tÂ find a solution. I got stuck.&lt;/p&gt;

&lt;p&gt;I finally gave up. It was late and I knew we can re-run the task in the morning when I find the solution.&lt;/p&gt;

&lt;p&gt;I logged off, talked for a moment t my little brother, made a tea... And then I knew where the problem was. I wentÂ back, checked... And it was right there, in the database!&lt;/p&gt;

&lt;h2&gt;
  
  
  How often do you feel stuck like this?
&lt;/h2&gt;

&lt;p&gt;How often do you get stuck on writing a code to yet another feature?&lt;/p&gt;

&lt;p&gt;You concentrate hardÂ to find a solution to the problem. ThenÂ after a while, you're so frustrated that you decide to grab a tea and rant how a bad day you have? Or you decide to fix a bug in the different part of the software? Then after some time, you come up with a solution that makes you jump back to write code for the first problem?&lt;/p&gt;

&lt;p&gt;The psychologistsÂ call this impression of feeling stuck an impasse. And what comes after a break is anÂ insight.&lt;/p&gt;

&lt;h2&gt;
  
  
  You get stuck when you concentrate too hard
&lt;/h2&gt;

&lt;p&gt;An impasse occurs when you concentrate on something too hard. It's counterintuitive. We were thought at school that to achieve something we struggle with we should try harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  The anxiety inside you
&lt;/h2&gt;

&lt;p&gt;When you're stuck you may feel it's wrong to take a break. You may think you'll lose momentum or the energy you used on solving the problem. As a result, you're getting moreÂ anxious because you can't finish the task at hand. You can even start doubting your problem-solving skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take a break
&lt;/h2&gt;

&lt;p&gt;It's important to take a break in times like this.&lt;/p&gt;

&lt;p&gt;It's when you do something else that you have this 'aha' moment. Â The moment of sudden insight or discovery.&lt;/p&gt;

&lt;p&gt;Here are some ideas to take a break without leaving the office:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;listen to your favoriteÂ song-just listen, concentrate on the lyrics, the music, the vocalist&lt;/li&gt;
&lt;li&gt;watch a youtube video with that song (or try another short video you just want to&lt;/li&gt;
&lt;li&gt;write your name in few different ways&lt;/li&gt;
&lt;li&gt;5-minute meditation&lt;/li&gt;
&lt;li&gt;if meditation is not an option listen to a relaxing music and concentrate on the song&lt;/li&gt;
&lt;li&gt;count close your eyes and count from 300 to 200 (or similar, but backward)&lt;/li&gt;
&lt;li&gt;look out the window and think what the clouds remind you of&lt;/li&gt;
&lt;li&gt;go to make a tea or a coffee&lt;/li&gt;
&lt;li&gt;draw whatÂ was your dream job when you were 6&lt;/li&gt;
&lt;li&gt;anything you can think of, that can grab your full attention for few minutes&lt;/li&gt;
&lt;li&gt;talk to the duck ;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do you take a break?
&lt;/h2&gt;

&lt;p&gt;Let me know what work's for you in the comments. I appreciate new ideas too!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And if you got stuck take a break!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>efficiency</category>
    </item>
    <item>
      <title>Developer under time pressure ? work faster : work better</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Fri, 14 Jul 2017 11:55:46 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/developer-under-time-pressure--work-faster--work-better</link>
      <guid>https://dev.to/agazaboklicka/developer-under-time-pressure--work-faster--work-better</guid>
      <description>

&lt;p&gt;&lt;a href="https://jumpstart.blog/2017/07/13/developer-under-time-pressure-work-faster-work-better/"&gt;Originally published on my blog.&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="c1"&gt;//for those not familiar with ternary operator the title means:&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isDeveloperUnderTimePressure&lt;/span&gt;&lt;span class="o"&gt;()){&lt;/span&gt;
    &lt;span class="n"&gt;workFaster&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;workBetter&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Mind reading and predicting future techniques aren't fully developed yet. So lots of software development projects are late. It get's better when the agile processes are successfully adapted but it's not always the case.&lt;/p&gt;

&lt;p&gt;There's always more work to be done in the project than we initially predicted. Business needs change, we misunderstand the expectations, estimation errors can be also a case. There're lots of reasons something can go wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Improvement" ideas
&lt;/h2&gt;

&lt;p&gt;Here're two common ideas supposed to help get your work done in time:&lt;/p&gt;

&lt;p&gt;You put in more hours.&lt;br&gt;
You compromise the quality of the product.&lt;br&gt;
That's recipe for a disaster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overtime catch up
&lt;/h2&gt;

&lt;p&gt;There might be some benefit in a few extra hours worked on Saturday to meet a Monday's deadline, but you'd want to catch up with your private life at some point.&lt;/p&gt;

&lt;p&gt;Nobody can continually do creative intellectual work for over forty hours a week. Your effectiveness will decline sooner or later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compromise the quality of the product.
&lt;/h2&gt;

&lt;p&gt;Imagine you have to implement new functionality. The manager stays over your head and tells you to work faster. Or tells you there are only 16 hours in a budget to implement the functionality.&lt;/p&gt;

&lt;p&gt;Now, you can do it in a quick, but messy way or take your time to put in place a cleaner design. If you choose instant gratification in that step and implement the change quickly and not cleanly, you'll pay the price in the long run.&lt;/p&gt;

&lt;p&gt;It's called technical debt. Technical debt is anything that should have been done as part of a development but wasn't. Those are unrefactored code, unresolved bugs, missing documentation, missed test cases etc.&lt;/p&gt;

&lt;p&gt;Technical debt is like any other debt—you keep paying on it. Development time is getting longer. Implementation of new changes slows down because of debugging and hard to spot defects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't cut corners. Improve.
&lt;/h2&gt;

&lt;p&gt;Schedule pressure leads to cutting corners, overwork, and growing technical debt. This slowers delivery of valuable features.&lt;/p&gt;

&lt;p&gt;Help to build awareness inside your team about those things and you'll see the great benefits in the future.&lt;/p&gt;


</description>
      <category>technicaldebt</category>
      <category>overtime</category>
    </item>
    <item>
      <title>Inking and thinking in software project </title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Tue, 11 Jul 2017 08:39:50 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/inking-and-thinking-in-software-project</link>
      <guid>https://dev.to/agazaboklicka/inking-and-thinking-in-software-project</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published on my &lt;a href="https://jumpstart.blog/2017/07/11/inking-and-thinking-in-software-project/"&gt;Jump Start blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  It's not the ink–it's the think
&lt;/h2&gt;

&lt;p&gt;“It's not the ink–it's the think,” wroteÂ Robert Mankoff (New YorkerÂ cartoon editor), answering to the question &lt;a href="http://www.newyorker.com/cartoons/bob-mankoff/inking-and-thinking"&gt;how to get ideas for cartoons&lt;/a&gt; by people who want to submit them toÂ The New Yorker. "There really is no trick–you just have to think of them" he said.&lt;/p&gt;

&lt;p&gt;It's the same in creating a software.Â &lt;/p&gt;

&lt;h2&gt;
  
  
  Turning Problems into Code
&lt;/h2&gt;

&lt;p&gt;Writing the actual code is only a small part of the process. Opening IDE to bang out a solution upfront is rarely the case. First, you have to understand the problem and break in into pieces. After some time you will start to see the patterns and solve the problems without too much thinking about them, but even then the more complicated tasks will require quite a think.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Problem
&lt;/h2&gt;

&lt;p&gt;I like to write down the problem.&lt;/p&gt;

&lt;p&gt;I draw it on a whiteboard or on a flipchart. It gives me space to think and write extra ideas or different approaches. I see the dependencies clearer this way. When working on the complicated task IÂ ask myself: What do I know about the system that it's about to be built? What should be built? What goes inside and what's the expected outcome? How it connects with the existing system.&lt;/p&gt;

&lt;p&gt;In enterprise projects, you usually have user stories, requirements etc that help you answer those questions :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking complex programs into pieces
&lt;/h2&gt;

&lt;p&gt;Smaller features are easier to manage. Easier to test. Easier to write. So think in small batches. Complex applications are composed of smaller programs working together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Driving Design with Tests
&lt;/h2&gt;

&lt;p&gt;Think of the result from the start is one of the best software development practices. Developers do this usingÂ test-driven development, orÂ TDD (&lt;a href="http://lmgtfy.com/?q=test+driven+development"&gt;see more in Google&lt;/a&gt;).Â &lt;/p&gt;

&lt;h2&gt;
  
  
  Writing the Code
&lt;/h2&gt;

&lt;p&gt;Figuring outÂ whatÂ you want to write before you figure outÂ howÂ to write it seems an obvious first step. But many developers take a shortcut. They charge straight at the water and dive deep to get out of breath pretty soon.&lt;/p&gt;

&lt;p&gt;Taking the time to design the program speeds things up in the further development. A poorly designed code is hard to maintain and extend.Â The untested, unplanned code in production, requires painful changes to it later.&lt;/p&gt;

&lt;p&gt;And who likes to do the maintenanceÂ only?&lt;/p&gt;

</description>
      <category>code</category>
      <category>planning</category>
    </item>
    <item>
      <title>How to avoid comprehensive documentation/ over-documentation?</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Wed, 05 Jul 2017 10:45:21 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/how-to-avoid-comprehensive-documentation-over-documentation</link>
      <guid>https://dev.to/agazaboklicka/how-to-avoid-comprehensive-documentation-over-documentation</guid>
      <description>&lt;p&gt;Hi!&lt;br&gt;
I think one of the teams I work in is overdocumenting things. It's we do waterfall-like iterations (I work on legacy systems and we do both change requests and production support), and there is some kind of document written at every stage of the project:&lt;br&gt;
1) collecting requirements - the first document&lt;br&gt;
2) after the project was accepted - another document with the same requirements but with more details&lt;br&gt;
3) than high lever design for the system - general architecture overview&lt;br&gt;
4) than more detailed system design up to the point of describing code&lt;br&gt;
It's pretty exhausting and I was wondering how to do it in a smarter way.&lt;br&gt;
What are in your opinion best ways to do project documentation?&lt;br&gt;
Or how to talk the team into more collaborative documentation? I'm not sure how to start the stone soup here...&lt;/p&gt;

&lt;p&gt;Any automation tips/ideas? &lt;br&gt;
For example, for the requirements, I'd like to create one document and extend it over time instead of writing the documentation from the scratch every time and duplicate the information...&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>documentation</category>
      <category>process</category>
    </item>
    <item>
      <title>Kanban board: the way to organize your work even outside the agile project.</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Mon, 12 Jun 2017 10:37:24 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/kanban-board-the-way-to-organize-your-work-even-outside-the-agile-project</link>
      <guid>https://dev.to/agazaboklicka/kanban-board-the-way-to-organize-your-work-even-outside-the-agile-project</guid>
      <description>

&lt;p&gt;This post was originally published &lt;a href="https://jumpstart.blog/2017/06/12/the-benefits-of-kanban-board-even-outside-an-agile-project/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My company uses IBM DOORS connector for JIRA to simplify requirements tracking process. However, the way requirements are transferred to JIRA from DOORS makes it hard to say what the requirement is about. So when I was looking for a way to view the actual requirement my project manager told me about a possibility to create a Kanban board in JIRA.&lt;/p&gt;

&lt;p&gt;It took me a moment to actually pick up the tool - I used the old way coz I've got no idea how to set up the board, then I waited for permission from JIRA admin... The regular corporate way... But when I finally set up my first Kanban board I instantly fell in love. Really... (James, if you'll ever read this: thanks a bunch!)&lt;/p&gt;

&lt;h2&gt;
  
  
  So why to use a Kanban board even outside any agile methodology?
&lt;/h2&gt;

&lt;p&gt;Even though the main purpose of Kanban was to view the requirements without opening them in a new tab the first thing I've noticed is that it's extremely easy to read and helps me manage my tasks without them going awry.&lt;/p&gt;

&lt;p&gt;If you are interested what Kanban board can do for you (even outside the agile process and without JIRA) here are the pros of Kanban board:&lt;/p&gt;

&lt;p&gt;Kanban board is based on a very simple idea. Its shows the workflow in an easy to read, visual way&lt;br&gt;
Kanban enhances just-in-time management system (JIT) of producing only what is required, exactly when it is required and delivered exactly where it is required on time.&lt;br&gt;
The board gives you a visual sign indicating you can start new work.&lt;br&gt;
It helps you remember to start with what you do now and focus on tasks at hand.&lt;br&gt;
It limits work in progress, so it keeps you from working on too many tasks at once.&lt;br&gt;
When you look at properly set up kanban board you know the context of the task i.e. the deadline, project, dependencies, etc:&lt;br&gt;
You can add as many columns as you want (The easiest is well-known SCRUM flow: TODO, In Progress, Done) but you can add fields such as review, integration, closed etc ;) Whatever you feel is needed so you can see what's in what stage of work.&lt;br&gt;
You can divide vertical columns into swimlanes indicating, for example, the due date, story, project or whatever else you want so that you have your work divided into meaningful chunks instead of a long list of TODO tasks without the context.&lt;br&gt;
You can customize task cards by adding colors to them - for whatever purpose you want ;)&lt;/p&gt;

&lt;p&gt;Kanban board can be easily applied in any management system in the world of software development. I believe it helps you avoid mind wrestling with remembering what to do first and helps concentrate on important tasks so if you have a possibility try it, even if you're not a part of a SCRUM or Kanban team ;)&lt;/p&gt;


</description>
      <category>kanbanboard</category>
      <category>organizingtasks</category>
      <category>jumpstart</category>
    </item>
    <item>
      <title>How to C.A.R.E. for a software project?</title>
      <dc:creator>Aga Zaboklicka</dc:creator>
      <pubDate>Tue, 06 Jun 2017 08:31:26 +0000</pubDate>
      <link>https://dev.to/agazaboklicka/hi-im-aga-zaboklicka</link>
      <guid>https://dev.to/agazaboklicka/hi-im-aga-zaboklicka</guid>
      <description>

&lt;p&gt;We, software developers, tend to have some bias towards cutting edge technologies and, in a perfect world, we'd only use them. It's efficiency driven so that's great but sometimes we forget that the code we write is written first to benefit the human and only second for a computer to understand.&lt;/p&gt;

&lt;p&gt;And that's why we should C.A.R.E. about things we do. And C.A.R.E stand for:&lt;/p&gt;

&lt;p&gt;Communication&lt;br&gt;
Assumptions&lt;br&gt;
Requirements&lt;br&gt;
Expectations&lt;/p&gt;

&lt;h3&gt;
  
  
  Communication
&lt;/h3&gt;

&lt;p&gt;Some people may think that the job of the software engineer is just to write code. However, the fact is, a big chunk of our time is spent dealing with other people. So, even if writing code is the part of your job you love the most you still have to communicate.&lt;/p&gt;

&lt;p&gt;Communication is tightly coupled with other three.&lt;/p&gt;

&lt;p&gt;Starting with...&lt;/p&gt;

&lt;h3&gt;
  
  
  Assumptions
&lt;/h3&gt;

&lt;p&gt;We all make them otherwise, we'll never have anything done. The problem here is that what's common sense to you doesn't always have to be a common sense for someone else. So it's wise to communicate assumptions you are making.&lt;br&gt;
And it may be clever to do some fact checking by asking yourself "How do I know this?" before starting to work on something and make sure you are making the same assumptions as everybody else.&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;From assumptions, you can go back and forth to requirements. This refers usually to customer requirements that are one way or another communicated to you. You are supposed to capture them and translate them into an app. Unfortunately, they may be for example vague or inconsistent. If you can't answer the fundamental question: "What do I have to do?" how are you supposed to do that?&lt;/p&gt;

&lt;h3&gt;
  
  
  Expectations
&lt;/h3&gt;

&lt;p&gt;Requirements are often customers expectations but those aren't always the same. And not only your customer have expectations. You have ones. Your manager does. And same goes for everybody else you collaborate with. The main point here is to what others expect from you and explain what you expect from them.&lt;/p&gt;

&lt;h3&gt;
  
  
  C.A.R.E.
&lt;/h3&gt;

&lt;p&gt;When we collaborate with others we have great opportunities and great challenges. And if we remember about those four simple words we'll deliver not only a well-written code but also take C.A.R.E. of a successful outcome of the project we work on and make other people happy.&lt;/p&gt;

&lt;p&gt;This is reblogged from &lt;a href="https://jumpstart.blog/"&gt;https://jumpstart.blog/&lt;/a&gt;&lt;/p&gt;


</description>
      <category>softwareprojects</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
