Would reading a book or getting a certification, make a developer a good architect ? How much of the practical technical expertise would one require to go in that direction ?
specifically, how does one decide that a particular frame work or a design suits the project they are working on ?
Hi Kranti. For me, the software architecture role is a role that you need to evolve into and it requires a depth of technology knowledge and a breadth of experience alongside good soft skills (e.g. communication, leadership, motivation, etc). Reading books and taking certifications can help with some of the basic knowledge, but they are not a substitute for real-world experience. And that's really one of the big problems with software architecture ... most organisations don't have apprenticeship models in place and therefore it's hard to gain that initial experience needed in order to do the role.
To pick up your second question, this basically comes down to asking whether your architecture "works". This is why I recommend that some up front thinking is done before coding starts, and that any major risks are identified and mitigated, ideally through writing code (e.g. prototypes).
subject: Software Architecture for Developers Question