Develop and Document like a Rockstar !
Updated: Feb 20, 2021
Be like Van Halen, and ensure your Users complete the UAT.
Today's Claris FileMaker Developer is needs to continually evolve - some say we are actually in the middle of a revolution - where the skills set of yesterday, just doesn't cut it, today.
Gone are the days where our skill set was confined to the native FileMaker functions, creating stand alone solutions, without integrating with external platforms or systems.
Without getting too deep into the No-code / Low-Code / Pro-Code debate - that could easily be the subject of an up coming blog post - we've never been able to build so much.
Let me share a few choice mindsets and process concepts that I endeavour to apply to each and every day, including those days I am 'not' crafting the code, for the next app.
Craft Applications, rather than Databases.
We've moved beyond building solutions to simply replace Spreadsheets, where Databases allow Users to Create, Edit and even send the data to the 'paper' in the Printer.
Savvy Users now have a pocket full of apps on their smart phones, and they have much higher expectations from the software we deliver.
Focus on UX, as well as UI.
Apps need to look good, and perform even better. The User Experience (UX) isn't just about how many clicks is required, it's also about the cognitive load - how much the user needs to 'think' to get the job done.
Practice Best Practices.
The popular example here is developing on a Live Production Solution. The best reason (excuse) I've heard so far to justify breaking this rule was "Just don't make a mistake".
Define a workflow for your development - from recording the requirement, researching design patterns and code options, updating the TEST environment and UAT sign-off and automated Deployment to Production - don't forget to review and analyse the take up of the new functions, there may still need to be further fine-tuning.
Craft your own User Acceptance Testing (UAT) Faults.
A honoured colleague of mine has an excellent method for UAT Compliance. Ensure there is at least one 'minor' issue with the function being tested, and the Tester must 'discover' this issue, before the UAT sign-off is accepted.
This is not a new concept, as Van Halen would insist on 'no' brown M+Ms in their Dressing Room as part of their 'Munchies' section of their Touring Rider Contract. This of course was a 'test' to see if the Promoters reading of every detail of the Contract. If not, Van Halen would conduct their own Safety Audit.
Attempt an alternative design and code option.
I know Professional Developers that have a single 'starter' file, where they 'add' the 'new' client requirements, deliver, and repeat. Further inspection of this solution exposes the previous client's logos and fields with the client's names.
Too often the 'easy' route is to transpose existing code from one solution to an other, almost on auto-pilot. Does this sound familiar - Need to add a Contacts Search function, copy the layout objects and scripts, no heavy lifting, no problem - all good to go.
Break out of this model, investigate at least one alternative method to the solution, and craft up both. You'll be surprised as to how often the new option wins out.
Much can be said for moving to a Transactional method of record creation, editing, and even simply viewing data. Not to mention the idea of working with data from the context of a User Table and individual User record.
Modulate your Code and Functions.
This may sound like the opposite to the alternative code option. Beyond the need to move functions between apps and solutions, modulating and structuring your code gives the next developer - even if that will be 'you' updating the code in six months - a chance to ascertain the scope of the code.
This also allows for the re-use of code, without extending too far into object oriented programming, or object and class generation.
Code for the 'next' Developer.
There's nothing more frustrating then opening up existing code and wondering where the calculation, script, functions starts and finishes.
( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 8 ) or ( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 10 ) or
( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 4 ) or
( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 5 ) or
( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 6 ) ;
If ( ( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 11 ) or
( a___027___Payroll_Records_Reports_PRINTING::Loop_Number_n = 3 ) ;
Text_01_t___Wages___HEADER & Date_to_show_d_c &
Text_02_t___Wages___Remarks ; "" )
This concepts reaches beyond basic script commenting, through to human friendly Table, Field and Table Occurrence names, and beyond scripts that require a dozen loops based on data in the above calculation to return variations of data, for a simple Print Report.
Learn a new Technique each week.
This can stretch from how you represent a button, and believe me, there are many ways to craft the simple button's look & feel and behaviour - teach yourself HTML, XML and JSON.
Teach yourself to poll a different API every few weeks - either natively or via Claris Connect - sharing data with external systems is a strong feature of our Claris Platform.
Put simply - keep learning, keep growing.
Blog about a new Technique each month.
Once you have taken the time to learn something new - write a blog post about it. Share back to the community. This can also be a method of recording simple code or function notes, for others - and even yourself - to refer back to in the future.
Submit to present at the next User Group or Conference.
This one takes blogging to the next level. Let's not leave the heavy lifting and hard work to a chosen few in our community. Trust me, the act of presenting takes your own knowledge of the subject to the next level.
Get out of your comfort zone.
This is where the growth lives. Take a chance. What's the worst that can happen ?
Get some Exercise, preferably Outdoors.
Some of you may have noticed that I have not blogged for the last two months. Well, it's summer here Down Under - and regardless of the Pandemic - that means cycling season.
This summer I decided to purchase a new road bike - yes, that's now four bikes for those who are keeping count - and set myself a goal of 100km each week.
You can follow my rides and progress over on Strava - and feel free to reach out and I'll follow you back - regardless of your choice of activity.
What's stopping you ?