What is the difference between update
and upgrade
in the context of application software?
The difference between `update` and `upgrade`
deploymentsoftware-updatesterminology
Related Solutions
In my experience the best functioning teams do have a bit of skill overlap between the various roles in the lifecycle, to ensure that there's no "throwing over the wall" but a smooth transition between each stage.
During development of a product (or features/stories within a product), a product manager and engineer are aligned as majority owners of two stages, the definition (PM) and implementation (engineer).
Product manager — Product managers are essentially "feature designers" or if not designers, they are owners. Their input is customer/business requirements and their output is product specifications for engineers to work from.
A product manager will typically do initial investigation for what features are needed (in a bigger group a business analyst will help with this step), then organize that into rough requirements and product proposals. At some point an engineer or architect may need to become involved to help the product manager know what is viable and adjust accordingly.
After the spec is delivered, the product manager is often essentially the "product owner" in the Scrum process - the person responsible for defining "done" and accepting the final work.
Once the product is finished, product managers might also be responsible for helping customer service, marketing, and even a sales department understand what has been developed and what the most attractive features are.
Engineer — As mentioned above, the engineer can be brought into the process early to help with the definition of the requirements. But the primary part of the engineer's job starts when the product specification is defined and approved for work. The engineer implements the software according to specification, as well as take any uncovered problems in the spec back to the product manager for consideration.
Typically once the product is well under development, the product manager will step a bit into the background while engineers might be more involved in the QA process.
As far as overlap — as I mentioned there will be some back and forth between the PM and engineer. During this evolution any technical understanding the product manager has will help minimize the engineer's time needed, and the better the engineer understands the product needs the more helpful their advice will be.
I think it rather falls along the lines of "All SDKs are APIs but not all APIs are SDKs".
An SDK seems to be a complete set of APIs that allow you to perform most any action you would need to for creating applications. In addition an SDK may include other tools for developing for the platform/item that it is for.
An API on the other hand is just a series of related methods that may be good for a specific purpose.
As an example, the JDK (Java Development Kit) contains the API as well as the compilers, runtimes, and other miscellaneous tools. The Java API is simply all the libraries that make up the core language that you can work with out of the box.
Best Answer
Depends entirely on the installation technology, company developing the software and the whim of the person using the terms. Generally though, updates stay within a product version (for example, hotfixes), while if you want to move to a later version, you would upgrade.
So you might install an update (hotfix) for Office 2007, or you might upgrade to Office 2010.
This page gives the definition according to Windows Installer: http://msdn.microsoft.com/en-us/library/aa370579(v=VS.85).aspx