Ask HN: How do you communicate technical ideas from devs to non-devs, vice versa
My problem is my boss, who isn't a developer, will send me requirements to code something. This could involve 4-5 different objects in the db, and moving data between those objects and their fields. Basically I feel like I waste a lot of time understanding the db relationship between the objects and the intended steps to achieve to desire result (sudo code).
My main concern is to not waste time coding, by making sure I understand the requirement and steps needed to complete it. This is what I've tried to resolve my problem: once I receive a requirement, I will create a doc with my understanding of the problem. This includes sudo code, object and field names, and any additional logic. Once the doc is done, I give it to my boss to sign off on, to make sure I do understand what they want completed.
As I've attempted to make a tech spec doc, it just feels messy and unclear.
One additional goal I'd like this tech spec doc to achieve, is to be able to hand it off to any other developer, and they can understand if it's something can be achieved or not.
Sorry if these seems jumbled and unclear. I'm not quite sure what discipline is needed to solve my problem. It seems like a mix between technical writing and documentation.
11 comments
[ 2.5 ms ] story [ 39.6 ms ] threadIt's good he's thinking about the data model, but he's introducing meaningless friction in your relationship by effectively requiring this additional communications step. You could spend that time coding.
In this example, your contract with him is to deliver a data model that optimizes for business requirements, minimizes cost, and maximizes speed. All those variables affect the data model, since you obviously need to consider tradeoffs when designing schemas or creating indices. You have the expertise to make decisions about these tradeoffs. Your boss only has expertise on the business requirements. So why would he try to optimize the data model himself if he is only considering a subset of the variables? He needs to trust you for your expertise and remember why he hired you, IMO.
I think that the discipline you are looking for is "analysis". it does not matter all that much which specific form document takes - requirements matrix, use cases, user stories, mockups, ... . Important is that it is stored on one place only, easy to update and updated often.
http://www.visualusecase.com/download-visual-use-case-person...
Here is a video about the product you can share with him:
http://fast.wistia.net/embed/iframe/eamru13sx5?autoPlay=true...
As an aside, you mean pseudo code not sudo code. Sudo is a linix/unix command
Short answer: Lots of dialogue, feedback, listening and visual communication (i.e. whiteboard)
Long answer: It's more complicated because the person impacting you is your boss. Ask if he can involve you in the design process next time and let him know that if he can, you'll be able to understand things more efficiently and there's less risk of doing it wrong. When designing, share ideas but avoid directly saying he is wrong. Ask thoughtful questions like what is the business trying to do and what are they trying to solve? What will they eventually do with the database/system?