Posts

Showing posts from April, 2007

Importance of "keeping it simple".

Sometimes you have to keep repeating a message so that everyone gets it, at the risk of sounding like a broken record. There was a quote in this month's Popular science which applies to  software world as I had been trying to say in earlier posts- "good engineers find solutions to hard problems that are complex and hard to understand, but great engineers find solutions to hard problems that are so simple that you wonder why you didn't think about it in the first place" Simplicity is not only important in software design but also to the user. I remember working on a product  which had a versioning scheme which was so complex that even the QA required several days of training to understand it. You can imagine the frustration for the customer and how long the feature existed in the product! The next level of simplicity is in the user interface, Microsoft Office 2007 UI is a great example of how to scare the user by showing all options. 37 signals has some good example...
ABCs of good design Good design and architecture has always been identified as a key requirement for a product to succeed in the long term. But how how can you measure the quality of a design or identify the recipe to come up with the best design always? These are not questions with easy answers, but help to illustrate the challenges in the area. There have been many approaches to improve the quality of design in computer software over the course of time: 1. Functions & subroutines - This helped improve the design of monolithic programs by separating commonly used functionality into functions & subroutines. This improved the maintenance and reuse of code by having less duplication etc. 2. OOP - This was another major step forward in design in which we tried to model the objects in real world using classes having methods & properties. This was more natural to humans than working with procedures. eg. Rumbaugh & Booch. 3. CASE - 'Computer aided software engineering...

OS Review

I have always been a Windows admirer, but a newly converted Mac fan, so it is probably time to see the OS world in a more 'objective' way! Today Linux It is great as a server - controlled environment and free software without support works just fine. It is not a good home machine OS - at least not yet for the typical person who need driver support for his peripherals and who needs to run PC software. Mac OS X It is technically & visually the best OS for a home machine OS out there though a bit expensive & have limited peripherals - great usability & innovation. I expect to see the iSync+.mac integration in the next version of Windows ! It is good as a server - the unix background gives it the required skills, but it is still not acceptable for many businesses as desktop due to lack of support for Outlook etc. Windows It is a good OS for a home machine - the sheer volume of software & peripherals is good. Security is more of a challenge as ...