The very first chapter titled “Software development in twenty-first century” discusses about what seniority really means and the new reality faced by developers in the twenty-first century. Seniority is transient and relative, there is no such thing as a senior or junior developer.
Mancuso argues seniority is not just about composing code or being exceptionally acquainted with a dialect or system. Developers need to know how to address clients, automate tests and deployment, and settle on mechanical decisions that may influence the whole business. Companies are looking for developers who, besides being great at writing code, can also help in many other areas of the business. Time has changed now, developers need excellent communication skills.
Furthermore, the author discuses about the scale of projects. Today, we rarely see an application that does not integrate with other applications. Modern applications are built using many technologies, with multiple integration points, and developed in an iterative way.
Personally, I used to think people in computer engineering and science field doesn’t need to verbally communicate with other, but I was wrong. We, coders, need to have skills to talk. I took public speaking class on last year. It went well. I am good at speaking, but since I moved to US just a year ago, I do have accent problem. So, I will be trying to work on my accent in coming days.
The other thing, I learnt from this chapter, is to integrated bunch of meaningful services and features right into a single software/app. I will be planning boarder while designing the UI/UX of the app, so that users, don’t need to quit the app which increases the audience engagement.
The second chapter “Agile” revolves around the definition of Agile, as well as the Agile Manifesto and the problems that many organizations face when adopting Agile.
Agile is a combination of methodologies and techniques. It is all about all about quick and short feedback loops. The Agile disciplines and methodologies is divided into two main groups: process-oriented and technical-oriented. Process-oriented directly affect how teams and organizations work, collaborate, and organize. Whereas, technical-oriented disciplines are more specific to the challenges of developing, growing, maintaining, and delivering the software itself. Similarly, Agile Manifesto is about individuals and interactions over process and tools.
Furthermore, the author discusses the agile transformation era, the agile hangover, and the partial transformation. He states during Agile adoptions, many companies tend to pay a lot of attention to Agile processes but totally neglect technical practices. Improving the process without improving technical excellence is pointless. For a full Agile transformation, companies need to embrace Software Craftsmanship.
I think different project management and software development methods such are Agile and Scrum are of course needed, but we need to make sure that everyone’s in the project can fully utilize the methodologies and different facilities that they offer in order to achieve excellence.