Tuesday, October 27, 2009

Now reading: Lean Software Development: An Agile Toolkit

This book by Mary and Tom Poppendieck is an awesome read. I just read the first three chapters and loving it. More on this book will come later as I read more...
I am tuned to attend the next CAMUG session by the Authors! It should be a lightning session and looking forward to Nov 2nd.

Saturday, October 17, 2009

Communicating tools for working on remote projects

Ever since I started working in the software industry, as a freelancer or representing a company, I found the most challenging part of a remote software development project is "Communication". In agile setup, collaboration plays a leading role to be effective and efficient.

By communication, I mean the following:-
  1. Getting the spec as intended by the client.
  2. Asking specific questions on time.
  3. Status update about progress, blocks and forthcoming events.
  4. Getting feedback as intended by the client.
  5. Making specific suggestions with rationale to the client.
I am listing a few tools that I used and recommend others to use.
  1. A note pad: I write down small bullet points as soon as I find a question/suggestion/idea.
  2. Voice chat/telephone call: It should be #1 preference. Its real time and most speedy after face-to-face. I use Skype for my voice calls and sometimes my phone as well.
  3. IM: I use GoogleTalk most of the time if it works with client. Otherwise, I just use the one that my client uses most frequently.
  4. Collaboration tool: I use ScrumPad.com. Post my messages, people get email notification and can directly reply on that notification. This way the collaboration is all captured in ScrumPad and we can also keep using Email.
  5. A wire framing/drawing tool: Sometimes a small sketch/piece of drawing may greatly ease the communication hurdle. I use MS Visio at times. However, I also use scanned copies of hand drawings and annotations. It works. However, I am looking for a good web based wire framing tool and I believe it will off-load a lot of decision confusions.
  6. Desktop sharing tool: Screen capture and desktop sharing also works for me. I use LogMeIn and Xing. These tools offer first class feedback capturing capability from remote clients.
I also try to follow some general rules:
  1. Always have a prioritized list of points that I want to discuss.
  2. Be on time.
  3. Never stay disconnected for more than 3 business days.
I am sure out-sourcing will keep growing in the coming days, not only for its low cost but also for the fact that they are getting smarter and equally competent as people who charge many folds compared to them. I also anticipate a lot of out-sourcing job will go to individuals or 2/3 person groups, may be not from fortune 500 companies, but there are still other unfortunate millions of companies who will need such small teams. If you plan to work remotely, I am sure you will need some of the above tools, and if you are already in the business and think you have other good tools, please share with me.

Tuesday, October 06, 2009

Web application user interface without any Menu

If you are like me, with little creativity with UI (!), on a new project you always start with a simple layout, banner followed by a row of menu and then a two column body that ends with a footer. Well, here is an example:-
----------------------------------------------------------
CampZero
zero hassle camping
----------------------------------------------------------
Home | Place a booking
----------------------------------------------------------
Welcome |
|
|
|
|
|
---------------------------------------------------------
Campzero.com, all rights reserved
---------------------------------------------------------
Well, there are other ways and you will almost always see good visual elements in most websites. However, somehow all of these beautiful sites come with some sort of menu. This post is about a site that doesn't have a menu at all.
Yes it is possible to create a web app without a menu. The application that I recently developed is designed around an intuitive workflow. The workflow itself drives the app and it does so without any menu. For example, on landing you see a dashboard with three sections. Main section shows highlights of different projects, sidebar contains the search box and top part contains profile card. Now, you can navigate the whole application from here. For example, select a project you will see main section with the project latest activities and the search box will search in the scope of the project.
The point is, if you know the users of your app will most likely follow one of a few workflows, then you can design a UI that flows naturally.