Changing Jobs

“… we live in a real world, where the line between prosperity and destitution can be as thin as the bankruptcy of Lehman Brothers or a factory closure.” – In Praise of Lando

A funny thing happened to me on the way to this summer, I left my job of 11 years to pursue a new opportunity.   To be honest, I was content and challenged in my previous role and on a pretty solid path.  But sometimes when an opportunity presents itself, you have to weigh the options and take a chance.  The key question is, are any of us really prepared to honestly explore a new opportunity in good faith?  How many of us are really thinking beyond the here and now?

In principle, we should always be assessing our proficiencies and interests on a regular basis.  All too frequently, we are just trying to make it to the end of our to-do list so we can unplug.  Even worse, sometimes we’re just trying not to lose ground or hoping that an unforeseen crisis doesn’t force our hand.  Working hard and executing might get you through the short term, but it isn’t enough.  Taking a step back to ensure you’re doing the right work is crucial to long term growth and success. This doesn’t just apply to individuals, but to organizations of any scale.

When Seth Godin warned us to “Dig your well before you’re thirsty,” he’s challenging our inherent complacency and tendency to coast and accept what’s handed to us.  Life is replete with black swan moments.  Do you seek them out?  Do you dread them?  I’m starting to think the main question is, what might be holding you back from making any change at all?  It’s one thing to miss or pass on an opportunity.  It’s something else entirely to be so overextended and brittle that the slightest disruption brings everything down.

When I first started out writing BASIC and soldering electronics, the World Wide Web wasn’t even a thing.  Since then, entire technologies have been born and become obsolete. What do you do to keep current and be ready for the next thing?

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

When Wisdom Is Your Dump Stat

And now for something completely different….

In a previous post, I’d mentioned that I’ve struggled with health and fitness for most of my adult life. In response to a co-worker’s call to action, my fat self signed up for the 2017 Wichita Gladiator Dash! It’s a 5k obstacle course in the local county park which includes climbing hills, fording lakes and creeks, falling off things into waist deep mud along with other assorted playground activities.

Now that you’ve (hopefully) stopped laughing, I’m happy to say I actually completed the course. And since I’ve never done anything like this before, I’m allowed to claim I achieved a personal best!

One thing that people in sedentary jobs like mine must watch out for is our health. And it’s a great thing that fitness and good health has seen a resurgence in popularity in recent years. However, we must contrast that with America’s love affair with bacon, food challenges and ridiculous monstrosities in culinary fare such as the Quadruple Bypass Burger making headlines. (Where’s THAT race??)

In either event, I’m proud to have made a choice to try something challenging in the name my own good health and the entertainment of others (like my wife). I’d love to hear any of your stories about your own health and fitness goals.

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Knowledge 17 – A Look Back

What is the purpose of a conference?  

To some it’s an opportunity to get out of the daily grind for a few days and see some cool new tools and make some new connections.  Ultimately, it’s an opportunity to ensure that you’re heading in the right direction and to come back armed with knowledge to guide conversations about existing work streams and inspire new ones.

Knowledge is an annual conference put together by ServiceNow intended for any individuals that use or build on the platform.  My involvement this year started with an invitation from a colleague to help with a presentation he was working on for this year’s conference.  After a live rehearsal at our local SNow User Group, I was very excited to attend and both learn from and share with others in the field.

Sunday, May 7th – Monday, May 8th

My conference journey began with a 2-day pre-conference seminar on Business Application Development.  While not highly technical, the course provided valuable information to guide decision making and recommendations for applications on the platform.  Additionally, they provided strategies for identifying and solving pain points or broken windows on the platform in general.

Other guidelines for improving our approaches to development touched on defining measures, such as return on investment or solving common business challenges by hiding or streamlining complexity.  Additionally, we were reminded about how important it is to establish and drive the narrative of solutions built on the platform.  Essentially, to tell our customer base what we’re doing and why and to solicit feedback and adapt our approaches accordingly.

