Sunday, August 28, 2005

Quote of the Week

A scientist builds in order to learn; an engineer learns in order to build
- Fred Brooks

Saturday, August 27, 2005

[Book] Debugging the Development Process

Debugging the Development Process by Steve Maguire (author of Writing Solid Code) is an excellent book that deals with "Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams" (from the back cover).

If Writing Solid Code is for programmers, then this one is for Managers, Leads, or yet to become Managers/Leads.

The book focuses on how to keep your team focused, motivated, set the right goals and not let unnecessary work/meetings, bad schedules stop them from doing their daily chores and much more.

Key Points:

  • Avoid anything that doesn't improve the product.
  • Always set detailed goals, priorities and quality bars for each project.
  • Fix bugs then and there, don't wait for time that will never come.
  • Use existing systems to assist you in the process.
  • Use negative feedback to achieve desirable results.
  • Always try to fix the root cause of the problem.
  • Determine the exact requirement before plunging into action.
  • Never commit, if you know you can't meet the dates.
  • Don't do something just to please everybody. You will jeopardize the product.
  • There ain't any such thing as free product or feature.
  • Don't implement a feature just for the heck of it.
  • Make sure it's worth the writer's time before asking for a report.
  • Use postmortem reports to improve your development process.
  • Make sure you have a clear agenda before calling for a meeting, and make sure the agenda/action items gets done.
  • Keep aggressive but attainable schedules.
  • Never allow an arbitary dealine jeopardize the product.
  • Break long-term projects into shorter, well-defined subprojects.
  • Kick your best programmers out of the group if they aren't growing/learning to a different group.
  • Provide on-the-spot feedback, don't wait for the annual performance review.
  • Programmers need to understand that writing bug-free code ain't easy, so they should do everything under their power to detect and prevent bugs.


UI Patterns and Techniques: Introduction

Written by Jenifer Tidwell (MIT alumni) this site discusses some common patterns in the interaction design some of which are suitable for both Web based and desktop applications. I haven't gone through the entire site throughly (just skimmed through them), I liked the patterns in the "Getting Input from Users" and "Showing Complex data".

HCI (Human Computer Interaction) has become a major subject in itself, as we started to depend on computers to do most of our work. Modern Design Patterns not just deals with programming/database related problems but also deals with the Look & Feel of the application among others.

This site classifies the UI patterns & techniques into
  • Organizing the Content
  • Getting Around
  • Organizing the Page
  • Getting Input from Users
  • Showing Complex Data
  • Commands and Actions
  • Direct Manipulation
  • Stylistic Elements

Each of the them answers the 3 questions - When, Why, How, followed by examples if applicable.

This is going to be published as a book titled "Designing Interfaces: Patterns for Effective Interaction Design" by O'Reilly Media publication (expected: late 2005)

Thursday, August 25, 2005

Google talks the Talk

Google announced Google Talk recently. Yes it's an IM (Instant Messenger) in the lines of Yahoo! messenger or MSN messenger.

It has a neat, simple interface. All you got to have is a GMail id for authentication purpose. It also supports voice calls to other computers. The quality of which is quite good.

Still in Beta, so I am expecting more features to be added before the full-fledged product is released.

As a side note, Google Desktop Search 2 (also in Beta) is fantastic with it's sidebar feature. The only thing I currently don't like in that is there is no "Remove All" feature in any of those tabs eg., Email - If I have 10 emails, currently I have to choose each of them and delete. The other problem is with the Auto-Hide feature - doesn't work most of the times.

Tuesday, August 23, 2005

State of Ajax: Progress, Challenges, and Implications for SOAs

The article talks about AJAX aligment with Web servies and SOA (AJAX uses XML as the standrard payload) and the implications of SOA.




Thanks to Gangadhar for the link.

Nice Reads - A list of blogs

A collection of blogs mostly written by well-known people in the Software industry such as Grady Booch, Martin Fowler, Steve Vinoski, and the likes.

Will add more to this as I come across them...

Tuesday, August 16, 2005

Quote of the Week

Successful people don't do different things, they do things differently.


As you can see the title has changed from "Quote of the Day" to "Quote of the Week" as I am running out of good quotes (doesn't mean that there aren't any available). This is also because I am just back from a short vacation and my mood hasn't still changed.

Monday, August 08, 2005

Ruby Quiz

Ruby Quiz is a weekly programming challenge for Ruby programmers with similar goals like the Python Challenge.

The Python Challenge

The site contains a set of riddles designed to provide an entertaining experience for people who are working with Python or for those who are learning the language. It also showcases the power of the Python modules & features.

Wednesday, August 03, 2005

Stroustrup: C++ Style and Technique FAQ

Bjarne's own collection of freqeuently asked questions which includes questions that deal with why certain features are not available in C++, and how certain features work.
  • Can I write void main()?
  • Why doesn't C++ have a final keyword?
  • How do I deal with memory leaks?