Friday, 3 August 2012

Causes of Delays in IT Projects

According to the industry Up to 75% of software development projects fall behind schedule. Let’s found out the main causes of delays in IT Projects.

1.   Expansion of functionality- Moving Target or Requirements.
The expansion of functionality is a phenomenon in which new functionalities continue to be conceived and requested as the project proceeds. The software can never be completed in this way.

2.    Gold plating (Adding Extra features)
Gold plating is a phenomenon in which programmers and designers try to make many details of the software or design too elaborate. Much time is spent improving details, even though the improvements were not requested by the customer or client.

3.    Neglecting quality control
Time pressure can sometimes cause programmers or project teams to be tempted to skip testing. This frequently causes more delays than it prevents. The time that elapses before an error is discovered in the software is associated with an exponential increase in the time that is needed to repair it.

4.    Overly optimistic schedules - (unrealistic) Deadlines
Overly optimistic schedules place considerable pressure on the project team. The team will initially attempt to reach the (unrealistic) deadlines. These attempts lead to sloppy work and more errors, which cause further delays.

5.    Working on too many projects at the same time
Dividing work across many different projects (or other tasks) causes waiting times that lead to many delays in projects.

6.    Poor design
Some project managers assign work to developers in a haphazard manner. The absence (or poor realization) of designs leads to delays, as it requires many revisions at later stages.

7.    The ‘one-solution-fits-all’ syndrome
Using the right software for a project is important. Some software platforms are more suited to particular applications than others are. Thinking that the use of particular software will greatly improve productivity, however, is also a trap.

8.    Research-oriented projects
Projects in which software must be made and research must be conducted are difficult to manage. Research is accompanied by high levels of uncertainty. When software development is dependent upon the results of research, delays occurs.

9.    Mediocre personnel (Skills Shortage)
Insufficiently qualified personnel can cause project delays. Technically substantive knowledge of the subject of the project plays a role of the project.This could lead to significant delays in the development of software and systems.

10. Customers/End User fail to fulfill agreements
Customers are not always aware that they are expected to make a considerable contribution to the realization of a project. When customers do not react in a timely manner to areas in which they must be involved, projects can come to a standstill. Worse yet, the team may proceed further without consulting the customer, which can lead to later conflicts.

11.  Project approvals
Waiting for projects to get approved is the most cardinal of all sins as this usually has handfuls of developers sitting around twiddling their thumbs and is a blatant disrespect for people’s time. Coupled with this is the fact that waiting causes dissatisfied and disgruntled employees and only serves to ruin the culture in an organization.

12.  Waiting for a proper prioritized list of requirements
So that work can get started.

13.  Waiting for resources to become available
Generally impacts projects significantly. This one is not necessarily an easy one to solve as there are generally budgetary concerns. 

14.  Change approval processes
Ever changing approval processes are also the cause of I.T projects delay.

15.  Delays getting client to sign-off on acceptance tests
We have a services business and we find that this is a huge problem for our organization. Not getting sign-off is just a liability for the company as you're not getting paid until you get sign-off.

16.  Partially done work (In Process Inventory)
Partially done work is probably the biggest killer of all the wastes. Partially done work is essentially work-in-progress. The idea should be to complete work-in-progress as soon as possible i.e. minimize work-in-progress as much as possible. Examples of partially done work are:

* Code that is completed but not checked in to your version control system - if it's not checked in, you don't know if your code changes are going to break the build

* Undocumented code - If your code is undocumented, if the developer leaves and someone has to take over, there's going to take longer for the developer to get up to speed. Additionally, if bugs are found, it will be harder for the original developer to figure out what he has done. Taking the time to document your code up front while it's fresh in your mind can therefore save the company time and money.

* Untested code (both unit tests and functional tests) - if your code is untested, you won't know till the code is in your customers hands that there is a bug. The further downstream you are in the process the more costly it's going to be to fix the bugs. So if you build quality in from the start (like writing unit tests) you'll find out the moment you execute the tests.

* Code that exists on your staging environment and not your production environment - I hear this all the time - "works on my machine" - enough said. Only once you're on production can you be sure the software is 100%. Production always surfaces issues, so the sooner you get it on production servers, the better. 

* Code that is commented out - makes the software less readable and maintainable

17.  Task switching
The more things you throw at a developer at the same time the longer things take to get done. Studies have shown that if you're working on anything beyond two separate and distinct tasks, your efficiency goes down drastically the more tasks you take on.

18.  Poor communication and recording of knowledge
I am suggesting short summaries of information on key decisions you made during development so that if someone else has to take over or you have to come back to that code in the future, the relearning curve is not that great.

19.  Transportation - Hand-offs
Transportation in manufacturing corresponds to hand-offs in software development. Anytime you hand a deliverable off to a different party, there is some loss in the transfer of knowledge.

* Developer hands off to another developer. Documentation is very important.

* Developers hand off code to testers to test. Many organizations still don't engage QA early enough. If the QA has no idea what the developer did or the problems he faced or the assumptions he made, then the QA is really just shooting in the dark. It's important that the developer at least includes the QA early on.

