Johannes Brodwall, Chief Scientist, Steria Norway

Read my blog

Who am I?

Johannes Brodwall

Johannes Brodwall is a software developer, software architect and an opinionated thinker. He's enjoys most to work on small projects where he can take responsibility from concept to cash. But fate seems to throw him into large projects. He takes a holistic view even of a large project, using the experience from small projects to improve on large projects.

Johannes is especially interested in studying what makes projects more successful and less successful. He has helped transition organizations to more agile practices, both as part of an architecture board during a full organizational transformation, and in more advisory roles.

Johannes is engaged in growing the software development community in Oslo, and has been organizing the Oslo XP Meetup, an Agile User Group with monthly meetings, for four years. He was also one of the initiators and organizers of two community-oriented conferences for the local agile community in Oslo: Smidig 2007 and Smidig 2008.

Johannes is passionate about quality and rapid iterations in software. He likes to be the dissenting voice in a discussion and provoke thoughts in others.

Key Expertise

Application Architecture
How do you construct a large scale system that can handle the constraints of your staff, your technical environment and currently available technology?
Technology selection
What products are available that will help you develop software faster now? How to you introduce open-source into an organization? I wide and deep knowledge of the technology spaces Java, .NET, C++, Ruby and databases.
Security
How do you analyze your system's threat profile? How do you avoid common coding and architectural mistakes that will leave you exposed?
Automated Testing
How do you write unit tests for a new or existing system? How do you test database, web pages, interaction? How do you go from having merely a tested system to a system that you know will work and fullfill the requirements?
Java
How does the Java language work? What libraries are available? How do you use Java for your greatest advantage?
Databases
How do you create good models in a database? How do you interchange data between your database and application?
Process
What is the possible benefits of agile development and extreme programming? How do you achieve them? What stands in your way?
Presentation
I have a pedagogical, energized and engaged approach to presentations for small and large crowds. I speak Norwegian and English at a native level.

Available courses

Agile introduction and improvement

As a <your project role>, I want to learn more about agile software development, so that <your goal>.

I conduct agile training sessions in an agile and including manner. In a large group, I lead a more moderated discussion about the what, how and why's of increasing the quality and frequency of the feedback in your process. For a smaller group, we start by the participants writing their own "Participation story" to document what they want to get out of the session. Then the participants prioritize from a range of prepared topics, and we cover those areas that are most relevant to the participants current experience and goals.

The course takes from 1 hour to half a day.

Introducing Unit Testing into Your Organization

Unit testing is the cornerstone of agile development practices. Once you have this in place, you can start making incremental improvements to your code, architecture and process. But many organizations find it very hard to introduce testing in an existing codebase. I can help:

Contact me for a program customized for your needs. (Only available for Java)

Project Architectural Kick Start

Are you about to start a new project with Java, .NET, or Ruby? Are you unsure as to what technology to choose? I can help you avoid common traps and choose technology and methods that will save you time and money. Contact me for a program customized for your needs.

Ruby on Rails

Ruby on Rails provides hyperproductive web development. See my Series of Articles to learn more about Ruby on Rails.

I am currently giving this course through Programutvikling in Oslo. My next course will be December 9th to 15th. You can read more about the course at Programutvikling's web site.

Other courses

I have the necessary material to conduct the following courses. I can provide training ranging from one hour to about a day.

Experience

Project highlights

BBS, STAY (2004-2007)
Lead Java Architect and Agile Evangelist for a large project. Hibernate, Spring, J2EE, JUnit. Technology selection, security, test strategy and yes, programming.
BBS, Nettbank (2004)
Internet banking. Web sevices. Unit testing. Integration testing. Automation. Java. Tomcat.
Chat.no (2004-2006)
Full technical responsibility for development, deployment, monitoring, security of online chat service. Unit testing, automation. Applets.
PetroOnline (2003-2004)
Architect, technical lead and project manager for redevelopment of a petroleum depot automation system. C#/.NET. NUnit.
Telenor (2002)
Worked as developer on Telenor's mobile payment initiative. Java, EJB, networking. Integration testing.
Ericsson (2000-2001)
Worked as a developer on the team implementing a H.322 IP Telephony proxy. H.323 IP telephony. Java concurrency. RUP.
Systek (2000-2003)
I was employed as a consultant in Systek for 3 years. My responsibilities included software architecture, coaching. Critical technologies: J2EE, Unit testing, Extreme programming.
Accept Data (1999-2000)
Worked as a C++ developer on the Win32/MFC-based replacement of existing backend system for financial applications. C++. Double-entry bookkeeping, Database.

Presentation Highlights

Here are some of the presentations I have given on more than one occasion.

JavaZone 2001-2008
I am a regular speaker at JavaZone, Norway's largest developers' conference. My presentations have included Unit Testing, SOA (video available), Java versus .NET (video available), J2ME, enterprise software architecture, and continuous deployment (video available).
Test-driven development
I have introduced Test-driven development for several organizations and at two conferences.
Introduction to Ruby on Rails
What you can do with Rails, and how to do it. Video recording available from NUUG Site (in Norwegian)
Java Safari
Introduction and overview of Java and Java Technologies. Held for multiple companies in 2001-2003.
Introduction to Extreme Programming
The basis of extreme programming, and how to get started.
Organizational challenges with Open Source
The legal and organizational impact of adopting open source.

Bibliography