miguel laginha blogs here

(mainly) geekish jibber-jabber

Where do I stand?

From time to time I’m asked to update my resume, mainly for administrative reasons. I usually keep two versions of it: a personal one and formal HR-ready one. I even keep the latter in the Europass format, which I hate, just so that no one ever complains or suggests enhancements. The personal one however, is free-form. I have it in a pages document, barely formatted and a lot less corporat-y.

I do this because both versions have very different purposes and audiences. The HR version is intended to be included in formal applications to state-funded iniciatives and similar projects. My version exists because I feel the need to say what really matters about me. You know, who I am and what I do. Kind of an anti-pattern.

So if you’re wondering how different both versions are, the simple answer is: very. Indeed.

The formal resume lists facts. It is a set of raw facts including my education and past employees and a rather superficial technical snapshot. Also some nice acronyms and hiring managers buzzwords.

In the informal version of my resume I focus on what kind of person I am and what kind of worker / colleague I would be, if hired. I might not have a large technical description of my role but I think I convey important info nonetheless. I do say stuff such as:

I strongly believe in working smarter, not harder

I love crafting products no matter the technology I’m using, as long as it’s the right one for the job and open source

…which although might not be technically relevant (i.e. doesn’t say which technologies I’ve actually worked with), do say a lot about how I think and act (right?).

A new section I recently added takes this approach even further. I called it ‘stands’. Here’s the rationale: what choices do I make on a daily basis worth telling (even if just for fun)? I don’t think I came up with invaluable information but I find it interesting and refreshing. Plus, it’s got my name written all over it. Take a look and tell me what you think.

Safari over Chrome, Ruby over Python, homebrew over macports, editors over IDE’s, iOS over Android, coffee over tea, markdown over textile, trackpad over mouse, natural scrolling over classic scrolling, books over ebooks, Spotify over Rdio, Simplenote over Evernote, iTerm2 over Terminal, Latex over MS Word, HTML5 over Flash, Postgresql over MySQL, Ember.js over backbone.js.

Isn’t that a nice abstract :-)

Putting some agile pieces together

Leading software development teams is quite different from just being part of one. You get to face new challenges and a whole set of work is expected of you, which you are not accustomed to doing. One of that challenges - and perhaps the most important one - is to get your team to dock onto a software development methodology and get it to ship.

For some time, I have struggled to actually understand the spirit of metholodies (as in the spirit of the law), beyond the written manifests and instructions. That’s the easy part: reading, doing as told and claiming you’re agile. The hard part is understanding why you’re doing that. Why every idea and instruction first came to exist. It’s mcuh easier to blindly follow instructions than to reflect on the purpose of the manifest, don’t you think?

Looking for answers, I have looked for books that could help me. Here’s some of the books I’ve read (or just re-read) in the last couple years:

(Yes, I’m a big fan of the pragmatic bookshelf :-))

The last book was surprisingly the most enlightning to me. It contains a little chapter at the end focusing on the why methodologies are the way they are. It turns out that agile methodologies aren’t supposed to be picked the way you pick #teamcoco over #teamleno. Agile methodologies take the general problem of software development and shipping from a specific standpoint and define a set of practices that are valid within that scope alone. Take scrum for instance. Scrum is all about structure. It defines roles (structuring people) and backlogs (structuring work) and sprints (structuring time), and it glues these with effort estimation, cadence and commitment. The important part is that it’s from a single perspective at software development: organization and structure. That’s the scrum standpoint, that’s the problem scrum tries to solve.

The same is valid for other agile practices such as kanban and XP. Kanban for instance is all about flow and visualization. It’s not meant to help solving organization problems, instead it sets ideas and provides tools for optimizing and schedulling work based on a kanban board, free-form columns etc. EXtreme Programming (XP) is all about engineering practices: TDD, pair programming, etc. It does not describe the process nor provide any schedulling optimization tools. It’s not that either the kanban or the XP guys forgot about it, it’s just beyond their scope. It’s not their problem to solve.

In the end, agile methodologies imply the same as technologies and frameworks nowadays: you have to pick the right tool for the job. You are supposed to find different methodologies useful when facing different problems and use them in a complementary way, not mutually exclusively. There is no such thing as “one agile methodology to rule them all”.