On the development side, we spent some time on effective user story writing as well as best practices around extending the existing core modules and organizing any customizations or new features we implement.   We were introduced to some new features for upcoming releases such as UI/UX functionality and improvements to automated testing and the resurrection of a previously deprecated debugger which will be an extremely useful tool for developers.

For architecture, we went over some basic tasks like table creation and decision making around when to build new and when to extend existing tables.  Also,  we were coached on how important it is to define the scope of a new feature before beginning work.  Applications should have a clear purpose that can be reconciled to the measures of business value and customer feedback covered previously.  You might enjoy building something cool in a new way, but that’s never a guarantee that it’ll see any adoption beyond curiosity or superficial interest.

Tuesday, May 9th

Tuesday marked the official beginning of the conference and the ServiceNow CEO’s Keynote did not disappoint.  A record setting 15,000+ attendees were challenged to improve the customer user experience, protect the value that we’ve created and continually work to reclaim wasted time and resources that can be better utilized elsewhere.  Members of the ServiceNow community were informed of additional efforts to continue to address the gender gap and reminded to challenge preconceptions about career paths for anyone and everyone.

My first class of the day was Angular2 applications for the ServiceNow Platform.  While I’ve been working in Angular for a couple of years now, I had zero experience in Angular2 or deploying a ServiceNow application from a GitHub repo.  This session gave us a walkthrough on staging and testing an Angular app locally using NodeJS, publishing to GitHub and then directly installing the app from a hyperlink on GitHub itself.  This spawned quite a few ideas for myself around better organization of code and sharing that code with others.

Next, I attended a course on Testing Inbound REST APIs.  This is a possible feature for Jakarta that will allow developers to use SNows Automated Testing Framework to simulate HTTP calls against tables and services they build and establish expectations around functionality and behavior on those calls.

My labs were done for the day, so I attended a business oriented breakout called Enabling Enterprise Architecture Decisions Through the ServiceNow Platform.  The session overed ideas and justifications for consolidating existing services and data into the platform to eliminate wasteful and repetitive practices throughout the enterprise.  The idea is that, by removing many of the seams between various layers of stand-alone solutions, ServiceNow simplifies the conversation around enterprise architecture by assembling it into a unified platform.  Additionally, the platform can allow stakeholders to focus on managing and prioritizing services rather than keeping track of nodes and their dependencies separately.

To cap off the day, we had our own presentation on Service Portal. Our topic specifically covered challenges and lessons learned when integrating 3rd party platforms into the Portal itself and providing a seamless and positive user experience.  This was my first time actually presenting at a global conference so it was a bit nerve-wracking.  But, our presentation was well received with excellent Q&A from our audience.  Thanks to all who attended!

Wednesday, May 10th

I started off the day with an interesting session on certifying applications for the ServiceNow Store.  While I haven’t personally built any public applications, the standards SNow establishes for their store can easily inform standards for internal applications as well.  They covered a Top 10 list of common mistakes made when developing, mostly around roles and security.  Additionally, we were reminded of their built in module for certifying applications, which can be useful for spot checking applications or other features in progress or already in the wild.

Next was a breakout entitled Defining your App Development Methodology for ServiceNow.  This was basically an outline of steps to follow when proposing or accepting new work.  Questions around demand and identifying key stakeholders and sponsors and maintaining their interest throughout the process.  Also, there was a reminder that new features always include a subsequent cost of support and maintenance throughout the life of that feature.  One last thing: ‘Have a Testing Zealot!’  Not my term, but I’m using it anyway.

My first lab of the day was on Advanced Service Portal Widget Techniques.  We covered several implementations of a list view in the portal incorporating conventional server-side GlideRecord calls and client-side API calls.  Combined with configuration level constants like table name, we were given a template for a reusable widget that can be easily cloned and tweaked for multiple uses.

