Pages

Friday 27 May 2011

What is great about Software Engineering Career?

What makes Software Engineering important and interesting? It helps business, It helps customers solve problems in their business.

Thursday 26 May 2011

Career Focus: Software Engineering

It is interesting to read about a write-up on Software Engineering Career  in Todays's Engineer Relevance of Software Engineering is not only  because it is one of the fastest growing field but also because it enables and connects every other fields as well. It is both privilege and responsibility work in in such a field, and build a successful career

What is equally striking is that this writeup highlights the role of communication and analytical skills, product orientation, etc alongwith technical skills. For a truly successful career in Software Engineering, one needs to have technical skills alongwith relevant soft skills. It is not a choice of one or other but it is both together than makes a successful career in Software Engineering

Thursday 19 May 2011

A great career in Software Engineering!

Is Software Engineering a great career?

Answer is Yes, but it depends on you, it depends on how you make it. If you are prepared for what it takes to make it big in Software Engineering, you can truly make it big.

How to prepare for Software Engineering career?

To know that, we need to see what makes Software Engineering as a great career! Let us take a closer look.

For many outsiders, it might be charm of global work environment or magic of making a dump machine come alive. For many newcomers, it is often technical challenges and financial benefits. For practicing Software Engineers in the world of software development business, it is much more.

Software Engineering definitely involves software development, and software development involves programming when we look from a technical perspective. But business of software development, and experience of a typical Software Engineer, is not just that. It involves dynamically balancing various forces that comes into play in software development business. That include Technical Complexity but it is only a proverbial tip of an iceberg.

A closer look reveals much more.

1. Technical Complexity 
There was a time when programming was considered to be synonymous to software development. It might be so, for many outsiders even now. However, those who are actually in software development business would vouch that it is only part of the story.

We deal with multitude of technologies like database, application server,etc, knitting them together everyday. Irrespective of all learning done beforehand, in isolation, the real challenge is in  actually working with these technologies, knitting them together

2. Changes in Technology 
Many of technologies that we work with now were not existing a decade back. For instance, smartphones are popular but these were not in popular existence.  Again, Software as a Service (SaaS) is a relatively new concept and many of software development now are on these lines. Interestingly, many of these are themselves evolving and many more are yet to come

3. Domain Knowledge
As we get into Software Engineering career, we realize soon that technical knowledge alone is not sufficient. For instance, a programmer  developing software for healthcare industry is expected to have basic knowledge of healthcare business, to have any meaningful discussion within the team as well as to develop something of value.
 
4. Requirements Churn
Another reality that one can hardly ignore in software development is that requirements keep changing. Quite often, we end up revisiting design and making changes to software. These changes are critical for customer to use software effectively and must be incorporated within specified time.

5. Changes in Perspectives
Software  development is a team work. That is, different people work together to develop and deliver software to customer.  Different people play different roles. For instance, someone in the role of Business Analyst is responsible for interacting with the customer, understanding their requirements,  and communicating back to the team. Programmers are involved in doing necessary programming,  which is required to construct software. Project Manager is responsible for overall progress of software development project. There are many more roles involved in any non-trivial software development project.

Software is a construction in mind, and different people like customer, end user, Business Analyst, Project Manager, etc have different perspectives. Work can progress smoothly when all of them work together, communicating with each other and balance difference in perspectives for overall good of the project

6. Collaboration in Context
Days are over when software development is done by one or two people. Many of the software development project undertaken these days involve tens, hundreds or even thousands of people working together. In fact, many projects involve people physically located in different locations across the globe. There may not be any other industry that calls for collaborative teamwork of people of diverse skills to the scale that software industry demands. This is possible, and accomplished, as web technologies in its present state helps people across the world to communicate effectively with each other, in the context of project.

7. Inherent Complexity
It may not be obvious to an uninitiated but its importance can be guaged from the fact that complexity inherent in software development is discussed many times over in the industry and academia. It was discussed by Frederick Brookes in his classic paper 'No Silver Bullet - Essence and Accidents of Software Engineering' decades back. It still remains a formidable challenge, much more formidable than technical complexity

8. Software as a Business
It is no longer required to assert that software development  has emerged be a major profession, and a serious business. It is a reality that we find in our everyday life. Important point here is that, it is the strong base of satisfied customers, rather than the technical excellence in dealing with technical challenges, that leads to successful business. Obviously, this cannot be responsibility of only Project Manager who is overall responsible for project success, Business Analyst who interacts with customer, or software quality and testing professionals. It is a collective responsibility of every one in the software development project

Can one learn in advance, or can we need to learn the hard way. It comes, by experience. It comes, working with the right team. It comes, learning by practice. Interest? Visit ASSIST Academy Career Courses.

Wednesday 18 May 2011

Skills for a successful Software Engineering career

Software Engineering is a much sought after profession. It is also a profession where changes are drastic and competition is getting to be very intense world over. In this context, it is interesting to what it takes to have a successful Software Engineering career. As we takes a closer look, it emerges that Software Engineering is a profession that requires multi-dimensional skills for a successful career.


What is obvious are technical skills. These involve programming languages, technologies involved, Software Engineering tools used in the peoject, etc. These vary specific to project, and therefore it is important to have very good technical skills on popular languages, technologies and Software Engineering tools

However, these may help you to get going but in itself are not sufficient. You need to gain domain knowledge as well. For instance, it is important for developers working on a healthcare software to be familiar with healthcare business.

While importance of technical skills and domain knowledge are somewhat clear, there is yet another dimension which may not so obvious but very critical. That is, software development is a teamwork. Work delivered with a good domain knowledge and technology skills get consolidated only when it is complemented with soft skills; it helps to knit together the team and ensure that customer actually gets value delivered. This is largely a greenfield, an area which is not given sufficient attention, in general. There are plenty of 'generic' soft skills trainings but these do not help much in reality as it depends heavily on individuals to translate and adapt soft skills to software development business.

Can one acquire technical skills, domain knowledge and soft skills all in one go? That is one of the a unique value proposition of Career Courses offered by ASSIST Academy

Monday 16 May 2011

Importance of Training, in Software Engineering!

You would have noticed that critical skills that helped you excel earlier in your profession, no longer does. This happens, time and again. Technology is changing rapidly every day. That is all the more true in case of a profession like Software Engineering.

Well, we all know that. It is not that we do not want to learn new skills. We are also aware that it is critical to learn. Fact is that we hardly get any time to learn a new skill as we are busy with daily work pressure.

How do we bridge the gap? That is a good training would help. The challenge here is to choose the right one. The white paper 'The value of training' from IBM helps in making the right decision

Sunday 15 May 2011

Skills for 21st century

Everyone would like to excel in their chosen line of specialization.

Often, it is your skills that make a difference. The right skills help you excel in business and work environment.

It is elementary, and everyone knows. Yet what makes it complex is that key skills that help you stand out changes. What worked earlier no longer does, or rather does not reward as it used to. Well, world is changing even as we are seeing it.

What are they for now?

Thomas J. Bittman, VP Distinguished Analyst, Gartner Inc, has identified seven skills as below in his blog Skills for 21st century

Technology Skills
1. Information Literacy
2. Media Literacy
3. Information Technology Literacy

People Skills
1. Global Literacy
2. Flexibility & Adaptability
3. High-Level Knowledge Skills
4. Communication & Collaboration

An interesting video on Software Engineering Career

Saturday 14 May 2011

Getting to know Collaborative Application Development

Ever wondered what is Collaborative Application Development is?

Listen to this presentation on IBM Rational Team Concert to know more about it.

Wednesday 11 May 2011

Process + People + Tools = Success

Success! A word makes all of us feel comfortable and thrilling.

In the current software development world, unfortunately, it is happening very less. It does not mean that the software development activities that we are doing is waste or without success. There are lots of over runs by means schedule and money. If would like to correct this we should have the right formula in the place.

Right people doing the job with the Right Process using the Right tools. It is very nice to listen. Many a times it is very difficult to follow where we go wrong. We often give undue importance to one of the three elements. Or otherwise, we use to have a blind conviction to be successful with only having one of the three elements. But in the real sense, only a perfect combination of the three can bring success.

Though the software development industry is so matured, still we live with the myth that tools can bring sea of change to the environment. Yes. It is partially true, if it is properly identified and used to automate the right activity in the process. The expectation levels of automation has to be controlled by a real deep look into the tool as well as in the process element (activity) which is getting automated. When we does this, you will come to see, very significantly the methodology behind the tool is more important.

Success is assured only if we are able to choose the right set of process elements, identified activities which can be automated with the right set of tools. Of course, the right set of people enabled with the process and methodology along with every tool and automation.

Importance of process in software development

Every repeated activity that we are doing in the day-to-day life, we are following a process knowingly or unknowingly.

There are certain jobs in which we follow a strict and rigid set of activities, formally qualifies to be called as a process. Adherence to a particular process ensures the repeatability of the same activity, in the same manner, without taking so much into consideration of the person element. In other words, whenever we would like to have a routine work to be done and we would like to minimize the impact of the individual who carries out that activity, we should have implemented as well as established implemented process.

When we look into software development, even today, it is practices as more or less an intellectual activity. Though there are lots of process standards and assessment techniques available in the market, the industry is still reluctant to fully adhere to the formal way of carrying out it as an engineering activity. Though software has become the pivotal point for any major activity, the adoption of software engineering principles at the development phase of any software is very minimal or even nil.

The day has come to realize that software development is nothing but yet another manufacturing activity. In all the manufacturing activity we use to have to major classifications called, engineering phase and production phase. Unfortunately in the current context of software development, we are conveniently forgetting the engineering activity part.

We make straight dive into the production activities, most of the time. This culminates, majority of the time, into major disasters and reworks, which is unplanned for. The model of the system or product to be developed, is carried out by few individual brains in an asynchronous manner. There will not be any workable model in the first phase as live or simulated, which can be used for further work and as a base for continuous improvement, quite often.

Software Engineering Scenario - Career Perspective

A well paid job in United States, or in European countries, is a dream of every Indian student. As you know, many of these countries themselves are now facing problems of unemployment, leading to increasing restrictions for jobs related visas in these countries. Therefore, Getting a decent job and a successful career is becoming very difficult with high competition in global market scenario.

Fortunately, situation is not as grim as it may appear, if you take care to maintain your competitive edge. A recent report from World Economic Forum suggested that "By 2030, the developed world will need millions of new employees to sustain economic growth, the report said. Of these, the United States will need 26 million employees, and western Europe will need 46 million employees." The report also suggested that " A World Economic Forum report indicates that India will face huge skills gaps in some job categories due to low employability over the next 20 years"

This means, for every one seeking a good job and a successful career, that these cannot be taken for granted any more. That is, an engineering degree, and knowledge of one or two programming languages are not sufficient enough to get a good job. Yet there are plenty of opportunity if you have critical skills enhancing your employability. "We are facing an unprecedented mismatch of skills and personnel. Unemployment numbers will rise from 18 million to 22 million this year, even though there are four million vacancies that employers cannot fill" said Rudi Thomaes, CEO of the Federation of Enterprises in Belgium

Interestingly, Gartner Inc, world’s leading information technology research and advisory company, has predicted that "By 2015, tools and automation will eliminate 25 percent of labor hours associated with IT services. As the IT services industry matures, it will increasingly mirror other industries, such as manufacturing, in transforming from a craftsmanship to a more industrialized model"