I am really excited that I am starting with a new book this week. The first chapter of this book is about what it means to be a software developer in the 21st century. I found it really funny when Sandro (the author) says that back in the 1990s if you wrote code that nobody understood, you were considered a senior developer. Wow! I wish that was still true today. I can easily write code that nobody understands; I even wrote a program that even I don’t understand when I look back at it today!
According to the author, seniority is relative. Having ten years of experience is not the same thing as having one year of experience repeated ten times.
To be a developer in the 21st century means that you must be proficient in many different technologies, wear many hats and be active in all phases of software development.
The second chapter of this book is about Agile. What is Agile? Agile is a combination of methodologies and techniques that can help teams and companies adapt to the changing nature of software projects and also reduce the risk associated with them. There are four goals of Agile which are summarized in the Agile manifesto and twelve principles behind the agile manifesto.
Of the twelve, I think the second principle is the most important: welcome changing requirements, even late in development. This principle I think is why we use Agile and is the most useful. In the traditional waterfall approach to software development, all of the requirements are gathered and the system is designed based on the requirements before any implementation or testing is done. And so if there are any new requirements, it is very hard to incorporate them into the existing design and would usually cost more time and money. All of these are avoided in the Agile approach to development; since the build software iteratively over small periods, we are able to catch any mistakes early on or incorporate new requirements easily.
The rest of the chapter goes on to explain why Agile has not worked at certain companies.
From the blog CS448 – The blog about software by Sudarshan and used with permission of the author. All other rights reserved by the author.