jump to navigation

Five Recent Trends that Every Software Engineer Ought To Know December 16, 2011

Posted by polyakd in Software Engineering.
trackback

This semester’s seminar in computing has been a survey of trends effecting the field of software engineering.  While compiling my thoughts about the items discussed throughout the semester and the 2011 trends in Deloitte report for my final paper I recognize the following five elements as most important:

  1. Development Operations
  2. Software Product Lines
  3. Model-Driven Engineering
  4. Agile Development
  5. Applied Mobility
Development Operations
The overall goal of development operations is to align the goals of development teams, technology operations, and quality assurance.  Development Operations impact overall software design and project management to ensure project success throughout project lifecycle.  Of primary importance within an organization is to break down the walls between development and operations.  Too often problems occur because of communications barriers between the groups that hinders overall success of a project.  Both development and operations need to share a common goal; they need to be aligned in a way that is beneficial for the business.  When development and operations exist in a business as separate entities problems arise.
Software Product Lines

Software product lines are a very important trend in business management.  For a corporation it is important to develop a line of software components that can be extended into many products, expanding and ensuring software reusability.  As a new Software Engineer for GE Healthcare in the Magnetic Resonance division (MR) I can say that that product lines make tremendous development and business sense.  The team I work with develops the base software packages used by software development teams in the other imaging modalities.  From an overall business standpoint it is cheaper and more efficient to have one team develop central frameworks to be used and integrated by other teams working into products across all company imaging modalities.  This trend has a huge impact on overall software design because generic components can be reused and integrated into every system.  This also impacts overall verification and validation because the component integrated has been tested to perform in accordance to its specifications.

Model-Driven Engineering

In the future I believe Model-Driven engineering will continue to have a huge impact in software engineering.  Model-Driven engineering aids in practical development because it takes into account the domain the software will be used and allows engineers to tailor the modeling to the software’s specific domain.   This requires more initial resources (e.g., time, and money), but speeds up development and increases overall quality in the long run.  Model-Driven engineering in itself is a set of tools to help development.  As a BioComputer engineer I can see the value of Model-Driven engineering especially in embedded systems.  Model-Driven tools can help with overall embedded programming and help ensure quality.
Agile Development

Agile development is becoming an increasingly more common software development methodology.  However, what is interesting to me is the acceptance of agile development for large teams, large complex projects in large companies.  When interviewing with GE Healthcare I was please to learn of their use of agile development in their projects.  Agile development is just not a methodology I seen a company of nearly 300,000 individuals adapting.  However, it works, and can work very well for projects, teams, and businesses of any size.  As the paper, Architected Agile Solutions for Software-Reliant Systems points out, “There are no single one-size-fits-all process or product models that can be applied to the wide variety of systems needing to be addressed now and in the future” (http://csse.usc.edu/csse/TECHRPTS/2010/usc-csse-2010-516/usc-csse-2010-516.pdf).  The increasingly popular agile development trend requires a set of tools and systems that help with the process, and impacts software engineering through software design, management, and the software process.

Applied Mobility
The second to last trend in the 2011 Deloitte report is applied mobility.  This is a clear trend, and the role of mobile computing will only increase over the years.  In regards to mobility, it is necessary from a business standpoint to support either a mobile website, application, or both to you customers to increase overall usability and integration into todays mobile society.  Mobile computing requires many software techniques, including: programming fundamentals, software design, testing, human-computer interaction, and software process.
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: