Archive for the ‘Productivity’ Category

High Level Design (HLD) Vs. Low Level Design (LLD)

Wednesday, May 23rd, 2012

For people who have been involved in software projects, they will constantly hear the terms, High Level Design (HLD) and Low Level Design (LLD). So what are the differences between these 2 design stages and when are they respectively used ?

High Level Design (HLD) gives the overall System Design in terms of Functional Architecture and Database design. It designs the over all architecture of the entire system from main module to all sub module. This is very useful for the developers to understand the flow of the system. In this phase design team, review team (testers) and customers plays a major role. For this the entry criteria are the requirement document that is SRS. And the exit criteria will be HLD, projects standards, the functional design documents, and the database design document. Further, High level deign gives the overview of the development of product. In other words how the program is going to be divided into functions, modules, subdivision etc.

Low Level Design (LLD) During the detailed phase, the view of the application developed during the high level design is broken down into modules and programs. Logic design is done for every program and then documented as program specifications. For every program, a unit test plan is created. The entry criteria for this will be the HLD document. And the exit criteria will the program specification and unit test plan (LLD).

The Low Level Design Document gives the design of the actual program code which is designed based on the High Level Design Document. It defines Internal logic of corresponding submodule designers are preparing and mapping individual LLD’s to Every module. A good Low Level Design Document developed will make the program very easy to be developed by developers because if proper analysis is made and the Low Level Design Document is prepared then the code can be developed by developers directly from Low Level Design Document with minimal effort of debugging and testing.

What is Cloud Computing?

Sunday, April 22nd, 2012

Cloud computing is a computing model, where resources such as computing power, storage, network and software are abstracted and provided as services across the Internet remotely accessible.

Billing models for these services are generally similar to the ones adopted for utilities and paid for on a per use basis. On-demand availability, ease of provisioning, dynamic and virtually infinite scalability are some of the key attributes of cloud computing.

An infrastructure setup using the cloud computing model is generally referred to as the “cloud”. The following are the broad categories of services available on the cloud:

• Infrastructure as a Service (IaaS)

• Platform as a Service (PaaS)

• Software as a Service (SaaS)

Amazon Web Services (AWS) is one of the major players providing IaaS. AWS have two popular services – Elastic Compute Cloud (EC2) and Simple Storage Service (S3), available through web services.

Cloud Computing can be put to some very dynamic uses, much like many web-based applications, controls and interactions between the host device and user can have many differing abstract layers.

Consumers with the advent of smartphones and services like Apple, Amazon, Google allowing mass on-line storage for media to consumers are becoming very aware of how easy and readily available these applications are becoming. Other companies like dropbox offer similar Infrastructure options to consumers. Many smartphone applications operate a SaaS whereby data is synchronised with the application owners own private/public cloud.

What many consumers know where there data ends up?

How do you protect yourself from losing control of your data?

How do you backup and maintain your own data in the age of the cloud?

7 Traits of the Highly Productive People!

Tuesday, December 20th, 2011

http://www.inc.com/ilya-pozin/7-things-highly-productive-people-do.html

I can thankfully say, that of the I do at least 1 of these naturally, although with the issue of a shinny new Crackberry from work, I do still get email notifications that after 2 weeks I’ve learnt to ignore. I’ve always found email to be a distraction and the only people who reply and react to it straight away are too busy to really commit and deliver on the tasks (not always true but a general observation).

  1. Work backwards from goals to milestones to tasks
  2. Stop multi-tasking
  3. Be militant about eliminating distractions
  4. Schedule your email
  5. Use the phone
  6. Work on your own agenda
  7. Work in 60 to 90 minute intervals

After reading this article, things I’m going to change:

a) Breakdown tasks into bite size deliverable tasks.

b) after each task take a break, breath of fresh air, then hammer on with the next task.

c) focus on goals, by explaining to people, I’ll deal with there distractions after this task. –> Well that will be the most difficult, lets face, if an issue arises you need to be able to address it straight away.

In regards to (c), my previous priorities were always guided by the number of users effected by the problem, the higher the number, the more important it would appear on my list.

I’m going to have to come back and review how well it all works, so news, so updates in a month or so. Let me know your thoughts, or if any other changes are worthy of trying.

[amazon asin=0273744097&template=image&chan=default&title=-&image=-]