* Handing the code over to deployment teams. Many times I find separate deployment teams struggling to figure out how to get applications deployed. Configuration settings, compile instructions etc. if not properly communicated can cause significant delays.

* Handing-off to customers. If the client is not trained properly, or the software functionality is not documented properly, there will be more support calls for example.

Tuesday, 1 May 2012

A Note of Thanks to Madam Saima Hussain


Dear Madam,

I want to express my sincere gratitude for all the efforts you have taken during this semester. From the day one, I always learn something in your class. I really appreciate the way in which you taught us. I also thankful to all of the contributors who contributed to my blog and I really enjoyed reading them. This blog is not going to shut-down as I will continue to write and will share my experiences related to I.T field.

Once again I would like to extend warm thanks to you for all the superb work you have done and wish you best wishes for your future endeavours

Students submitted their articles are

·         Sajida
·         Mohtashim Nomani
·         Salman Abbas
·         Kapil Dev Rathi
·         Arsalan Akhtar
·         Saad Ali
·         Ozair Qazi
·         Sandeep Kumar
·         Azmeena Nazimuddin Khowaja
·         Uzma Sahar
·         Azad M Yakoob
·         Umair Rabbani
·         Zubair Rasheed
·         Muhammed Ghazanfar Devjiani
·         Siddique Khan

Regards,
Salman Abbas

Monday, 9 April 2012

USE OF VIOCE RECOGNITION SYSTEMS TO MAKE RESTURANTS WORKING FASTER

By Sajida

As we go through the very informative seminar on the MICROS POS .that showed us very effective information system to make business process quite effecient.with respect to that i have searched to make the resturant systems more better i have found one the use of vioce recognition system which has already been applied in some resturants and this software named as SIRI.Kindly go through it and discuss regarding its applications & implications  in Pakistan if applied in resturants.

 Siri (software):
What can Siri do that other speech recognition technologies cannot?
Speech recognition, the ability of a device to break down a stream of audio into text, is a mechanical process.  Siri does very well in discerning continuous speech. However, It certainly is not currently the best system yet invented. 
The mechanical process of Speech recognition is really not the big story about Siri.  Siri's unique abilities are based on a far more complex issue, understanding what is being asked, the context it is being asked and providing a result.  There are 3 primary foundations that form the infrastructure of Siri:

   * A conversational interface: With the best of speech and semantic language understanding combined with an interactive dialog that helps guide people toward saying what they want to do. The conversational interface allows for much more interactivity that 'phrase" based search style interfaces.  Siri focuses on a better understanding of intent.  If Siri didn’t quite hear what you said, or isn’t sure what you meant, it can ask for clarifying information.  Siri can prompt on ambiguity: did you mean pizza restaurants in Chicago or Chicago-style pizza places near you? Reasonable guesses can also be made based on context. For example if it is lunchtime and the speech interpretation comes back garbled about food Siri may assume you probably meant “places to eat near my current location”. If this assumption isn’t correct, it is easy to correct in a conversation.

    * Semantic auto-complete – This is similar to  â€œautocomplete” search boxes with but Siri integrates a semantic and linguistic model, “semantic completion”.  This makes possible a rather fast result with complex requests, eg. Sushi restaurants in (in the local area) that are open for dinner.   The results are a magnitude better when Siri gets to understand what you use the system for most often.

    * Service delegation – User’s intent is the basis of how Siri works.  It dispatching to multiple heterogeneous services parts of the request and  gathers and integrates the results, This is presenting back to the user as a set of proposed solutions with user prior biases as an answer to their request. In the case of a restaurant, Siri will combine information from many a multitude of sources like local business directories, geospatial databases, restaurant guides (like Yelp), restaurant review sources, online reservation services (like Open Table), and combine this with the user’s own favorite restaurants
Thus the Speech recognition, although very important is just about 1/8th of the entire process in the end.  I wrote in detail about Siri here: Apple Products and Services: Why is Siri important?. 
To illustrate from this post how Siri is different it is important to understand most systems in use are really Keyword based solutions that operate on a very limited Task completion criteria.  An example would be the typical car navigation systems that allows for you to choose from a menu of functions like what are the closest Gas stations.  This is of course very functional, it is not really actively conversational nor does it understand any form of context.

Siri base points are: 
    * Does Things For You- Task completion:
- Multiple Criteria Vertical and Horizontal searches
- On the fly combining of multiple information sources
- Real time editing of information based on dynamic criteria
- Integrated endpoints, like ticket purchases, etc.

    * Gets What You Say- Conversational intent:
- Location context
- Time context
- Task context
- Dialog context

    * Gets To Know You- Learns and acts on personal information:
- Who are your friends
- Where do you live
- What is your age
- What do you like

The existing Speech Recognition systems will continue to exist and will no doubt be productive. The best comparison for existing is that existing Speech Recognition systems are like a Calculator as related in comparison to Siri as an advanced computer.

Friday, 30 March 2012

