jump to navigation

Five Trends That Every Software Engineer Ought to Know December 18, 2011

Posted by mohammedsaati in Software Engineering.
trackback

Five Trends That Every Software Engineer Ought to Know

Introduction

Through time, software engineers and developers have face and still facing technological advancements that keeps them wandering. What is the next trend that is going to put me on the map?

For this time there are many going trends that everyone has to give an attention to be considered as a contender to our ever growing market competition. These trends are:

  • Cloud computing.
  • Distributed file systems. GFS, Hadoop.
  • Agile Development.
  • Social Computing.
  • Mobile Computing.

Cloud Computing

What is the cloud? You keep hearing about everywhere with no valid point of what it is. You probably know it but not knowing that you actually know it. Wherever there is PowerPoint presentation and they show a diagram of some service and the internet is in that diagram, there is a symbol that always resembles the internet. It is the cloud.

Now that you can visualize it lets say that Cloud Computing means using the internet as your source of computing. That is done by achieving three main needs:

  1. Dynamism.
  2. Abstraction.
  3. Resource Sharing.

Dynamism

What we mean hear is that you probably are going to start small. So, you’d think that buying one server and 5 PC’s is going to be enough for your organization. What if it turns out you need more than that? You are probably going to get more resources. What if down the road you see that you don’t need that much? Are you going to sell some?

Hear where cloud computing comes into play. It is dynamic. You can increase your resources and increase them virtually for a price that is not as much as it would cost for physical resources.

Abstraction

You don’t need to worry about operating systems, apps, security or any other issues. You only focus on the product you are working on and development.

This is an ease of mind to all developers and users who need a hundred percent guarantee of resource availability.

Resource Sharing

Companies might find themselves using their systems at some time of the month. Other times systems are using low load of CPU or probably nothing noticeable at all.

In the accounting point of view this is a waste of a resource. Cloud computing shares resources so you don’t have to pay the high prices of physical systems and you pay for what you use.

Side Notes

Most enterprises use cloud computing for the purpose of publishing services. As a software engineer, it’s imperative to utilize such technology in any product that is in development.

Distributed file systems. GFS, Hadoop

It is the technology of storing high volume of data into commodity stations for the function of high speed retrieval of data and reliable storing.

GFS or Google File System is a technology that Google uses for storing files. Its main characteristics are storing the data in chunks (3 to be exact). These chunks are available redundantly for security and safety reasons. Other characteristic is a very high speed when recalling the data. Using any commodity computer is also an add effect.

Hadoop is also another open source from Apache instance that utilizes the same concept.

All vendors are competing over their ability to manage and process high volume of data. We are living in a time where data is being increased exponentially and our systems now can handle around a thousand times what it could 10 years ago. Using this architecture is a very sufficient way of handling this issue. As a software engineer, there is no doubt that exploring this concept is going to beneficial for software development in general.

Agile Development

Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner with ‘just enough’ ceremony. Its focus is on minimizing risk by delivering new functionality in short timeframes, often measured in weeks. It is a “style” of working not a process or methodology.

There is usually a disagreement in enterprises when Agile is sought to be used. The high pace and no general conception of project timeline is what keep the project in the hands of the team of development. Nevertheless, Agile Development has proven its success in many situations.

As a developer, the need of being able to participate and embrace this method is highly practical for faster market delivery, adaptation to requirements change, problems and solving.

Social Computing

The social media are now the quintessential base of interaction in the world of internet. Everyone is using then on the daily bases. This article reports that 175 million people login to Facebook every day. To companies this is a foreseeable market that is sought. The companies who have integrated this aspect in their products have already gained their positive earnings as people share everything digitally by the word of mouth only.

Including this media as a feature for customers is sure to make customers happy and engulfed in an experience they are happy to try and invest in.

Mobile Computing

Now days everyone is holding a cellphone and being able to use whatever service is on the market is going to be judged upon or compared to other products by this factor.

One of the authors talked about Android. That is in fact is a big issue when a service is provided that it has to be available in the most recent and popular system in the market.

As this table shows, it is going to be imperative to be able to use it on one of the systems that are available and popular by users in the market.

Market Share:

mohammed.saati@gmail.com

Visualizations

Using the right schema of colors is very important to market the product. Not only that, but also finding the right design of the user interface is important as much.

Using touch screens is being one of the highest trends this year. So for a service to be touch-able service is going to score some points in the user market.

Advertisements

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: