Software architects

Koziarki’s recent post inspired me to share my opinions on the matter, seeing that throughout the years I experienced a handful of similar situations myself.

First of all, let’s understand the role per se. Someone gets hired for defining those requirements, generally by talking to the customers. That person is usually a software architect with some experience in development, which gives him/her the necessary understanding to anticipate when a requirement will have a big impact on the development timeframe and thus the final cost. During the consultation process, said person negotiates with the client so he will buy only the bare minimum he needs, and agree to further iterations based on real needs that develop over the course of actual usage of the software.

Right? No, not really.

Strangely enough, someone with next to zero experience with software architecture/development often ends up in that position, selling unrealistic expectations to a customer who’s even less informed on the topic, because whoever hired him/her went for a “people person”. That’s terrible because you’re going with the assumption that your customer’s expectations need  to be handled as opposed to looked after. Your business will have to do a lot less explaining if you get into the business of exceeding expectations. You’ll also make more money in the long run.

So here’s a crazy idea: If you’re out to hire a consultant who will bring in requirements for building software, hire someone who actually can give valuable advice based on personal experience. Go for an ex-software developer, or a designer with some development background. No such thing as crazy requirements will land on your developers because they won’t even leave that first conversation with the customer.

For the record, this isn’t about shielding the precious developers from the evils of the real world. It’s about not having your company enmeshed in one of these two situations: having to go back to the customer to explain that due to unforeseen circumstances, X amount of days/money extra will be required to complete the project, or having to squeeze your developers for extra time to cover for the mistakes of whoever brought in the plan.

  1. julio-ody posted this