Every successful project begins with a design created for success. Creating a great design that will succeed requires knowledge and experience in all the areas of development and a greater vision to encompass the growth and expansion of the project idea.
Ever-Evolving "Terms" ... a few words:
In the IT world, technologies evolve at a very fast pace and the terms used to describe the technologies and ideas seem to evolve even faster than the technology itself. Businesses and IT companies create new models all the time to leverage technologies in a way to describe efficiency of development, methodology of development, and sometimes just so they can stand out from others. Sometimes terms for things are even created to make it more difficult to compare their ideas with others. All these ever-changing terms just adds complication to the laymen who is really just looking for solutions.
A recent term used to describe a developer who is knowledgeable to “all” areas of particular projects and systems is referred to as a “Full Stack Developer”. This term is often used to describe the “manager” of a project, because the idea of “Full Stack” is that there is knowldge about every layer involved with the project as a greater whole. This allows the project manager to have a greater understanding of each of the moving parts, and assist and direct the individuals assigned to each part of the bigger puzzle.
In some newer ideas of how to optimize development, many companies have determined that it is sometimes more efficient to have small numbers of developers work together in a “rapid development” environment to create “proof-of-concept” models and systems of the ideas at hand. This type of development technique requires each of the individuals involved to fall more into the “full stack” developer category because it turns out that many times the original idea morphs into something different once the original idea is able to be experimented with more interactively.
Remember, that the people coming up with the original idea are often not the same people who understand the technologies needed to implement the system, nor do they want to have to understand it all themselves!
I actually recently discovered another term for one of the things I have specialized in called “Protocol Engineer” and this turns out to be a very sought after talent! In the new world of internet and Information Technology and the systems that support it, “modules” within the computer systems have to “talk” to one another; typically in a real-time environment, and they do so in varies ways in almost every website these days at some level or another. Designing “protocols” and developing the systems to support this, is a very important part of the infrastructure of the systems designing. Sometimes these protocols must conform to certain standards so they can be “compatible” with other like-systems, and sometimes they need to be unique for various reasons, including security purposes.
Most of these ever-expanding ideas, concepts, and techniques, are not really new, but they have made their way into the IT industry as such to really better identify the large amounts of working parts happening in the background of what may seem to be a simple idea. Actually, it is my opinion, that a well designed system that has many working parts working in tandem and harmony with each other, should “LOOK” simple to the observer.