August 22, 2018

Agile in a kitchen or design?

My two favorite topics just next to the technology are food and design. I love both and I think about both of them most of the time. Therefore, a question appeared in my head: "Does Agile works just for a software development or is it a way of workflow management also in any other areas we will choose?"

Agile in kitchen

Once sitting in a Viennas' restaurant on a meeting brought me to a topic. Can you apply agile framework somewhere between deliciously looking food on a plate and rushing chefs preparing the food? I think it sounds pretty funny, but I do believe you can. In a discussion we had, we grabbed this idea and started going for it.

I have to agree, it was fun to think out of a box in this agile implementation. Still, the conclusion we got to is following. Backlog would be the papers you stick on the wooden beam for the chef to work them off. Of course, the chef relies on given priority of the order. It means person creating chef's backlog knows perfectly the orders and has the ability to organized them accordingly. He might be a Scrum master of your kitchen. As the process is optimized all the food delivery to your customer is once again faster, chefs/waiters/customers less stressed and restaurant is making for sure a bigger profit.

Agile in design

As agile processes can be implemented within any workflow, obviously with a bit of effort. It comes in one's mind to implement it in Design as well as it can be very effective for websites and apps. For instance, you may begin from a user persona that you’ve created, outlining the needs of your target user and using that to branch out and identify the features required. In many organizations, designers span multiple teams (or even products). However, an iterative workflow will see you sitting next to the developer and working in tandem to achieve each iteration as you go.

Understanding the collaborative working style and learning how to estimate will allow you to operate more effectively within a design team. And then, after all, there is Lean UX vs. Agile UX. Many argue that Lean UX is a meaningless term, that doesn’t differ from much older Agile UX and well, it is that way. Exactly, as it is said Lean UX describes methods and their practical application in dynamic environment of a Lean Startup. Agile UX describes update of Agile Software Methodology with UX Design methods. The ultimate goal of Agile UX is to unify developers and designers in the Agile process of product development. Interestingly enough most of the Lean UX teams will actually use Agile UX to coordinate their software development.

So, stay open-minded. Agile is not just for software development? It can be implemented almost anywhere, even in marketing. But let's talk about this topic later.

Our team

July 7, 2018

Does a developer must have a pet project?

Having a pet project - a project being developed in your free time - can be a lot of fun. Give me a free week and option between spending the whole time on the beach or possibility to work on my stuff, I will probably take #2. Don't get me wrong, who doesn't like vacation? But when as the idle time raises, I'm getting bored and the itch to work on my pet projects grows.

Yet by being a software developer, there is an unhealthy assumption that everyone needs to have a pet project. There are even hiring managers, who won't hire you if you don't have some. It's a badge you're committed to your profession. Right?

Well, not really. Just the existence of this unspoken yet important rule can suck all fun from that. When you're pushed to choose and finish project, it could feel like a work. With the difference you aren't paid for it. Can't your previous work experience and interview itself speak for you better? It's not that a surgeon is doing surgeries on hamsters in his free time to prove something to someone.

The artist need to have his portfolio prepared because he can't just go to an interview and spend several hours drawing or prove his abilities from a talk. It's harder for a software developers to maintain a portfolio. You most probably aren't allowed to take some code from your company which represents your skills. Even if you could, a method, class or few lines of code out of context speaks nothing about you.

So having a pet project makes sense and it makes sense even more, when you're fresh out of school. But let's be honest, your first contact with hiring manager is through your CV, not a GitHub repository. And even the most impressive pet project won't overshadow the interview.

"Hey, you answered all my questions well and you worked for 5 years in a big and well known company. Sadly, your Github account is empty. I hope the time spent with your kids was more important. Not hired."

Working overtime and then working again at home (in front of PC) is just not healthy. It's not good for your eyes, back, blood pressure nor blood sugar level. Don't feel bad that you don't work after work. Yes, having a pet project can be a lot of fun. It allows you to learn new technologies you wouldn't be able to meet in your job.

There is a great sense of ownership as you're the owner of project in most cases. By working for example on a computer game, you can learn a totally different skill set, like sound design, music composing or 3D modeling (please throw away the stereotype that software developer cannot do an art). Not necessary something useful for, let's say, FinTech developer, but it's still a lot of fun and that's what matters if you ask me.

As always, everything is about compromises, this topic included. Not having a pet project can be a disadvantage and spending all free time on them is not good either. Instead of having a bunch of unfinished ambitious projects, try to came with one, small and enjoyable. Maybe even useful. Do you like playing games? Try to learn some game engine and participate in Game Jam - events when individual developers or small groups have to design and make a game in very limited time (often few days).

My favorite type of game related development is extending game engine with plugins. The scope of them is usually small, it's something which solves my issue and it can be useful to many more people. Even having a small desktop utility is better than nothing. On the other hand, as praiseworthy as the contributing to community developed open source projects is, it's not very presentable. Try to have at least one project solely developed by yourself.

To conclude my thoughts in a tl;dr manner, don't feel bad for not coding in your free time, if your pet project doesn't bring you a joy, throw it away and think about your mental and physical health.

Our team