Hacker News new | ask | show | jobs
by niatrecsa 1390 days ago
As someone who has held both roles I agree with this point, though the same vice versa can be said about operating with certain complexity. Developers need to deal with a considerable scale of complexity too, with regards to various technologies and practices, that architects can't be expected to be proficient in. The key to success is your architects and developers having an affinity for each others role and responsibilities, and management ensuring appropriate conduits to keep the two engaged.

I've been a solution architect embedded with a team of 4 devs, but was constantly dragged into meetings by more senior architects collaborating on the wider platform we were re-writing. That collaboration was important, but it consumed too much time. At the time I lost connectivity with the developers and they were to a degree twiddling their thumbs while a design was nailed out.

Since then I've come to see the benefit of design and architecture stages including the actual developers as much as possible/as much as they want to be included. By that I mean specifically things like getting developers to pair with you on proof of concept work, where you need some form of discovery that will lead to a design decision; pairing with developers on pieces of analysis and documentation around the current state of the system/application, or business/user workflows (in teams where there has been no business analyst).

With conceptual/high level design you might not need much developer input, but when you get into the detailed design/logical design dev input can be crucial (especially if you don't know a lot about the current state of a system). When I'm putting together a design I like to go as wide as possible first with the scope, and then fill out the scale of each area with details after further analysis. Getting your developers (if they're available), to help fill in some of those gaps can be beneficial.

Getting that early engagement with the actual developers is key, and in my opinion taking a more agile and scrum approach to the architecture is much better than doing all the big design up front with zero developer input and then throwing it over the fence. That said, your development team needs to be geared for this, and some might not be, if all devs are busy delivering feature A while the architect looks ahead at what's next. But if I can get time from at least 1 developer who has a good handle on the current code and tech stack, then that's definitely something I capitalize on.