Check out this video on Scrum Vs. Kanban by Daniel B Markham, it goes much further in explaning why scrum and kanban are different and how they can be used together.

Pairing

Wooden pencils

I use pencils almost everyday. I am all for digital but I often feel the need to write on paper before I put it into digital form. Somehow digital sketching and note-taking don’t really work as better as in paper, especially if you’re just brain-dumping stuff. And I don’t think you retain the information if you’re typing as much as if you’re actually writing. Remember in school when you were often told to write things down because it would help you remember stuff later? I don’t think that happens with keyboards.

So I do that on a daily basis. I write things down and then I type them and then I eventually throw away the paper. I find that the physical part of it helps in absorving and concentrating on what you’re doing. It also uncovers an artistic side to your work, as opposed to just feeling mechanical.

Also, lately I’ve been doing something else. I’ve replaced my mechanical pencil with a wooden one. I just happened to notice one in my home office the other day, and it looked perfect. I thought to myself why the hell not. So I took it to work and It’s been funny reminding myself of the wooden smell and the noise it makes writing against paper. Just like kindergarten.

The writing itself looks different with more texture and depth and casual defective strokes. I think that the physical sense of using wooden pencils is kind of lost these days, but it’s something very easy to get to back to using. Even if it’s only for wireframing or quick drawing, try it. You’ll enjoy it.

Why I pick safari

Some of my friends and work colleagues find it surprising that I am currently using safari as my default browser. Most of them use Google Chrome daily, and barely use other browsers for anything. Well, I do admit Safari isn’t perfect, but it ain’t that bad either. Plus, it’s prettier, and that counts a little bit.

Safari has plugins too, which help a lot in improving the browsing experience. Here are a few I find invaluable:

  • AdBlock
  • ClickToFlash
  • Sessions
  • Pinbar

Another great feature of safari is the ability to check what safari tabs are open on other devices, mobile or desktop. In my case, that means a desktop browser, the ipad browser and the ipod browser. That’s iCloud magic that just works and I find it very useful for transfering tabs and choosing what-to-read-where.

Then we’ve got the looks. All three browsers make an effort to look native, but firefox doesn’t feel native. I think that Chrome looks minimalistic enough, but not as mac-y. Take the bookmarks toolbar, for instance:

Safari bookmarks toolbar:

Chrome bookmarks toolbar:

I know some of this sounds silly as it’s just looks, but I do think it makes a difference. It all feels more satisfying.

Even though I find Safari the best browser for daily tasks, I do use Chrome and Firefox for other stuff too. Web development, for instance: I can’t (yet) use Safari web inspector because I find Chrome’s so much intuitive.

As for Firefox, the only feature I do miss in Safari and Chrome is the panorama tab organizer. I love it, and I wish similar extensions existed for chrome or safari. And no, tab sugar doesn’t count.

(I’m afraid to ask for opinions on this, but feel free to leave a comment if you are sure you ain’t gonna start a flamewar (: )

How to Completely Fail at BDD

Take my money

Having lived in Portugal for the most part of my live, I’ve come to realize I’m somewhat limited on the Internet products and services (and content!) I’d easily pay for, but I can’t. And it’s a shame really, because they won’t take the money I’d gladly pay instead of “protecting” content and whoever they think they’re protecting. Here are 3 examples of internet services I’m not allowed to use:

HD online soccer

I love to watch the Barclays Premier League. I don’t care much for Portuguese soccer, or Spanish or Italian. I don’t care much for other sports either. So here’s what I do. Every weekend I go to firstrowsports and watch matches on the Barclays League Channel, which I cannot have on Portuguese cable TV, sitting on my couch.

HD TV shows

I also love watching movies and TV shows, such as the big bang theory, fringe, the office, modern family among others, but I can’t just watch them whenever I like. Legally, that is. I’d pay for saving the time I spend logging into eztv.it, looking for the correct magnet file and waiting for it to download. I’d pay for it to be possible to just sit down on my couch and play them at any time. I’d pay for it, but I also don’t have it.

Music streaming

I’d also pay for music streaming services such as last.fm - which will soon become unavailable in Portugal - spotify and others. I’d pay for those too, but I can’t. Not without using some kind of VPN service.

So, all in all, there’s this guy over there creating a product for me, over here, but I can’t pay for it because I do live across borders. Well, I don’t see any borders, do you?

I don't see any borders, do you?