PROTECTING YOUR PERSONAL DIGITAL WORLD

By: Azmeena Nazimuddin Khowaja

While accepting that security has become a major issue in IT, it is still not easy to figure out how to actually protect your information. I am presenting a gist of some security related articles that I had gone through, to give a clearer understanding of how to stay protected.

Laptop: Make it password protected. For further protection, use biometric devices so that only the owner can access it. Try to avoid printer, files and folders sharing. For sensitive data, encrypt your files and folders.


Mobile phones: Set a password to lock and unlock the phone. Try not to store sensitive business information on smartphones, unless necessary. Use unsecured wireless networks cautiously, otherwise cyber criminals can take advantage.

Wireless connection: SSID (Service Set Identifier), which is a default system ID, is easily traced by hackers. Change it, as well as your password, to a complex and strange one.

Use WPA (Wi-Fi protected Access) and WEP (Wired Equivalent Privacy) to encrypt your confidential data. This will protect from casual wireless hacking.

Change the default administrator passwords that come with hardware and software; configure router (by studying the given manual) to allow or stop access to the desired people; subscribe and update anti-virus software.

USB Drive: While it is not in your hands to keep your flash drive away from being misplaced or stolen, what you can control is the security of its data. For this, assign an authentication password to the USB, so that only the user can access it. Secondly, by using file encryption software, encrypt the confidential data and then transfer it to the USB.

Online Protection (Internet): If you have multiple accounts on various websites, assign a separate password to each of them, note them down somewhere in a notebook to remember, and make a complex alphanumeric password which is hard to be deciphered.

Never give your email address, password, or any personal original details to a website, unless it is a genuine one. Many software online track your personal information, preferences and browsing activities while you are browsing on the internet, that becomes the reason why you receive spam, advertising or adult emails from the websites you have never visited before.

While using social networking websites, such as Facebook, Twitter, etc, alter the security settings and make them strict. For e.g., never fill in your complete birth details on such websites.

Block the cookies when visiting any anonymous websites, as hackers may take advantage of these files.

Email: Nowadays, many email service providers, such as Gmail, are giving options for encryption. To confirm the email‘s security and that the information you send is encrypted, see that “https” is written at the start of the webpage address. A padlock symbol beside the address bar indicates that the security certificate of the website is active, and that the information will be sent to the right server.

An extract of articles from: www.articlesbase.com

Tuesday, 27 March 2012

How I.T Transforms Marketing and Advertising

Robotics

By: Uzma Sahar

Robotics is the branch of IT that deals with the designation, making, operations construction and application of robots and computer systems for their control, sensory feedback, and information processing

The concept and creation of machines that could operate autonomously dates back to classical times, but research into the functionality and potential uses of robots did not grow substantially until the 20th century. Today, robotics is a rapidly growing field, as we continue to research, design, and build new robots that serve various practical purposes, whether domestically, commercially, or militarily

Advantages
  • They are more accurate than humans Example no shaking when in a very important surgery, puts every screw in fabricating a car etc.
  • Can do jobs 24/7.
  • Can guard without being tired just keep doing the same thing 24/7
  • They don’t need food.
  • You can programed them to make them do exactly what you want them to do
  • They cannot harm you unless they are programmed to
  • Can work without doubts for example when you think "what do i do now”? Mean they don’t have emotions
  • They can lift very heavy things easily

Disadvantages
  • You need to get people trained to fix them if anything wrong happens
  • Need a very intelligent crew
  • They can ruin people’s lives for example Take their job away from them, unemployment
  • They are very expensive to make
  • You need the right materials to make them that could be very rare and expansive too.
  • If you make a very amazing robot with amazing quality and it brakes, it might be very hard to fix.
  • They can be very hard to program.
  • You need highly trained people to make them
  • They cannot recharge themselves.

Few applications of robotics

Robotics and Military vehicles
Every military are having personnel ranging from thousands to millions. Instead we can use robots which don't feel pain and makes army strong. These robots may be autonomous or remote controlled according to the use. Theses robots may be programmed to carry heavy payloads of bombs and gets self-blasted .

Drones vehicles
Daily we hear the news of drones attacking Pakistani Taliban’s bombing heavily and firing missiles with high accuracy, they are robots.

Robots in Mining
It is difficult for people to work in coal mines where temperature and pressure is more. But robots can be designed to withstand extreme conditions.

Robotics in Bomb disposals
Robots are very useful in disposing bombs which is a risk factor for humans. Dogs and robots can work together, the job of dog is to sniff and after the bomb is detected, the robot does its work. They are used by police and military.

Robots as Heavy lifting devices
Humans cannot carry more than 20 kgs wait for large distances. Robots can be used here for transport. They can be guided by tracks or lines. They can be controlled manually also.

Robots in Space Missions
Rovers are robots which can perform multiple tasks for space missions. Recently NASA has sent a land rover on mars which would move continuously avoiding obstacles.

Robots in Surgeries
Robots are used in surgeries where accuracy is needed. They are guided by doctors. They can pierce body very accurately so that other parts cannot be spoiled.