Communication You may envision communicating with a software developer to be quite difficult, due to their nature of sitting behind a computer screen by themselves for hours on end, however in our experience that couldn’t be more wrong. Our developers are extremely passionate about producing great software. Their communication skills are strong as they work closely with our clients and their users to learn, explore, teach, problem solve and help them make the right decisions. They are innovative, creative, extremely detailed and intelligent people that have a curiosity and love for learning. Due to their analytical mind, they evaluate all aspects of every situation, making them brilliant at solving all sorts of problems. Normal rules apply when communicating with a developer. Find out a bit about them and build rapport like you would with anyone else, according to the characteristics of each individual. They’re just as diverse as everyone else, and in our experience extremely fun people that love making jokes, their burgers, music and beer! Although developers aren’t hesitant to communicate, they do tend to prefer emailing and other online forms of communication rather than face to face or phone. Team work Developers are good team members who work alongside designers, other developers and clients to regularly discuss work and manage feedback. Developers like to meet regularly to share progress. At Naked Element we hold daily stand-ups to discuss progress, what we are doing today, what we did yesterday and any barriers in the way. A stand-up meeting is simply a meeting that attendees participate while standing. The discomfort of standing for long periods is intended to keep the meetings short and informative. Stand ups ensures all members of the team are on the same page and working cohesively. Also developers need to know ‘why’, why does the client want this feature? Why do they want it done this way? Why does it need to be done by tomorrow? Help them do their job In order to help developers do their job both happily and to the best of their ability, it’s important to provide clear software requirements, or be open about where the boundaries are if allowing for some creative licence. Providing requirements It’s good to provide open requirements so developers can learn as they go, only getting into the detail at the last responsible minute. However, a Project Manager or Development Lead should ensure that client requirements are not too open, to prevent misinterpretation. Although key features of the system should be instructed, developers are creative people and they know what works and what doesn’t, allow them to play with software they’re interested in and show you ideas. Functionality comes first, design second. If you have a clear idea about how something should look, provide examples or explain this upfront. Every task is drilled down so there are often over a hundred lines of requirements. For example a simple requirement ‘As a Sales person I want to log a new sale on my system’ can be broken down to help the developer understand better… As a Sales person I want to:
- Search for a client to which the sale relates
- Search by company name, contact name, account reference number
- Select a client from the search results list
- Record the product name, sales value, quantity and color
- Select a delivery address and date
- Take a payment
- Submit the details to the fulfillment department
- Print a copy for my records
- Etc.
Don’t believe the bad press about developers being nerds! After all, Nerds are just Geeks without a social life and all our developers have social lives and isn’t it cool to be a Geek these days? Do not be afraid to talk to them, get to know what makes them tick and enjoy the benefits it brings to your software development project. Now you know a bit about our developers, learn a bit more about how they do it.