The Blog

Client side architecture

published August 31, 2010

As web applications are getting more web 2.0-ish it is important to build your client side architecture correctly. When you have lots of fancy widgets and desktop-like functionality running on browser,  simple html-javascript-hacking will not work. We are currently refactoring our client side architecture and came up with Slideshare presentation by Nicholas C.  Zakas about Scalable JavaScript Application Architecture.  It has nice concepts that we are considering and it seems to tackle our current issues such as tight coupling, inter-widget-communication and more. I am planning to write in-depth analysis of our architecture and problems that we have had, but meanwhile you should check presentation from Slideshare.

Samuli @ 21:10 (No Comments)

tags: ,

Trackback URL

Maybe it will work out in the end

published August 20, 2010

Say you are a product owner and you are building up a solution using Scrum. You have decided that sprint length is 3 weeks and team will show you the results after each sprint. Unfortunately, after each sprint the results are not quite what you have expected, but you think that maybe it will work out in the end just like you have visioned. Stop right there, it won’t.

The final results you are getting at the end are those you see in the sprint demo. If demos are buggy, you will get a buggy solution. If demos feel “not quite right”, you are not building the software you are seeing in your dreams. If this sounds familiar to your current situation, you will be needing x “finalization sprints” after you are “ready”.

The key is to stop immediately when you get the smell and trust your gut feeling. Increase your definition of done and start building production ready software, that is how you will succeed.

Samuli @ 21:56 (No Comments)

tags:

Trackback URL

Features that do not fit into architecture

published August 12, 2010

So you got an application. You have analyzed business requirements and coded a domain model that represents business domain from some perspective. You start building features on that model and it all seems to work out pretty well. Then you get the first requirement that does not fit into the domain model and you will have to make a special rule for this case. You decide to solve this by writing logic for it into your UI layer. And so it begins, your code starts to rot.

These “special cases” are very nasty. Root cause for them is usually a mismatch between domain model and business requirement. Building a domain model that can handle beautifully all special rules is very, very hard and will require multiple iterations. However, when you notice a feature that needs a special rule, it is wise to inform your product owner about it and try to come up with a solution that works with current domain model and does not cause your code to rot.

Samuli @ 20:05 (No Comments)

tags:

Trackback URL

Social media strategy

published August 11, 2010

“We are now also in Facebook! Case closed. It is a good thing that we got that social media taken care of”. Trend today seems to be that every company has to have a facebook page and that page equals to company’s social media strategy. Of course there is nothing interesting on that page but that is not important. How are best online presences built? This one is clear: it is not a job for summer trainee nor it is a one-time-job.

Companies are spending more and more money on Facebook advertisement now that site has more than half-billion users. I predict that online presence for company and the quality of online community it can build around its brand is very important in the future. I also believe that personal brands will increase their importance. We will see companies emerging around strong personal brands and your CV will be (at least partly) replaced by your online presence. Companies are already googling applicants, what are results that come up with your name? Hopefully you did not submit that photo of yourself with a funny hat and a beer bong?

Building company’s online presence is not a easy task and takes a lot of effort but it must start from social media strategy. What are things that you want to accomplish? What are your social media policies for employees? How are you connecting to your audience? These are just few questions you will be asking yourself. Anyways, you will not want to miss this opportunity, get started with your strategy today!

Samuli @ 21:29 (No Comments)

tags: ,

Trackback URL

Scrum Master as a team member

published August 3, 2010

In small teams it is common for Scrum Master to work as a team member and work with code by developing new features. Does it work? Well, it depends, but it can easily lead to problematic situations. I feel that one person can work as a Scrum Master for max. 7-9 people and these people can be divided into multiple teams or work in a same team (although 9 team members might be too much).  When there is not enough work for Scrum Master and he also works with new features, there is a possibility that:

  • He will concentrate too much on code and neglect real Scrum Master work
  • Dual role will hinder team self-management
  • Scrum Master can become a bottleneck if he is working with architecturally key components
  • Dual role can cause role conflict

Unfortunately, having non-coding Scrum Master is not always possible but if you can, you should try to fully utilize Scrum Master, so that he works with multiple small teams simultaneously.

However there are clear benefits if Scrum Master is very familiar with used technology, knows codebase, and understands architecture. This way he can coach younger developers and help team to avoid pitfalls.

Samuli @ 21:30 (One Comment)

tags: ,

Trackback URL

Subscribe to RSS feed

The Tag Cloud
The Blog Archive

February 2012 (1)

January 2012 (1)

November 2011 (1)

June 2011 (2)

May 2011 (1)

April 2011 (2)

March 2011 (2)

February 2011 (1)

January 2011 (1)

December 2010 (1)

November 2010 (1)

October 2010 (3)

September 2010 (3)

August 2010 (5)

July 2010 (2)

June 2010 (3)

May 2010 (4)

April 2010 (2)

March 2010 (6)

February 2010 (7)

January 2010 (3)

December 2009 (7)

November 2009 (6)