Lastly, I attended a session on Analytics and Machine Learning.  This is an equally arcane and fascinating topic for me and it will be interesting how application of AI will inform the ServiceNow platform going forward.  We were introduced to automated Virtual Agents that can act as first responders to customers and learn from previous customer engagements to guide and improve future sessions.  Additionally, machine learning can be applied to data within our existing systems to derive additional meaning from data points that human analysts might miss.

Thursday, May 11th

The last day of the conference definitely finished on a high note with the CreatorCon Keynote.  Developers and other creators were reminded that expectations are constantly changing and growing.  The sheer volume of data and the speed at which the meaning of that data needs to be communicated will only continue to grow.  We should not only be thinking of automation for customers, but also every edge we can gain in our own processes to increase our velocity without compromising effectiveness and overall quality.  Tools such as native automated testing and integrated debugging can only help.

Our last lab and session of the conference was Managing Team Workload and Collaboration with VTB and Connect.  Most of the information on Virtual Task Boards was already familiar territory for me but it was neat to see some new improvements and features, including Connect integration for live collaboration among team members.

Summary

Needless to say, this past week has been a whirlwind of people and concepts and generally drinking from a fire hose of information with maybe a small respite now and then to let those ideas breathe.  What’s most rewarding for me is to see so many people in one place excited and passionate about what they do.  Our work has a soul.  It’s necessary to recognize the value in what we do and continually strive to improve.  Conferences are good for a spot check (sanity check?) on where we’re at and where we’re headed.  I highly recommend them.

I’d love to hear any feedback on this post, especially if you attended Knowledge 17 and would like to discuss your own experiences.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

AWS Certified Developer – Progress So Far

In my post about certifications, I mentioned starting a certification course regarding Amazon Web Services development.  Bit by bit, I’ve been making progress through the course itself.  The structure is pretty straight forward.  It begins with an overview of what AWS is overall and what you should expect to get out of the course.  The idea primarily is to prep you for the basic Associates certification, so they’re going for breadth as opposed to depth.  That’s fine with me!

First things first – Identity Access Management

Some of the first things to consider when building a new app is who your audience is and what they need to be doing.  Trying to shoehorn a security or roles model after you’re under way is just asking for it.  Therefore, the course starts us off at the beginning by showing us how to build roles and use them programatically through the CLI.

One of my more interesting takeaways from this was locking down your root access using Multi Factor Authentication.  This involves creating a key object on AWS and mapping it to an authenticator app on my phone.  The premise here is that no one should be able to get root in your environment based on a simple password.  It’s a good habit to get into before you entrust important data or business logic to the cloud.

What is EC2?

Once you have your roles in place, it’s time to provision resources.  EC2, or Elastic Compute Cloud, is where you can provision various types of virtual compute hosts.  There are options based on conventional questions like number of processors and memory, or you can request role based hosts optimized for graphics or high memory or transaction-intensive needs.

This is one of the longest sections of the course, but an important term that you might hear a lot about is something called Lambda.

What is Lambda?

Lambda is Amazon’s event driven code solution where you have a function or service waiting on a call and it responds only as needed.  So, you can think of it as a sort of headless API where all you have to worry about is your function or service itself and none of even the typical PaaS concerns such as host or middleware setup or general availability.

One example of Lambda pointed out by the course is Amazon’s Alexa service which is available on their home devices, such as the Echo.  I’ve only tinkered with Lambda once or twice, but the potential is very exciting.  I’m looking forward to a deeper dive at a later date.

At this point, I’m only about a third of the way through but will be spending more time on it during May and June with a goal of taking my certification over the summer.  For those who are interested, the course is put together by a company called A Cloud Guru.  They have several other courses and tracks for AWS available at their website and at Udemy, where I’m taking my own course.

I’d love to hear any feedback on this post and invite you to share your own experiences and opinions on AWS, either your own projects or learning tracks.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Azure Follow Up – Closing It Down

It’s been a little while since I wrote about Azure.  Early on, I wasn’t sure how much I’d be focusing on using that outside of my day to day and the truth is, I haven’t touched it much since last year.  Nothing against the service, I just haven’t had a need for dedicated hosting in a while.
 
On that note, I will be shutting down my Azure resources as of today.  I’m in no rush to port what I’ve built so far to AWS, but my projects are on Github for any who are curious.  I may revisit them at a later date.
 
Even though I won’t be actively working in the Azure space for the foreseeable future, I’m still open to discussion and collaboration on the platform.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Why Earn Certifications? I’ll Tell You..

Last post, I shared a story about earning my Certified ScrumMaster badge. Often, I’ll have conversations with other IT professionals about the usefulness of certifications and whether or not to pursue them. The common conclusion, as with most things in this business, is ‘It Depends.’

When I was first starting out in this field, I had a 1-year clerical vocational degree, no professional IT experience and a non-trivial stack of practical knowledge. So, how does a 20-something with this background get an interview? The answer for me was certifications.

While working a temp job answering phones, I dove into a book on the CompTIA A+ certification. For those not familiar, this is a fundamentals certification dealing with PC architecture and troubleshooting. Once I earned this certification, I was able to parlay that into interviews and an eventual Field Tech position.

Are certifications better than a traditional education? Again, the answer is ‘It Depends.’ While certifications are intended to ratify a candidate’s existing knowledge, discerning whether or not individuals actually have that knowledge can be tricky. This is where technical and knowledge-based interviews can be useful. In my opinion, in our current pool rife with graduate degree holders applying for entry level positions and mounting student debt, focused vocational training and certification is a solid option. And for those of us in the midst of our career paths, it’s a useful avenue to stay current and continue to demonstrate proficiency in our craft.

As part of an earlier post, I staged a Selenium server on Amazon’s EC2 service. Given the growing popularity of AWS, it’s something that people in our trade should take the time to become familiar and proficient with.  In order to grow in this space (and take advantage of the free trial period), I also picked up the Amazon Certified Developer course from Udemy.  Over the next 6 weeks, I’ll be making my way through the coursework and ultimately taking the certification.  Wish me luck!

I’d love to hear any feedback on this post and invite you to share your own experiences  and opinions around certifications.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Certified ScrumMaster – A Look Back

I funny thing happened since my last post…. I became a Certified ScrumMaster!

Some basic points before I ramble:  For the uninitiated, a ScrumMaster is one of the three roles that make up a Scrum team.   For the further uninitiated, Scrum is a software development process that attempts to fulfill Agile software development principles.

For the even further uninitiated, Agile is a set of principles that seeks to produce faster and better solutions via software by engaging customers early and often.  These principles have been distilled into the Agile Manifesto, which is generally one’s first introduction to Agile.  I’ve also recently been introduced to the Manifesto for Software Craftsmanship, which uses the cadence of the Agile Manifesto to add a focus on quality and professionalism to our work.

The main idea of Agile is that customer needs and value opportunities can and do change frequently, often several times a day.  Therefore, the process by which software solutions intended to meet those needs are built must be just as flexible, if not more.  This means that software developers and the customers they serve should not be held prisoner by yesterday’s expectations, but should be ready and able to respond to changes over the course of their projects.

One of the more popular frameworks used to help a development shop become more Agile is called Scrum.  Scrum consists mainly of static teams that focus on a cadence of time-boxed ‘sprints,’ each with their own concise and explicit goal.  At the end of a sprint, the team presents (and usually deploys) the finished software and gathers feedback on their work.  Additionally, the team self-evaluates and adopts changes necessary to improve their own performance.  They are then ready to proceed with the next sprint.

For our two day class, we were first presented with the history and framework of Agile. Then we were formed into teams and tasked with working through a simulation of Scrum.  This included planning our goals for the overall product, organizing sprints that would result in a production-ready result and presenting that result for evaluation.

I’ve been working on Agile teams for a couple of years now and am a fan of the approach.  One of the most valuable takeaways that I had from the class was knowing to observe the Agile principles before any process.  Scrum (or even Agile) is not a magic bullet that’s appropriate to all projects.  Therefore, you need to remember whether or not your approach is in keeping with the value you’re intending to realize, rather than just blindly following a process.  Some other explicit warnings were, “If you’re not automating you regression testing, you can’t be Agile.”  The same premise goes for controlling your inputs.  Meaning, you need to have that concise and explicit goal, rather than trying to ‘boil the ocean’ and do everything at once.

I’d love to hear any feedback on this post and invite you to share your own experiences with Agile or Scrum.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Blogs I Follow

And now for something completely different…
 
I’m assuming most people have a set of sites that they check or frequent on a daily basis.   This post is a list of favorites that I have on my feedly app.  I generally sift through these and save some interesting articles to Instapaper for easy access wherever I happen to be.
 
Tech
 
Coding Horror – Probably THE blog that motivated me to switch to software development full time.  Funny and insightful.
 
Scott Hanselman makes the short list of any Who’s Who when it comes to Microsoft solutions.  Posts frequently with either interesting ‘What’s New?’ or other content.
 
Trisha Gee – I had first heard of Trisha during the inaugural HackSummit() conference and her presentation was one of my favorites.  A Java expert and advocate.
 
John Sonmez – I’d first heard about John after taking a few of his courses on Pluralsight.  After following his blog for a while, I took his Create A Blog course and the result is this site.  Daily new content.
 
Humor and Personal
 
Drew Magary – Drew is a writer for several publications including Deadspin and GQ.  We’re about the same age so his posts about parenting and cooking are very relatable.
 
Wait But Why – I ran across this blog a while back.  Posts feature length articles on cool futurist topics like space exploration and AI.  If you read anything on the site, make time for the four part series on Elon Musk.
 
The Art of Manliness – I’ve been reading AoM for a few years now.  Very interesting articles on hobbies, fitness, fashion, traditions and more!  This is the site that got me to drop my cartridge razor in favor of a safety razor.  (Highly recommended)
 
Mr. Money Mustache – Personal finance advice and a must read for anyone considering early (or at least earlier) retirement.
 
The Daily Stoic – A Ryan Holiday blog.  Stoicism has been enjoying some recent popularity and reference.  This is a good resource for anyone interested in the basics or a deeper dive.
 
I’d love to hear any feedback on this list and invite you to share your own reviews or recommendations.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.
 
Thanks for looking in!

ServiceNow Istanbul – What’s New?

If it’s not obvious from my most recent content, I’ve been spending the bulk of my time in ServiceNow.  For those of you who don’t know, ServiceNow is an enterprise application platform that is commonly used for its flagship ITSM/ITIL application.  While IT Service Management is its main use, the platform allows business developers to quickly deploy integrations and services in a cloud and mobile ready state with less effort than building from bare metal.

One of the most recent announcements is for the latest major release, called Istanbul.  This latest version passed into general availability this month and has many exciting new features.  I recently attended a webinar that covered the highlights.  You can find the recorded session here.

Automated Testing – This is the piece that ties back into my most recent series on testing.  The automated testing suite in Istanbul is probably the feature I’m most excited about.  The Automated Testing Feature gives developers a native toolkit for building test suites for both UI and server-side unit testing.  Tests can be organized by feature or combined into multiple testing suites for regression testing for future releases.  I’m a fan!

Debugger ‘2.0’ – One of the challenges on this platform is the debugging implementation.  Often, I find myself avoiding the native debugger in favor of logging by hand or using the browser console to detect issues on the platform.

Istanbul restores a debugger tool that was popular in pre-Geneva releases but was turned off some time ago due to functionality issues.  The updated tool runs in its own window and allows developers to add breakpoints specific to them for working with their code.  This means that developers can simultaneously use the same functions while not stepping on each other’s toes with unwanted test cruft.

