Vision without Execution is just Hallucination
Thomas A. Edison
Software development is a tough process. It starts off by identifying and understanding what the user/client needs, and ends by deploying a solution that may, or may not, satisfy the user. During this journey, a group of Homo sapiens work together, organize teams, conceive plans, define tasks, rules and tools. They spend time and effort specifying, designing, programming, testing, documenting, bug fixing, etc. and hoping that they will deliver on time.
Some of those sapiens groups outperform their peers, and manage to provide high quality solutions on time. Other groups fail to deliver any solution, and waste their effort, time and resources in vain. Successful software developers (at least some of them) decided to help the others with their skills, by teaching them how they are doing Software development. This is why, on February 11th – 13th, 2001, at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah, USA, seventeen Homo sapiens met to talk, ski, relax, and try to find common ground—and of course, to eat. What emerged was the Agile Software Development Manifesto.
Agile is a Software development mindset that embraces change. It is neither a process nor a model, but rather a set of values and principles. It is a flexible approach for Software development, that helps organizations to adapt fast to the market change.
Processes and documentation are important, but not the main concern in Agile mindset.
There exist a wide variety of software development models, that have evolved to address the evolving challenges facing the software industry. In this post, the following models are reviewed:
We present a summary of their pros and cos, and the cases for which each model is best suited for. Note that the same models apply to other product (or system) development, therefore, we will use software and product interchangeably in this post. It is worth noting also that, in practice, most organizations combine two or more models in their development process.
First, let’s take a look at the software development phases.
The conventional way to conduct software development projects consists broadly of the following steps:
This sequential process is called Waterfall, as it can be illustrated in the figure above. Continue reading “Software Development Models”
In May 1834 Moritz Jacobi built the world’s first real electric motor in Königsberg. There had been other rotating electromagnetic devices before but none of them developed a significant mechanical output power. The first rotating device was already created in 1822 by Peter Barlow (Barlow’s wheel).
Jacobi’s electric motor developed as much as 15 watt. The film presents an authentic replica of his construction in action.
This first electric motor set a world record in performance that stood for four years and was improved in September 1838 only by Jacobi himself. It was not before 1839/40 when other developers worldwide managed to build motors of similar and later also of higher performance.