Day in the Life of a Developer
September 3, 2015
Web development should always be fruitful and valuable to both merchants and developers. However, while merchants may excel in their business domain, they may feel in the dark when it comes to understanding the work their development partners do.
What are day-to-day requirements for developers to do what we do? A partial list includes the following:
Setting up development environments & adapting workflow (testing, staging, etc.)
Evaluating and integrating extensions
Creating entirely bespoke customizations, including modifying and extending existing features
Bringing user interface ideas to life, and helping to test their effectiveness
Configuring the system in response to changing laws or business rules
These are just some of the activities developers engage in each day, often moving from one area or activity to the next as the work requires. Good developers understand and expect this variability, and they know how to adapt these transitions seamlessly and transparently to their merchants.
A merchant may request an adjustment to the price display of certain products such as, "For products in categories X and Y, apply a 10% discount for certain customers at certain times and display a special message next to the adjusted price." The merchant makes the request with full faith that the logic can't be that difficult and that the scope (and cost) of this customization will be small, perhaps just a couple of hours' worth of developer effort. Oh, if that were only true!
While this request seems straightforward to the merchant, experienced developers immediately recognize the variables and complexity involved. Are there multiple languages? Are there multiple financial variables to consider? Should there be an admin interface for this? Is this likely to be a one-off change? What about price indexing? What about likely future enhancement requests? Are they on a web platform like Magento that includes this kind of functionality? (Shameless Magento plug)
So Many Questions
The experienced developer comes back to the merchant with questions to help clarify complexities in the system and address any holes in the initial requirements (e.g. "Should there be an admin interface for this?"). Because they help align the expectations of both the business and development teams, questions are key to saving time and money in the development process.
While the example price display requirement above indicates a bespoke customization, it can involve other areas of developer responsibility, and these things are factored in to the proposed cost and timeline to execute the customization. A merchant's idea of a two hour build can be met with a ten hour estimate because there really is that much work to be done!
A Brief Look at the Development Process
First, the developer has to run through the list of responsible research, such as ruling out whether or not the platform provides the requested functionality natively. Next, developers ask whether there is a third-party extension which might satisfy all or most of the stated requirement.
Regardless of whether the implementation is native, third-party, or bespoke, there will be additional efforts on the backside of the actual development. There will likely need to be updates to automated unit and integration tests, acceptance and release architecture, application-based and analytics-based performance monitoring, etc. There may also be "additional" developer effort spent implementing adjustments to business process for the client to properly use this customization. And remember, this is all for what may seem like a simple request.
Signs You’re Working With a Great Developer
Certainly, developers should have strong knowledge of native platform features and functionality (if you’re on a Magento platform, look for Magento certifications), but, ultimately, there is no better indicator of developer or agency ability than the frequency with which they satisfactorily do each of the following:
Seek clarity on requirements and point out existing platform functionality
Deliver the specified functionality on time and on budget, including advisement on adjustments to business process
Execute the delivery and implementation with minimal bugs and business impact
For insights on how to find a great developer, check out this blog by Magento U’s Beth Gomez.
Onwards & upwards!