Thursday, October 24, 2013

Hacking: Prevention or a Theft?

Do you lock your home before going to sleep? Do you lock your car when you are going for shopping? I am sure your answer to both questions is yes. But, why do we protect our property? Well, the answer to that is very simple and obvious. We do not want anyone to steal our property nor do we want strangers to use our property. Now, let us consider our digital property. Do you use online banking? Do you check your emails regularly? Do you use social networking websites? In the 21st century, I assume the answers to these questions are yes. Now, what if I tell you that someone can steal all of your personal information from your digital world? Yes, you heard it right. If you are not protecting your digital property, some hackers can steal your digital information. So, in this blog post I would like to talk about what is hacking and how hacking is related to us. 


What is hacking?

Hacking has many different interpretations. Many professionals use “hacking” to mean clever programming. For instance, one my professor uses “hacking” to simply mean computer programming. However, there is another interpretation of hacking that is often used by our media and our society. According to that interpretation, hacking is an act of breaking or stealing. In this context, hacking means “gain unauthorized access to computer data: to use a computer or other technological device or system in order to gain unauthorized access to data held by another person or organization” (1).  


Relationship between users and hackers

Now, you might be wondering what hacking has to do with you. Let me explain that by giving you a realistic example. Imagine that you are browsing on the internet. You might be checking emails, and you happen to get an email with an attached file. If the attached file is corrupted (meaning it contains Trojan horse), then malicious users can get access to your personal data. Perhaps, malicious users can control your device and possibly ruin your device by deleting important files. This is just a one simple scenario, hacking is usually more harmful than the situation mentioned above. Hackers can have power of controlling our our credit cards, to controlling our car breaks. In other words, anything that uses software can be hacked and controlled by malicious users. Read further to know more about what hackers can possibly do. 

Who are hackers?

There are various kinds of hackers in our society. Some of them hack for good causes whereas others hack for unethical reasons. First, I will like to talk about unethical hackers. Unethical hackers are those who hack to steal or gain access to unauthorized software or networks. Their main purpose of hacking is to gain benefits for themselves. On the other hand, there are other kinds of hackers who hack for good causes. For example, big corporations and governments hire hackers for security reasons. Corporations would like to check their cyber security, and ask hackers to break into their system or find a loophole into the software. Lastly, there are hackers who hack for fun or to challenge their skills. Hackers of this type take hacking as a challenge.

I hope you enjoyed my blog post about hacking, and learned something new. I will be looking forward to your replies in the comments.

References:








Saturday, October 12, 2013

Open Source

Most of you may already know about open source software. Your understanding about open source software might be limited to the fact that open source software is “free software”. However, there are lot more interesting things about open source software that makes them unique. What makes open source software unique is the fact that they come with source codes. I know what most of you might be thinking, you might be thinking that “I am not a programmer, so how source codes are benefiting me or my business?” Well, let me explain how open source codes will help everyone. Since source codes of open source software are available to the general public for use or modification, if some developer finds a bug in the current version of the software and he or she decides to fix that bug and redistributes the software, everyone will get a fixed version of software. This innovative ideology of open source software makes them very convenient and successful. 


Why choose Open Source Software over Commercial Software?

As a user, you might be wondering which software (Open source software or commercial software) would be better to use for either your personal use or business use. Let us investigate which development methodology is better. 

Security: When it comes to installing or using software, we have to consider security of the software. Security of the open source software is better than commercial software because in open source software development, source codes are available to the general public, and as soon as someone finds a bug, they will either fix the bug or notify developers to fix bugs. On the other hand, commercial software has closed or hidden source codes, so when someone finds a bug, they have no access to the source code to fix the problem. (Well, what you have to do in that case? Wait for their new bug free updates!) The developer team of the commercial software is limited whereas open source software has a wide range of developers. 



Customizing Software: Open source software gives us a freedom of customizing software based on our taste. So, if you would like to add something to the current software, or if you would like to change something about the software, you have freedom of achieving that task. (I am assuming you know some programming in this case.) On the other hand, commercial software does not give us freedom of customizing software. In commercial software, we have to use what they gave us in that package. What is the solution if you would like to change something about the commercial software? According to commercial software approach, we have to buy new software or some other software to achieve that task. 

Cost: No matter who you are, you would like to save money and get better product. One of the primary advantages of open source software is the cost. Most of the open source software comes at little or no cost. Yes, you heard it right, they come for free! Now, let's consider commercial software. Commercial software is expensive and you have to keep on updating them once their license expires. 

I hope you enjoyed my blog post and learned something new about open source software. I will be looking forward to your replies in comments.


Reference: 

http://blog.hathix.com/wp-content/uploads/2013/09/may-the-source-be-with-you_Open-source.jpg

http://opensource.com/resources/what-open-source

http://milindpadalkar.files.wordpress.com/2011/05/open_source_part_ii.jpg

Friday, October 4, 2013

Agile Methodology: a successful way to develop software


Have you ever had an experience of ordering something and waiting for a long to find out the deliverable is completely opposite of what you expected? Well, this is a very common problem in most of the businesses. The traditional software development procedure is very similar to the scenario mentioned above. In a traditional software development, interaction between clients and developers are very minimal such that both of them do not interact with each other until the final product is ready. Now, can you imagine what this would be like? Yes, you guessed correctly, it would be a complete chaos if developers did not meet a client’s request properly. So, you might be wondering what we can do to improve this methodology. The answer is very simple, use new and effective methodology called Agile. 
Comparison of traditional development vs. agile development

What is Agile?
Agile is a plan driven software development methodology where active participation of client is very essential. Agile approach makes software development iterative by breaking huge project into small phases. During each phase, certain requirements are planned, implemented, and tested. After each phase, a development team delivers something to their clients. This approach really helps both software developers and clients.  Developers benefit from agile methodology because the work is divided into separate phases and that helps developers focus on smaller aspects of the project instead of tackling whole project at once. Agile approach benefits clients as well because at the end of each phase they get deliverable which gives client a clear understanding about the development. After the deliverable, clients can ask developers to make some changes to their development. 


Benefits of using agile methodology
·         Customers are happy with the final product because they are constantly involved during the development process.
·          Development time decreases because dividing work in each phase keeps the development process on time.
·         Easy to make changes in current development.
·         Improves clients’ business because agile methodology allows clients to pick and choose what they want in their software.
·         Improves software quality. 

Since agile methodology seems to work very effectively, many software companies are now using agile methodology to develop their software. An interesting thing about agile methodology is that agile is easy to learn. One can understand agile in less than nine minutes by watching this video

I hope you enjoyed reading about agile methodologies, and hope you use this approach when you develop software for your clients. I will be looking forward to your replies and views on agile methodologies.

References: