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!

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!

GameCareerGuide – Unity Platformer Tutorial

So, in keeping with the C# theme, I decided to take a stab at creating a small project in Unity and publishing it to Azure. To do this, I followed a tutorial provided by GameCareerGuide to create a simple platformer.

What is Unity? Unity is a popular game development platform that is free for individual developers contingent on revenue reaching a certain benchmark. (Currently $100K). You also have the option to buy a Pro subscription for $75 a month. I’m only at a stage where I’m tinkering around with the IDE and learning, so I’m not interested in paying for a sub if it’s not necessary.

unity

What is Game Career Guide?  GameCareerGuide is a site aimed at helping individuals who want to pursue a career in Game Development. There are various news items as well as links to resources and communities to help people launch or grow their careers. I came across the 2014 edition of their publication here and the tutorial I’m using begins on page 36.

gamecareer

Creating this was pretty straight forward. I had a copy of the 5.x version of Unity already installed and went through the steps in the tutorial creating various assets/objects to use in the game. One hurdle I ran into was needing to update the code as one of the base classes it relied on had been deprecated since the release of the guide. I was able to solve it using some simple cut & paste outlined in this article

deprecated

Next, I was having some issues committing the completed project to a Github repository. Something to do with how Github handles line breaks that can cause code corruption in some cases. Fortunately, updating the Github configuration for the new repo did the trick. I was able to use the Github CLI with the assistance of this article here to allow my code to commit. Even with the config change, my code built smoothly so I’m pretty sure there’s no risk.

After that, I created a new Web App node on my Azure account and used FileZilla to load my build via FTP. At first, the game was erroring out in both Firefox and IE so again I had to make a stop at the Googleverse. It seems that the site needed to provide a configuration item to allow the proprietary .unity3d file to download when you load the site. I was able to add the web.config file based on the following article

config

Finally, it was time to test out the game. Quite honestly, I’m a bit overly proud of taking these disparate platforms and making them work together. Plus it’s just neat to get something new to work, even if it’s trivial.

platformer

If you’re curious about the game, you can find it here . The controls are Left and Right Arrow and the spacebar and the object is to reach the yellow ‘exit’ square at which point the level resets. My son suggested that I might add some more levels and make it grow more difficult at each new level. Additionally, if you want to see the source code, you can find the repo on my Github account here.

If any of you are curious about or have used Unity or have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

My Experience @ Hack.summit() 2016

And now for something completely different….
 
HackSummitHome
 
I wanted to share some details about a vitural conference I attended this past week called hack.summit(). https://hacksummit.org/  This wholly online conference is in its second year and is a good resource for people who would like to attend a conference and take advantage of some Q&A and workshops with leaders in our field.  The cost for registration is mostly free, either a share on social media or a small donation
 
I attended the debut session of hack.summit() in 2014.   The format is a combination of talks, Q&As and short workshops.  One of the more memorable ones for me last year was an hour long session building a coffee shop locator from scratch in about an hour.  Link
 
Here’s a short summary of the sessions I attended this year:
 
Floyd Marinescu – CEO of InfoQ.com – This session consisted mainly about how to establish suitable cultures for virtual teams, meaning teams that aren’t necessarily bound to the same office but must collaborate on projects from separate physical locations.  There are suggestions around patterns and the myriad of tools that are available to virtual teams.  This was interesting as I’m already working on a virtual team covering at least four separate locations.  Additionally, there was mention of InfoQ and a recommendation to spend some time there to read up on current issues and have an opportunity to collaborate with others.
 
Kent Beck – Created Extreme Programming, created TDD, co-created Agile, authored 9 books – It’s ironic that this talk was the day before a half-day lunch and learn my team had on TDD and Dependency Injection.  TDD is not a new paradigm but understanding the need for unit tests and structuring your code so that it’s testable on a granular level is vital for long term supportability of your codebase, especially if you’ve got multiple individuals working in that code base and for any inheritors of your code.  I’m sure we’ve all inherited examples of stale (yet production) code with documentation with multiple birthdays and wish we had at least some insight as to why certain sections of code even exist.
 
Gregg Pollack – CEO, Codeschool – This was another ‘soft skills’ session presented by the CEO of Codeschool (recently acquired by Pluralsight) titled ‘ The Developers Path to Success and Winning’.  This was a general discussion of components that would help you build a successful career as a developer, including  how to seek out a mentor, attending meetups and conferences, knowing what’s important enough to demand your attention (being deliberate about your work and learning), how to seek out work to stretch yourself, etc.
 
Janet Weiner – Engineering at Facebook, big data expert – Open Data Challenges at Facebook – I’ll admit that the bulk of this talk was way over my head.  Overall, it was a case study on how data availability presents problems as it scales to unprecedented quantities, using Facebook’s architecture as an example.  While I’m not very familiar with ‘Big Data’ yet, it’s definitely on my radar as something to become familiar with in the near future.  This was a good example of a presentation showing me exactly how much I don’t know!
 
Mostly I enjoyed the ability to attend virtually and the ability to go back as needed to cover things I might have missed.  If you’d like to register and access the content, it’s not too late!   All you’ll need to is go through the registration process at the hack.summit() website and you’ll have access to all of the talks and reference materials.
 
If any of you is curious about (or may have attended) hack.summit() 2016 or have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.
 
Thanks for looking in!