HTTP Message Logging – For those of us who work with external integrations involving critical business functions, failed event captures in this space can result in unnecessary impact and reduced confidence in your service delivery strategy.  Adding to this is the possibility of finger-pointing between dev groups and a lot of guesswork in troubleshooting the failure.

Istanbul attempts to help with this by breaking out HTTP message logging out of the box and adding it by default.  This not only helps with visibility and troubleshooting of integration issues in production, but development and testing of new integrations.

Email Unsubscribe – One of the common user complaints that come with new platforms is the volume of email that comes by default.  While the platform already allows users to pick and choose what notifications they want to receive, often there’s a disconnect between the actual notification and the setting users might need to change.

One new feature of Istanbul allows developers to add an Unsubscribe link to notifications they send.  This allows notification recipients to opt out of that traffic with a single click in the moment rather than forcing them to log into their user configuration and then remember which notification they’re stopping.

Email WYSIWYG Editor – User experience is often an afterthought or even forgotten when working with a business application.  Part of improving that experience involves delivering content in a more polished manner, rather than just spamming people with walls of text.

While the previous email template editor allowed for markup content, developers were limited to a code only interface, which involves a lot of guesswork in practice.  Istanbul adds a WSYIWYG editor which will allow for quicker delivery of user friendly web-style content in notifications from ServiceNow.

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Reading Summary – 2016

Posting book recommendations seems to be a thing when New Years rolls around.  The last time I posted about books, I put together a list of my favorite recommendations.  This time around, I put together a list of books I read over the past year.

Essential ASP.NET with Examples in C# – A bit obsolete.  Vanilla web forms rather than MVC.  However, I did find some useful nuggets around IIS and ASPX page architecture.  Any of you still involved in IIS hosting or legacy support might find some value.

Wherever You Go, There You Are : Mindfulness Meditation In Everyday Life – In depth overview of mindfulness with various case studies and examples or thought experiments in easily digestible form.  A good read for those seeking the value of being present and deliberate.

Richest Man In Babylon – A book on financial health with guidelines packed into parable form.  It’s mostly common sense stuff and a bit repetitive, but still useful.  ‘The 10% Rule’ was most valuable to me.

Clean Code – A classic book on software quality that easily makes most developer’s reading lists.  Some of the most valuable pieces for me were:

Focusing on indentation – The idea that if your indentation is sloppy, you should focus on that before anything else

Boy Scout Rule – Always leaving code better than you found it

Test Driven Development – The principle that tests are always closer to the truth about code’s purpose than comments or documentation

Leviathan Wakes – The novels on which the series The Expanse is based on – I honestly haven’t had a book grab my attention like this in a long time and would highly recommend it to any sci-fi fan. The setting is gritty with enough everyday human concerns to be a believable future state while still having stakes and scope worthy of space opera.

Waking Up – Interesting premises on the nature of the mind, the concepts of self and better living through meditation.

The Analects – A collection of Confuscious’ sayings and one of the core works of Confuscianism, the main idea of which is virtuous living and self development according to The Way.  It’s a decent read but I get the feeling that The Way being discussed is very specific to the author and his students (Upper Class Chinese Nobility)  For the modern reader, The Way may be more subjective but the call to action is not.

The Death of Common Sense – I heard a rumor that this book was an inspiration for the character of Hank Hill (King of the Hill), so I had to take a look.  An indictment of following the letter of the law at the expense of the spirit.

Meditations –  A collection of the writings of Marcus Aurelius and one of the core works of Stoicism.  I’d compare this to the Analects as far as the need for context.  But again, the call to action is definitely not subjective.

Not a long list, to be sure.   This year I’m hoping to double it, but hopefully not just for the sake of quantity.  I think my pile of books to read actually grew more this year.

I’d love to hear any feedback on this list and invite you to share your own reviews or recommendations.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

 

Thanks for looking in!