Reflecting on a full year dedicated to Illuminated Cloud
Post date: Apr 20, 2020 2:35:16 PM
"A year has passed since I wrote my note…"
- The Police, "Message in a Bottle"
Hopefully needless to say, the passage of time these days is...odd. It's often difficult to remember what day of the week it is, much less the actual date. Late last week it occurred to me that it had been a full year since I made the most significant transition in my professional career since entering the workforce many years ago. On April 15, 2019, I sat down in the study in my house and started working on Illuminated Cloud 100% full-time. I thought it might be interesting to take inventory of the past year, and in the process of doing so mentally, I thought it might be fun to share it as well.
I guess I'll start with the dry stuff...some metrics. In the past 365 days I've posted 59 updates to Illuminated Cloud 2 and 9 updates to Illuminated Cloud 1. To be fair, a few of these IC2 updates were immediate hotfixes for issues introduced in the previous update, but only a few. I've always tried to make a habit of releasing on a weekly basis, though I don't schedule my releases. When I think something is ready enough to be useful, I release it. Most of the time there's sufficient content for a release each week, but sometimes I embark on a longer journey with no useful intermediate deliverables--some of the major metadata management refactorings and enhancements come to mind, as does the Log Analyzer--and two or more weeks may pass in between releases. I also try not to release anything of substance immediately before taking time with my family to avoid having to put out fires when I should be focused on my wife and kids.
Of those releases, three were updates for Salesforce seasonal releases (Summer '19, Winter '20, and Spring '20), and as always, they were made available on the Monday after all Salesforce orgs were updated. One recent IC2 release was specifically to accommodate for the JetBrains 2020.1 rollout. All of the other updates were for new features, bug fixes, performance enhancements, UX improvements, or some combination thereof. I won't spend time here on the bug fixes, performance improvements, or UX improvements (except where they manifest as new features), but it is fun to look at what's been added to Illuminated Cloud over the past year. You can also see this in the working backlog, but I'll include the highlights here linked to the relevant content or demo:
Major improvements in metadata deployment, retrieval, removal, and subscription management
Support for raw deploy/retrieve/delete operations against scratch orgs
Full support for child metadata types in both source format and metadata format projects
Support for additional deployment options (test execution, check-only, ignore warnings/errors, purge on delete, include sample data, etc.)
First-class support for "abnormal" metadata types (Wave, Territory2, etc.)
Apex string literal language injection for regular expressions
Tool window improvements
Verification of potentially expensive or invalid SOQL queries
Cross-session persistence of multiple Anonymous Apex and SOQL Query tabs
LWC enhancements
Reference injection/navigation for all imported modules/symbols
Improved ES6 syntax highlighting in Community Edition IDEs
Offline debugger enhancements (smart step into, inline variable values)
Code completion enhancements
Case-insensitive code completion for Apex, SOQL, SOSL, and Visualforce
Code inspections and intentions
Quick fixes for the Unresolvable Declaration code inspection to create valid stub declarations
Modifier/annotation agreement code inspection and associated quick fixes
Control flow analysis code inspection and associated quick fixes
Apex class/instance agreement code inspection and associated quick fixes
Refactoring
ApexDoc enhancements
Support for PhpStorm, PyCharm, and RubyMine in addition to IntelliJ IDEA and WebStorm
JetBrains PasswordSafe-based credentials storage for native connections
Scratch org creation improvements to support more command-line flags through the UI (target release, no namespace, no ancestors)
OST fidelity improvements
In my announcement post last year I said "I'm also excited that I'll finally be able to focus on some truly strategic enhancements to IC, technical and otherwise (first-class user guide!)." Looking back on that list, I'm happy to see that I did exactly that. Some of these items--OAuth support, Log Analyzer, Change Method Signature refactoring--had been at the top of my TODO list for a long, long time, and it's extremely gratifying to have them on the feature list now.
If you're at all curious about what's coming next, I again refer you to the working backlog as it's pretty much what I use to organize my work. From time to time a critical (or perhaps just annoying) bug gets logged in the issue tracker and I tackle it immediately without consulting the backlog. For the most part, though, the backlog is what I use, and I try to keep it up-to-date as I start and complete work on items.
This change to full-time has also afforded me more time with my family, my close friends, and even myself (don't ever discount the value of alone time!).
We're in an admittedly strange and scary time right now, and I would never want to diminish the seriousness of what's happening globally, but this has otherwise been a fantastic first year of dedicated full-time work on something that is very much my passion. Now, of course, it's time to return from such reflection, take a deep breath, and dive back into the next year's worth of enhancements to Illuminated Cloud.
Best regards to all and please stay healthy out there!
Scott