- Key Takeaways
- 1. Know Your Requirements…
- 2. …and Document Them
- 3. Don’t Use Pseudo Code
- 4. Agile Programming is Not an Excuse for Poor Planning
- 5. Be Clear and Decisive
- 6. Stay Ahead of Your Developers
- 7. Avoid Scope Changes
- 8. Don’t Assume Anything
- 9. Set Realistic Deadlines
- 10. Alter Your Schedule When Necessary
- 11. Test Your Own Application
- 12. Stay Involved and Keep Communicating
- Frequently Asked Questions (FAQs) on Better Developer Communication
Key Takeaways
- Understand and document your requirements before approaching your developers. This will help you explain your vision more clearly and avoid misunderstandings.
- Be clear, decisive, and stay ahead of your developers. This involves making prompt decisions, sticking with them, and preparing for the next steps in the development plan.
- Maintain regular communication with your developers without pestering them. Stay involved, test your own application, and be open to altering your schedule when necessary.
1. Know Your Requirements…
How can you explain your requirements if you don’t know what they are? Developers are often faced with vague, wishy-washy briefs such as “it needs to be just like Facebook, only — er — like, different”. A good developer will immediately begin to analyze your idea. They’ll ask questions. They’ll pose “what-if” scenarios. No one will expect you to have all the answers, but you should be able to discuss the majority of problems. If you can’t, you haven’t thought the project through. It’ll fail.2. …and Document Them
Putting your requirements on paper may not be fun, but it’s necessary. Interface sketches and flowcharts will help you identify functionality, understand the technicalities and explain issues. Consider hiring a systems analyst if you can’t do this yourself. They’ll ask identical questions, though.3. Don’t Use Pseudo Code
If you’re not a programmer, please, please don’t attempt to write pseudo code — it won’t help. You’ll almost certainly over-complicate the easy stuff and gloss over the complexities. Your developer will need to reverse engineer your ‘code’ to determine what you actually wanted to achieve. Pseudo code is useful when developers discuss algorithms with each other. There are few other reasons to use it.4. Agile Programming is Not an Excuse for Poor Planning
Don’t think that rapid, agile software development excuses requirements analysis. It may reduce some of the up-front planning, but you’ll still need to make just as many decisions — if not more.5. Be Clear and Decisive
Programmers make thousands of decisions on your behalf. However, they will inevitably have questions during the development process and failing to providing a definitive answer will halt progress. As good manager, you’ll take responsibility, make a prompt decision, stick with it, and face the consequences if it’s wrong. Bad managers are unavailable, avoid answering the question, seek opinions from 57 other (disinterested) colleagues, then blame the developer for delays or bad decisions.6. Stay Ahead of Your Developers
Good programming teams will have a development plan — components and features will be implemented in order. Understand that plan and prepare accordingly:- know what decisions need to be made prior to implementation
- prepare dummy data or test cases
- organize the production of content, graphics, videos or other media.
7. Avoid Scope Changes
Changing scope can destroy a project and put a deadline at risk. You may have seen a cool feature elsewhere, but it doesn’t need to be implemented immediately. By all means, have an informal discussion with your developer. State it’s something you’re considering for a later version — don’t distract them from the agreed tasks or demand immediate attention.8. Don’t Assume Anything
One of the worst statements made by non-developers is: “Hey, we should implement feature X. It’s easy, right — it’ll only take a few hours.” It might take a few minutes. It might take months. It might be impractical. It might be technically impossible. You don’t know — if you did, you wouldn’t require a developer to implement it for you.9. Set Realistic Deadlines
Like anyone, developers work best when they have an agreed deadline. However, those deadlines should be set by the developer themselves or someone with programming abilities and in-depth technical knowledge of the system. Setting an arbitrary or unrealistic deadline will result in a bug-ridden monstrosity which takes far longer to fix.10. Alter Your Schedule When Necessary
Application development is complex. Development estimates are just that — estimates. Programmers will encounter unforeseen problems and changes to the project scope (no matter how hard you try to avoid them). The schedule will inevitably change as the project progresses. Do not be afraid to modify the completion date accordingly.11. Test Your Own Application
Don’t rely on your developers or other people to test your application. It’s your vision: test it yourself at every opportunity. That said, be aware you may be running unfinished code and check progress against the development schedule. Don’t send emails ranting about feature Y not working when that code hasn’t been started.12. Stay Involved and Keep Communicating
Most people lose interest in their own projects as time goes on. If you can’t remain enthusiastic, don’t expect it from others. Contact your developers on a regular basis. You don’t necessarily need to organize formal progress meetings — just show your face and ask how things are going. That said, avoid pestering them. Your project won’t be completed quicker if you call your developer every 10 minutes to ask “are we there yet?” Let your developer do their job. Do you have any developer communication tips? Do you have first-hand experience of bad management? Comments welcome…Frequently Asked Questions (FAQs) on Better Developer Communication
What are some effective strategies for improving communication with developers?
Communication with developers can be improved by understanding their work style and adapting your communication style to match theirs. This includes using clear, concise language, avoiding jargon, and providing specific, actionable feedback. Additionally, it’s important to respect their time and avoid unnecessary interruptions. Regular meetings can also be beneficial for keeping everyone on the same page and addressing any issues or concerns.
How can I ensure that my feedback is constructive and helpful for developers?
When providing feedback, it’s important to be specific and actionable. Instead of simply saying that something is wrong, explain what the issue is and suggest possible solutions. Also, remember to provide positive feedback as well, not just criticism. This can help to build a positive working relationship and encourage open communication.
How can I better understand the technical aspects of a developer’s work?
One of the best ways to understand the technical aspects of a developer’s work is to ask questions. Don’t be afraid to ask for clarification if something is unclear. Additionally, taking the time to learn about the technologies and tools that they use can also be beneficial.
How can I avoid miscommunication when working with developers?
Miscommunication can often be avoided by being clear and concise in your communication. Avoid using jargon or vague language, and always make sure that your expectations are clearly understood. Regular meetings and check-ins can also help to ensure that everyone is on the same page.
What role does empathy play in communication with developers?
Empathy plays a crucial role in communication with developers. By understanding their perspective and challenges, you can communicate more effectively and build a stronger working relationship. This includes respecting their time, understanding their work style, and providing constructive feedback.
How can I encourage open communication within my development team?
Open communication can be encouraged by creating a safe and supportive environment where everyone feels comfortable sharing their ideas and concerns. Regular meetings and check-ins can also help to facilitate open communication.
How can I manage conflicts within my development team?
Conflicts can be managed by promoting open communication and addressing issues as they arise. It’s important to listen to all sides of the conflict and work towards a solution that is fair and beneficial for everyone involved.
How can I build trust with my development team?
Trust can be built by being reliable, honest, and respectful. Show that you value their work and their time, and always follow through on your commitments. Additionally, providing constructive feedback and recognizing their achievements can also help to build trust.
How can I improve my communication skills to better work with developers?
Improving your communication skills can involve a variety of strategies, including active listening, clear and concise communication, and empathy. Additionally, understanding the technical aspects of their work can also help to improve communication.
How can I ensure that my development team feels valued and appreciated?
Ensuring that your development team feels valued and appreciated can involve a variety of strategies, including recognizing their achievements, providing constructive feedback, and showing that you value their work and their time. Additionally, creating a supportive and positive work environment can also help to make them feel appreciated.
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.