Saturday, January 31, 2009

Architecture [Jane Divinski]

It’s essential to have good architecture for a software product; it’s also key to architect appropriately the engineering group.
You might think that the ideal team is a group of very experienced software engineers. Yes, in the early days of a startup this can be the optimal team. However, after the initial proof of concept period it’s actually preferable to have a varying amount of depth in the group. For a while the senior folks will gladly do each and every mundane task along with the exciting, challenging ones but at some point the thrill is gone. Handing off such tasks to less experienced engineers makes good sense for a variety of reasons, including cost.

Depending on the type of software product being developed it may be necessary to have engineers with practical operational experience as well as those who have exclusively focused on product development. This is particularly relevant for large web applications. How much interaction will the development team have with other functional groups? Again, depending on the type of product under development you might find that only a subset of the software team works closely with other groups. Other times it’s essential that each developer be capable of communicating frequently and clearly with people in product management or manufacturing or even directly with customers.

One concise definition of architecture is “the way components fit together.” An engineering VP wouldn’t leave it to luck to have a decent software architecture; likewise it’s good to have at least a mental rough draft of what the ideal people infrastructure should be. In both cases, whether architecting a product or a group, ongoing adjustments will fine-tune the original plan.

___________________________

Jane Divinski, Engineering Management Consultant since 1994
http://www.jadski.com

No comments: