Mark Johnson

Advisory Engineer @ Pivotal

Mark Johnson is a Advisory Engineer at Pivotal where he focuses on helping people learn how to apply Fast and Big Data as well as PaaS solutions to address real world enterprise challenges. Mark has worked on a wide range of technology during his career. Most recently he has focused on Groovy, Grails, and Scala as technologies which enable high quality applications quickly. Mark is active in the software community as the President of the New England Java Users Group (NEJUG) and a regular presenter to user groups and various conferences. When not working, Mark can be found riding his mountain bike on local trails and playing with his family.



Presentations

Promoted to Technical Lead - Now what do I do?

When you think about technical leadership positions do you empathize with Peter Pan? "..I won't grow up, (I won't grow up) I don't want to wear a tie. (I don't want to wear a tie) And a serious expression (And a serious expression) In the middle of July. (In the middle of July) And if it means I must prepare To shoulder burdens with a worried air

Fear not..Development is fun for sure...but technical leadership has many more interesting challenges to keep you learning and challenged. Technical Leadership positions are not just about telling people what do! The role also includes; sharing your technical experiences with others, learning new technologies from your team members, working with stakeholders to help ensure that the right product is developed.

During this session we will discuss many aspects of technical leadership including; "setting your team members up for success", effective communication, controlling scope, keeping your stakeholders on your side, as well how to get it "Done".

Requirements Driven Design and Development (RDDD)

Validate that requirements are not missed during the design and development process by creating Requirements document test fixtures to clarify and validate the requirements between the end users, business analysts, architects, and developers early in the project.

The requirements test fixtures are then available throughout the project to validate that the implemented product is the same as documented requirements. Using RDDD can significantly reduce software development projects project duration, improve communication between all stakeholders, improve delivered quality, and customer satisfaction.

Software Development Risk Analysis techniques

Once you leave academic "hello world" projects, software development is full of unknowns which result in the high rate of project failure we see too often in industry. Reasons for a project failure will vary based on the stakeholder interviewed. This session will provide a software development risk framework and examples you can apply in your projects to reduce or at least soften the impact of failure.

The Software Development Risk Analysis techniques presentation examines several tools taken from the Six Sigma world to identify and manage risks with the objective to avoid failures or at least soften the impact of failure. Because software development is a team exercise this presentation is targeted towards everyone from Software Development managers to hands on developers. During the presentation we will apply risk management techniques to several sample (and typical) software development project problem areas.

10 Principles for Software Estimation : It Does not have to be that hard!

As developers we dread when management requests a project estimate. Typically, you do not have the opportunity to understand all the requirements, the team composition is unknown, and you have been given until tomorrow end of day to produce an estimate. Several months later everyone is yelling at you about the software estimation errors encountered during the project.

This presentation will cover some simple techniques for creating order of magnitude estimates. In addition, leveraging the cone of uncertainty the presentation will also cover techniques for managing management expectations.

10 Things you should know about Software Risk Management

Once you leave academic "hello world" projects, software development is full of unknowns which result in the high rate of project failure we see too often in industry. This presentation will cover 10 principles of software risk management necessary for project success.

During the discussion we will cover topics such as pragmatic approaches to risk capture, getting past resistance to publish risks, prioritizing risks, methods of documenting and monitoring risks to name just a couple. While this presentation is targeted to the Technical Lead and Development managers, it should also be of interest to developers and architects.

The Software Manager's Dashboard: Getting the information you really need

When we start a project, our management hands us a copy of MS Project and using this tool we are expected to accurately track the project to completion. What often ends up happening is many of the project tasks are listed as 90% complete and you don't have a clear understanding of the blocking reasons. This presentation will explore various vendor independent time efficient dashboard options you can pursue to properly track your project.

Specifically, we will work through an software project example using various types of burn down and velocity charts, Staffing activity, change control management, and defect management.

Groovy and Webtest - Produce verifiable tests without the expense

The problem with testing is you need to make certain that the test is validating a "true" business requirement. Most business folks can't read code, so they have to trust that we are testing the right stuff. The reports generated as part of the webtest process are actually human readable, so you can validate with the business stakeholders that your tests properly cover "true" requirements. Throw in Groovy and closures into the mix with WebTest and you have the ability to implement many high powered, clearly understandable tests taking full advantage of re-usable code allowing for many different tests with the same code block.

This session will include hands on examples to illustrate various techniques of writing Canoo Webtests using the Groovy language.

Groovy Closures - The way to cleaner code

The factory patterns and callbacks have been around for a long time as a technique to provide flavor specific code variations. But they are awkward and hard to update. Enter Groovy closures. Imagine having the ability to inject different coding flavors using code closures. If you need a different flavor, then just pass a different code block. Now imagine that all of this works on the JVM!

This session will use hands on examples to explore how to use and create closures. In addition, during the discussion we will also discuss when it is appropriate and inappropriate to use closures in your applications.

Creating a real world application in Grails - A Case Study

You have probably heard about Grails, a Rails based development framework which claims to make software development a breeze. You have heard the hype and are now wondering about the reality, will it really work in your environment? Has it really lived up to the hype? This presentation reviews the results using Grails to develop the New England Java Users Group event management web site to answer these questions.

Some of the topics which we can discuss during this session include; creating the initial application, security, plugins, performance, memory usage, and testing.


Mark's NFJS Schedule

Santa Clara, CA
Sep 9 - 12, 2013