830 reputation
410
bio website john.werner-ny.net
location Fairport, NY
age 47
visits member for 3 years, 9 months
seen Jun 5 at 12:43

John Werner is an internationally published author, engineer, and conference speaker who brings over 15 years of experience solving technical problems with creative solutions.

As a Senior Software Engineer, John has used his unique problem solving abilities to become an expert in solving problems that have escaped others.

As an author and editor, John has written a regular column for an automotive magazine and has been published both in the US and Europe. In his spare time, he edits the Internet's Oldest FAQ on Snow Tires and Winter Driving.

As an inventor and architect, John has earned patents for inventions ranging from Ink Jet Printers to Automotive Ignition Systems; and he has both published and presented his software architecture work.

As a software process evangelist, John has motivated corporate cultures to embrace sound development practices such as Test Driven Development, Continuous Integration, Unit Testing, and Continuous Code Review while seeking to provide a careful balance between process and productivity.

The world of Embedded Software Security has not escaped his focus. His work in driving the security analysis of embedded products; developing an innovative, risk-based approach to Threat Modeling; and creating a cross-platform tool for analyzing, organizing, and reporting the results was lauded by corporate research.

International work has been a part of John's career for the past decade. During that time, John has gained experience working both for and with off-shore development efforts and serving both in the roles of team player and team leader. He has traveled extensively to Munich, Germany, and Milan, Italy; and has also worked in Bangalore, India, and Stuttgart, Germany.


Apr
2
comment What is the benefit of Continuous Integration over make?
I am not sure why you are looking at Jenkins XML files. Jenkins us configured through a web interface without ever needing to go to XML. From the Jenkins web interface, you can configure all aspects of the job, including how to build and run tests. For some jobs I have used qmake, make and invoking a custom executable. Others have invoked msbuild and mstest. All of these were configured through the web interface.
Oct
22
awarded  Yearling
Oct
18
comment How much freedom should a programmer have in choosing a language and framework?
If you write something that only you understand, then you will be stuck maintaining it forever.
Apr
12
comment Keeping test and release version numbers in sync
For a couple of projects, we have used a scheme where releases are identified by a Major.Minor.Micro numbering scheme. Since we use SVN for source control (no comments about SVN being old... it's a set up from where they were two years ago), the micro number is the actual SVN revision the code was built from. Makes tracking bugs to a rev of code very easy.
Apr
12
comment Keeping test and release version numbers in sync
Whatever solution you come up with, don't re-use version numbers. It will only add confusion. If you already have a "1.0" in the field, don't ever release another "1.0". It will only add confusion.
Mar
16
awarded  Nice Answer
Mar
14
comment Why use a database instead of just saving your data to disk?
Depending on how your project evolves, you may find yourself having to deal with things like concurrent access and rollbacks. They sound trivial, but aren't. By the time you get done solving them, you will find you have basically written a database. Do you really want to be in the database business, or another business?
Mar
11
comment How do I prove to management that our programmers could work more productively?
Not having a bad reputation is like not having an overdrawn bank account. Having a very good reputation is like having a lot of money in your bank account. One will allow you to get a loan for a new Kia. They other will make the Maybach salesman return your phone call.
Mar
11
revised Extreme Programming Daily Commits
added another benefit thanks to comment.
Mar
8
answered Extreme Programming Daily Commits
Mar
7
answered How do I prove to management that our programmers could work more productively?
Jan
21
comment Why do some programmers prefer spaces over tabs?
I've been on many projects where the style guide specifically called for tab stops to be every X characters. I have been on much fewer where all the developers actually followed it, especially on code that has been handed down for years and worked on by multiple developers.
Jan
21
answered Why do some programmers prefer spaces over tabs?
Jan
11
comment Why is it often said that the test cases need to be made before we start coding?
Writing tests first (or very early) also flows nicely into Continuous Integration, a practice where the code is built and automatically tested every time a change is committed, which might be multiple times a day.
Jan
9
comment Are exceptions an OOP concept?
IMHO, the general concept of exception handling is being able to specify an action to take should something exceptional happen. It is not just checking return values and seeing if there is an error result. The MS BASIC construct of ON ERROR GOTO xxxx tells BASIC that if something exceptional happens, goto line xxxx. It is not checking the return of a specific method looking for a error value. Is it "modern" exception handling? No, but it is what was offered 30 years ago.
Jan
8
comment Are exceptions an OOP concept?
Even MS BASIC form the early 80's had exception handling: ON ERROR GOTO xxxx
Jan
3
comment Qt (C++) vs. JavaFX: What is the relative size of each developer community?
For most of it's early life, Qt was pretty much a *nix thing. Its only in the past 7-8 years that it has seen more growth on other platforms. The SO statistics on Qt are going to be misleading, but probably on the low side to the number of developers. Having been around longer than SO, there are several other places that many people reference for Qt answers: Qt Forum, Qt Centre, mailing list, etc.
Jan
3
answered Qt (C++) vs. JavaFX: What is the relative size of each developer community?
Nov
30
comment OOD: All classes at bottom of hierarchy contain the same field
If I said "Multipe Inheritance" would I be shot? :-)
Oct
22
awarded  Yearling