Blog post by guest author Joel Levy, a 4D developer at Sweetwater:
4D is the heartbeat of Sweetwater Sound. Our application harmoniously interconnects the diverse needs of over 700 concurrent users. We’re always seeking out more developers to fulfill the needs of a constantly growing company. Here’s a look into the strategies that Sweetwater uses to onboard developers new to the 4D platform.
The 4D community is rich with talent across a diverse field of application areas, but the size of the development community is not rapidly expanding. Also, the developer community is older and tends to be more concentrated on the coasts of the United States. This makes it hard to have established developers with roots in their community to relocate to the Midwest.
It’s for these reasons that we normally try to hire professional software developers from within the Fort Wayne community. We look in equal measure for Computer Science graduates fresh out of college, as well as experienced developers looking for a career change. 4D’s programming language is easily grasped by all generations of developers thanks to ORDA, the overall modernization of the language, and the expansion of the 4D developer community. Fresh talent brings innovative ideas and creative approaches that benefit us all.
Documentation and Self-training
As our main codebase is 30 years old, so serious knowledge of the history of 4D is needed. To cover this, learning about the platform and the programming language starts with a bit of reading. “Programming the 4th Dimension” by David Adams and Dan Beckett (published in the late 90s) conclusively explains the concepts of the 4D database engine. The self-training portion of the 4D documentation is vital to the process of learning the programming language. The videos are the perfect tool for getting new developers up and learning without taking time away from other developers or management. A great tool to supplement the videos is an internal document called, “STYLE, STANDARDS, PROCEDURE, and POLICY”. It was written by the manager of the Sweetwater 4D application and its developers, and known member of the 4D community, Jeff Kain. This document guides a user through 4D configuration, installing Macros, naming conventions, comment and header practices, UI standards and much, much more.
Contact Manager application
Once the tutorials have been completed, we have the developer start up a fresh database and create a basic “Contact Manager” application. We normally allow 2-3 business days to work on this project. Requirements include:
- Implement at least one table with fields
- Implement a list box*
- Have a data entry form (often the default Input table form)
- Be able to import data from a .csv within the application
- Searching and sorting
- Basic printing capability
- Integrate with a web service**
* List boxes appear all over our app in all shapes and sizes, controlled by various sources of data. Ensuring new developers are exposed to selection, array, and collection-controlled list boxes are important to the process of enhancing our production application. We’ve found that new developers often trend to collection/object-based list boxes in their Contact Manager apps.
**The web service portion has proven to be the most enticing part of the process. In the past, we’ve suggested services like address validation or zip code lookup. Recently, our interns have implemented a Google Maps API with a 4D web area. The process was seamless and made their projects that much more professional. We challenge each developer to be creative, in particular when implementing this portion of the Contact Manager app. There’s an abundance of useful, RESTful APIs that are easily implemented into 4D with little effort and great impact.
Lessons Learned – New features & code reviews
Programming alongside the video tutorials provides a good opportunity to suggest newer 4D features that may not be covered in the current video tutorials (collections, objects, ORDA). The structure of the docs provides a good opportunity to perform informal code reviews that help demonstrate the techniques and standards noted in our Style Guide. This ensures that new developers are not only developing good code, but are also using good programming practices.
The 4D documentation provides a plethora of documents, videos, and tutorials that help a new developer make a 4D application in literally minutes. These tools, combined with internal documentation, focused practice projects, and informal code reviews with other developers, ensure we can typically release new developers into our production application less than a week after their first day.
I think I speak for all of us at Sweetwater when I say that we’re elated to be in a position to introduce many young professionals to the 4D platform. It not only helps our application, but the entire 4D community.