Now this is not the end. It is not even the beginning of the end. But it is perhaps, the end of the beginning. - Churchill
It has been a while since I posted anything on my site. Today was a great day for us. 11 years and 2 months, the amount of time it took for me to become a U.S citizen. This afternoon at the USCIS office in Durham NC, I and my wife underwent the Naturalization Oath Ceremony along with 51 other individuals from 30 nations and became a U.S Citizen. Everyone can see the excitement and jubilation "in the air". As a visual manifestation of how diverse the crowd was, the officer who lead the proceedings read off the names of all the different countries that were represented, asking people to stand up when their country was read. I felt proud as the name of my first country Pakistan was called. I won't go into all the details of the proceeding but it was definitely an amazing experience. After ceremony, seeing everyone accepting their certificates of citizenship, posing for pictures with the certificates proudly displayed, it was abundantly clear that we all felt a great sense of accomplishment, joy and pride. It was a moving experience that was also a great reminder of how difficult it was to get to this moment.
So, today, I am a citizen of United States of America. Today I felt that I have finally reached an end and feel like I've had a huge load lifted off my shoulders now that I'll never have to deal with U.S. immigration again, what a great feeling! I've lived in this country for more than 11 years, took care of my family, owned a house, paid my taxed every year, completed two master degrees and eagerly waited for the time when I can apply for citizenship. And now that the moment has finally come, the one thing I can safely say I feel is "relief," an emotion I'm sure is shared by others who joined me in taking the Oath today.
Theodore Roosevelt once said, "Nothing in the world is worth having or worth doing unless it means effort, pain, difficulty"
This is a great presentation by one of the best technical author, Martin Fowler. One of my all time favorite book, Refactoring: Improving the Design of Existing Code is also written by him. In this Keynote address, Martin discusses there important topics
- Non-deterministic tests
- Good software design
- The current and future state of Agile
Earlier this week, I attended a two day class for Certified Scrum Master conducted by Bob Hartman who is known as "Agile Bob". I have only one word to explain the class and instructor - "wonderful". We've been working on managing our projects at work using some sort of Agile model for a while now. I've read few books and articles on Scrum before I went for this class. However after taking class, I have a firm graps on Scrum concepts and this increased knowledge has given additional ideas on how to improve our existing processes.
Bob is an excellent and entertaining instructor with tremendous experience in coaching Agile/Scrum teams. You can read his blog at Agile for All. The course content was well balanced between theory and practice exercises and case studies. There were very few power point slides and every part of the course was designed to keep attendees engaged and having fun while learning the material.
Overall I would strongly recommend this class to anyone who is interested in learning about this topic.
I have been reading the book title "Outside-in Software Development - A Practical Approach to Building Successful Stakeholder-based Products" as part of my MBA course work. I'll try to post few blog post outlining few important points discussed in the book. The authors primarily show how to identify the stakeholders who will determine a product's real value, shape decisions around their needs and enable teams to deliver software that achieves broad, rapid and enthusiastic adaptions. It is an on-going challenge for software development teams to build softwares that "delights" their customers. Challenges arise from the fact that precisely how one supposed to do this too this that is often left to conscientiousness and integrity. The book provides a clear framework that any development team can quickly benefit from, regardless of project scope or type.
Chapter 2, "Understanding Your Stakeholders", outlines different categories of stakeholders and describe how each one affect various aspect of products being built. Their a four distinct steps in a stakeholder analysis
- Identify the stakeholders
- Understand their needs
- Communication with stakeholders
- Align stakeholder goals with development ativities
Stakeholders are defined by people for whom you develop a software product; they affect and are affected by the products. There are five categories of stakeholders are indicated in this book
Principals: They have the authority to acquire and deploy the software product and are usually the one who have championed the need for the specific product. Their thinking is mostly focused on business value. We often call these stakeholders as "clients"
End-users: These are people who will interact with the software product. Their experience with the product will have a significant effect on the ultimate success. These end-users may take variety of roles when interacting with software product. They may be knowledge workers, system administrators, business partners or even internal staff engaged in support activities
Partners: They will make your product work in real life, such as operations teams, business partners and system integrators. In my opinion, hosting providers fall neatly into this category. They have an integral role to play to make a product "consumable" (more on this in a later blog post)
Insiders: People within the organization, such as developers, support engineers and sales, architecture and marketing teams.
I'll continue this discussion of stakeholder identification in my next post that will include "Stakeholder Goal Map", relationship between stakeholders and alignment of stakeholders' goals with product development.