Dave Nicolette
Consultant
Neo Pragma LLC
location_on United States
Member since 6 years
Dave Nicolette
Specialises In (based on submitted proposals)
An IT professional since 1977, involved with agile development since 2002.
-
keyboard_arrow_down
Developer superpowers to effect positive change
45 Mins
Talk
Intermediate
Many software developers (especially in larger organizations) are unhappy in their jobs. They are in a never-ending spiral of increasing code cruft, and their management does not allow them time to remediate technical debt or keep the code base clean. They feel helpless, beaten-down, defeated. They can't imagine that improvement is even possible. They respond to any suggestion to improve the status quo with comments like, "In an ideal world, maybe," "That will never work here," "You don't live in the Real World®," etc. They don't know their own power. This session is meant to show them that power.
-
keyboard_arrow_down
What's all this fuss about Kotlin, anyway?
45 Mins
Tutorial
Intermediate
Kotlin is a relatively young JVM language from JetBrains. Proponents are stoked about the improvements it offers over Java source syntax as well as its potential to target native object code as well as Java bytecodes. Kotlin has already gained traction for Android development, and is also an interesting choice for general application development in organizations that have a significant investment in Java tooling, libraries, and applications. How does Kotlin differ from other JVM languages, including Java, Clojure, and Scala? Is it a flash in the pan or a genuine advance that enhances the value of the Java platform?
-
keyboard_arrow_down
Value, Quality, and Craft
45 Mins
Workshop
Intermediate
The concepts of value, quality, and craft are frequently debated in the software community at large and the agile community in particular. Usually, they are debated separately. Does "value" refer strictly to the Lean idea of customer-defined value, or is the concept broader than that? Is it possible to deliver "value" with low quality? What does "quality" even mean? And can we achieve high quality or deliver good value if we don't apply skill to the work? Is that what "craft" means, or does it strictly refer to artisanal crafts? Maybe the lack of consensus stems from the fact we have been treating these as three separate topics, when in reality they are inseparable. Let's find out.
-
keyboard_arrow_down
When you don't need TDD and why
45 Mins
Others
Beginner
Ideas similar to test-infected development or test-driven development have been around quite a while - at least since Alan Perlis wrote about interleaving small amounts of design with small amounts of testing in the 1968 Proceedings of the NATO Software Engineering Conference. Yet, even today, there are endless debates about whether such an approach is useful. Some consider it a baseline practice for any professional developer. Others consider it extra work that adds no value.
There's certainly more than one way to achieve a goal. What are the goals, when we write and deliver software professionally? Let's identify the various stakeholders of a software system and enumerate the needs of each. Then, let's walk through several popular ways of building software - TDD and others - and see how we can meet those needs using each approach.
-
keyboard_arrow_down
The value of diversity in an agile environment
45 Mins
Talk
Intermediate
There is much talk about diversity in the software development field and in the tech industry in general, and yet most teams and organizations comprise mostly a single cultural group. The dominant group may be 20- and 30-something white males, as is common in Silicon Valley, or some other culturally homogenous group, such as H1B holders from the same country, as is common in large corporations.
When nearly everyone in an organization has the same general worldview, problem-solving approach, educational background, life experience, and so forth, the organization tends to suffer from groupthink - they can only conceive of a single approach to achieving a goal or solving a problem. When faced with a unique challenge or an unexpected change in circumstances, such an organization often has great difficulty.
In contrast, a diverse organization can bring to bear a variety of perspectives, experiences, collaboration styles, and problem-solving approaches. The rich blend of differences enables the organization to adapt to change and to overcome unexpected challenges creatively and flexibly. How can we build a more diverse workforce in the software development field?
-
keyboard_arrow_down
Automated Testing and TDD for Mainframe Applications
45 Mins
Talk
Intermediate
Mainframe systems continue to play an important role in large IT operations. Contemporary software solutions often comprise components that run on multiple platforms, from smart phones and tablets to Windows, OSX, and *nix systems, and mainframes.
Is it feasible to extend modern software engineering practices like continuous integration; automated deployment; automated unit, component, and functional testing; and test-driven development to this venerable platform? It turns out to be quite feasible. There are several practical approaches to the problem, including commercial products from IBM and third parties; off-platform test drivers such as Cucumber, Concordion, and FitNesse; service virtualization products; on-platform approaches such as Java on zOS Unix System Services; hand-rolled mocking of CICS, DB2, and MQSeries resources; using IBM utilities to isolate and test individual steps from batch jobstreams; and isolated off-platform solutions based on hand-rolled test frameworks running under S390 emulation or mainframe-compatible compilers.
This session provides a summary of several of these approaches. Unfortunately, it isn't feasible to run working examples on an actual mainframe in the context of the conference. We can show code that works and walk through it to illustrate approaches to test automation that are in use in real mainframe environments, and we can demonstrate the emulation-based solutions that don't require a connection to a real mainframe.
To wrap up, we can have a group discussion about the specific testing and automation issues you have in your organization and how you might introduce test automation on your mainframe systems. Better yet, you can share your own stories of how you have solved this problem.
-
keyboard_arrow_down
The value of diversity in an agile environment
45 Mins
Talk
Intermediate
There is much talk about diversity in the software development field and in the tech industry in general, and yet most teams and organizations comprise mostly a single cultural group. The dominant group may be 20- and 30-something white males, as is common in Silicon Valley, or some other culturally homogenous group, such as H1B holders from the same country, as is common in large corporations.
When nearly everyone in an organization has the same general worldview, problem-solving approach, educational background, life experience, and so forth, the organization tends to suffer from groupthink - they can only conceive of a single approach to achieving a goal or solving a problem. When faced with a unique challenge or an unexpected change in circumstances, such an organization often has great difficulty.
In contrast, a diverse organization can bring to bear a variety of perspectives, experiences, collaboration styles, and problem-solving approaches. The rich blend of differences enables the organization to adapt to change and to overcome unexpected challenges creatively and flexibly. How can we build a more diverse workforce in the software development field?
-
keyboard_arrow_down
Shit Agile Coaches Say
45 Mins
Talk
Intermediate
"Language does not just describe reality. Language creates the reality it describes." - Desmond Tutu
The agile community has evolved into a group of highly enthusiastic proponents who bring a high level of excitement to everything they say and do. Agilists speak a strange sort of insider jargon in which plain English words have very unusual, and often counterintuitive meanings.
They may describe your multi-billion-dollar enterprise as "dysfunctional" and on the verge of "failure." They may suggest your teams "sprint" to get work done, and yet do so at a "sustainable pace." They may tell your management that agile helps teams "go faster" while assuring your teams that agile isn't about "going faster." They may insist that agile is more about culture and mindset than about practices, and then measure your progress in terms of how faithfully you follow a prescribed set of practices.
There are many more examples of this odd insider jargon, starting with the seminal buzzword itself, "agile." Over the years, the way agilists speak has confused and turned off many who might otherwise have benefited from applying agile values and principles. The presenter will share several stories of the unintended effects of agile-speak, and will invite you to share your own tales of woe and amusement.
-
keyboard_arrow_down
Automated Testing and TDD for Mainframe Applications
45 Mins
Talk
Intermediate
Mainframe systems continue to play an important role in large IT operations. Contemporary software solutions often comprise components that run on multiple platforms, from smart phones and tablets to Windows, OSX, and *nix systems, and mainframes.
Is it feasible to extend modern software engineering practices like continuous integration; automated deployment; automated unit, component, and functional testing; and test-driven development to this venerable platform? It turns out to be quite feasible. There are several practical approaches to the problem, including commercial products from IBM and third parties; off-platform test drivers such as Cucumber, Concordion, and FitNesse; service virtualization products; on-platform approaches such as Java on zOS Unix System Services; hand-rolled mocking of CICS, DB2, and MQSeries resources; using IBM utilities to isolate and test individual steps from batch jobstreams; and isolated off-platform solutions based on hand-rolled test frameworks running under S390 emulation or mainframe-compatible compilers.
This session provides a summary of several of these approaches. Unfortunately, it isn't feasible to run working examples on an actual mainframe in the context of the conference. We can show code that works and walk through it to illustrate approaches to test automation that are in use in real mainframe environments, and we can demonstrate the emulation-based solutions that don't require a connection to a real mainframe.
To wrap up, we can have a group discussion about the specific testing and automation issues you have in your organization and how you might introduce test automation on your mainframe systems. Better yet, you can share your own stories of how you have solved this problem.
-
keyboard_arrow_down
Using Lego to visualize Cycle Time and Process Cycle Efficiency
45 Mins
Talk
Intermediate
When delivery issues are made visible, there is often an immediate and natural change in behavior. In this session I will demonstrate a simple technique we have used with several teams at my current client to track Cycle Time and Process Cycle Efficiency (PCE) using Lego. In some cases, team members started to behave differently right away, as soon as they saw where the time was going. Two interesting effects occurred naturally, without any training. First, teams that saw a lot of red Lego on their boards adjusted their work in process (WIP). They didn't know the term "WIP" but they could see the effect and acted appropriately on the information. Second, the moment a team mate placed a red brick on the board, other team members asked what the impediment was and how they could help remove it.
-
keyboard_arrow_down
Coding for Food
60 Mins
Workshop
Intermediate
This is a hands-on programming session in which the winning teams will receive fabulous prizes (masquerading as cheap candy). The point of the session has to do with the basis for awarding candy to the winning teams. We do not wish to reveal that point in advance.
-
No more submissions exist.
-
No more submissions exist.