Yassal Sundman

Continue reading: Customizing the Google Spreadsheet Story Card Generator

Customizing the Google Spreadsheet Story Card Generator

At my current project we use a Google spreadsheet to manage our backlogs. This works really well for storing and sharing the backlog, but it’s not very good for visualizing it. So we print out the stories on cards by copying and pasting each row into a document table cell and reformatting, adding extra labels, and manually inserting priority. Well, that’s what we did the first couple of times, until I found David Vujic’s fantastic Index Card Generator for Google spreadsheets (http://davidvujic.blogspot.se/2011/06/visa-vad-du-gor-eller-dude-wheres-my.html).

Except, we have multiple backlogs in one sheet, our column names aren’t the same, and we use a different layout for the cards. Here’s how we customized David’s script!Continue reading

Continue reading: Test Driving JavaScript: Grunt with Gradle

Test Driving JavaScript: Grunt with Gradle

A few weeks ago Daniel Sundman wrote a blog entry about how to test drive JavaScript with Grunt. Today we’ll talk about how to run your Jasmine Grunt setup using Gradle!

There are no standard plugins for Grunt in Gradle, but it’s easy to add all the code manually. After all, this is Gradle not Maven 😉

We’ll assume that node and grunt-cli are already installed see (Test Driving JavaScript with Grunt).

Continue reading

Continue reading: A Great Team

A Great Team

Have you ever been part of a great team? Or worked with one? I’m ending an assignment at Projectplace, where I’ve been working with team “SNAP”. SNAP is a great team! As I move on to other challenges I’ve been thinking about what makes a team great.

Continue reading

Continue reading: Continuous Delivery vs Continuous Deployment

Continuous Delivery vs Continuous Deployment

Jez Humble posted a blog entry with the same title in 2010, but if you haven’t read the entry, or just want a quick explanation, here’s the short version: A continuous delivery pipeline automatically tests the application, but keeps the deployment decision as a manual step. A continuous deployment pipeline, on the other hand, will

Continue reading
Continue reading: On the Road to Continuous Delivery

On the Road to Continuous Delivery

Continuous delivery is a hot topic. A lot of people are talking about it, but implementation in the real world is scarce. I lucked out at my last assignment when I was at SVT (Swedish Public Television) and got the chance to work on implementing a continuous delivery pipeline.

When I started, the project had delivered once and was gearing up for its second delivery. Representatives from each team met, and we decided to aim for an (at the time) aggressive schedule of one release per week! Our first “fast” release would go out in January, and we would continue from there.

It would be nice to say that this worked out well and we were continuously delivering from then on, but this blog entry is about our road to continuous delivery, so my story starts here!

Continue reading

Continue reading: Agile Software Development Slides

Agile Software Development Slides

I gave a talk to a group of mechatronics students at KTH (Royal Institute of Technology) today. The topic was agile software development with an emphasis on Scrum, and some information about Kanban and Lean Startup. Here are the slides: KTH-2013 Get in touch via my homepage if you have questions or comments!

Continue reading
Continue reading: Twitter Bootstrap: Easy to Use

Twitter Bootstrap: Easy to Use

Are you building a Lean Startup, and want fast results? Twitter Bootstrap could be the solution you’re looking for. Are you a “backend” programmer who would love to have a beautiful site, but you “don’t know frontend”? Twitter Bootstrap could be the solution you’re looking for. Are you just looking for a simple frontend that works? Twitter Bootstrap could be the solution you’re looking for. Nice rounded corners, customizable colors, margins that look good, padding that’s right, JavaScript that just works: that’s what Twitter Bootstrap offers.
Continue reading

Continue reading: Logo: Programming with Kids

Logo: Programming with Kids

It’s pretty tough to explain to a 6 and an 8 year old what it is you do all day at work as a programmer. They take the computer programs they use for granted, and just assume that websites work because they’re supposed to work. Explaining that someone had to write “code” to cause a button press on the screen to do something is a bit too abstract. A simpler example though worked wonders! I was working on a little HTML5, Canvas application for a Crisp seminar a couple of years ago called Ball Bounce (a simplified pong-like game), and the girls were mesmerized by how changing a few characters in the editor made huge visual changes in the web browser. Finally a break-through! But JavaScript is not really an entry level language, and teaching kids about events is probably not the best start. So, what is an easy, visual program with instant gratification? Well, why not Logo?
Continue reading

Continue reading: From Jira to Trello

From Jira to Trello

For the past couple of years I’ve had to work with Jira. Really, it’s mostly been dreading working with Jira. At both projects I’ve had Greenhopper available, and that hasn’t really made things better. My frustrations have had to do with the complexity of setting up the right fields, to creating a new sprint to creating a new project, down to mundane things like problems with ranking. I don’t particularly enjoy spending hours just tidying up my data. I want to quickly organize so I have time to actually work. I also want to easily see how much work we’ve done, and how much we have to do. Cards and a physical board are great for this, but I end up with stacks of cards everywhere, and after several sprints I don’t know what to do with them anymore. Enter Trello!Continue reading

Continue reading: Backbone: Orderly JavaScript

Backbone: Orderly JavaScript

Backbones aren’t the usual fare for tech blogs, but if you’ve been following frontend development, then you’ll have heard of Backbone.js. From their site: Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions,views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.Continue reading

Continue reading: Context Appropriate Performance Testing at Let’s Test

Context Appropriate Performance Testing at Let’s Test

The Let’s Test conference (“A European conference on context-driven testing – for testers, by testers”) kicked off today in Sweden. I know, I’m not a tester, so why was I at the conference? Certainly it wasn’t the “context-driven” that drew me, since before I heard of the conference I didn’t really know what that was. The “for testers, by testers” wasn’t so inviting to me as a developer, even though as a member of an agile team I write unit and regression tests, and participate in functional and exploratory testing.

It was actually Scott Barber’s tutorial description that got me to sign up:Continue reading

Continue reading: Mercurial: hate it, or love it?

Mercurial: hate it, or love it?

Mercurial is my first serious foray into distributed version control systems (dvcs). When I started gathering my notes for this entry I knew that this would be a really negative review of Mercurial. The first version control system I actually liked was Perforce. Several years later I encountered Subversion, it took a while to adjust but eventually I grew really fond of it. For the past 3 months, I’ve been using Mercurial… definitely not impressed. Or so I thought, but as I looked through my cons, I saw pros all over the place. So here are my [not-so-negative-after-all] thoughts on using Mercurial!

Continue reading

Continue reading: Great Retrospectives

Great Retrospectives

Great retrospectives are amazing, they have a way of really getting a team to work together and to energize them ahead of a new challenge. But even a great retrospective becomes boring and routine after a while. Luckily, there are a lot of us at Crisp working with different teams, so we got together this evening for a peer to peer exchange about retrospectives. We each got to pitch retrospective exercises and games that we’d like to try, or that we wanted to share. We ended up discussing and trying out 9 of them. Here’s a summary  in case you’d like to try some of them out at your next retrospective!

Continue reading

Continue reading: Properties of a good daily stand-up

Properties of a good daily stand-up

I had a conversation with some of my colleagues about what makes a good daily stand-up, here are some properties: Time-boxed (15 minutes) Everyone is engaged Synchronization is taking place Attention to problems People ask for help The conversation is about stuff that matters to most people, individual issues are postponed Anyone can lead the

Continue reading
Continue reading: Securing Your Website – SSL a how-to guide

Securing Your Website – SSL a how-to guide

I attended the Optimera STHLM conference this spring where SSL was a recurring theme. The speakers convincingly argued for more extensive use of SSL in websites. Consider that without SSL anyone can see what you read online, what you look at and what your interests are… I was pretty confident after the conference about setting up a website with SSL, and I got the chance to test it out soon after. In the process I discovered that sometimes it’s a bit tough to find information when you have a problem with the implementation, or when you want to learn more. So here’s a how-to guide with what I learned and links to the resources I used most. Maybe it’ll help you, and hopefully you can give me some feedback 🙂

So let’s get started!
Continue reading

Continue reading: Our New Blog – A Groovy Journey

Our New Blog – A Groovy Journey

After several years of running our blog on Pebble we’ve made the move to WordPress, and it’s pretty exciting! But how did we get here? It turns out that migrating a blog from an unsupported platform is not very difficult, all you need is a bit of programming know-how and in a couple of hours you’ll be migrated!

Pebble stores all of its data in XML files on the server, WordPress data can be imported from WordPress eXtended RSS format. XML to XML pretty straightforward, you just need to pick a language! I figured I would try out Groovy since it seemed to offer some nice api’s for processing and producing XML.
Continue reading

Continue reading: Coffee Break

Coffee Break

You may remember Mats Henricson’s blog entry about what we know at Crisp. Well now we’ve put that same tag cloud (with some minor changes) on a mug! I’m sure you’ll be seeing these mugs in the hands of a Crisper near you in the coming weeks, but here’s a sneak peek: Get in touch

Continue reading
Continue reading: Ranking in Jira

Ranking in Jira

I’ll just start out by saying that I’m no Jira expert, in fact I don’t even have Jira admin privileges at my current project. I do however use Jira at least once a day. I manage versions, and create components. I also create stories and epics, and try to maintain sprint and product backlogs in

Continue reading
Continue reading: Working with large XML files

Working with large XML files

I recently ran up against a large XML file and legacy code that manipulated it.. the code had mysteriously stopped working, there were no unit tests and the XML file was large and had no line breaks. What do you do in this situation? Loading the 30MB file in any kind of editor made the

Continue reading
Continue reading: Forget about java.util.Date, it’s Joda-Time!

Forget about java.util.Date, it’s Joda-Time!

Once upon a time all we had was java.util.Date and it was not good… then Sun introduced java.util.Calendar, and it got worse! How often do you sit at your keyboard and wonder how you can avoid writing date manipulation code just because you hate to look at the resulting mess? Maybe your project uses service or utility classes to hide the ugliness, but you know it’s still there. Well, stop hiding, there’s something better: Joda-Time!

Continue reading

Continue reading: Refactoring

Refactoring

If you’ve read Michael Feathers’ book, Working Effectively with Legacy Code, you’ll know that he presents his techniques for refactoring clearly and simply. My favorite is his metaphor of finding the “seams” in the code to break it apart then “sew” it back together again. If you’ve attempted to implement some of these techniques in your own project you’ll also know that it’s not easy. It is slow arduous work, and when there are no unit tests it can be scary.

Crisp hosted Michael Feathers’ course:”TDD and Refactoring Techniques” this week in Stockholm. I hoped that some secret knowledge of how to refactor easily would be revealed, something that was just too elusive to express in a book. Instead my experience that refactoring is difficult was reaffirmed.

Continue reading