What I do
Hint: I’m more than a software developer
Software delivery is hard. There are many tiny details that need to be considered, technologies to master, and business cases to learn. Delivering working software is a huge challenge.
It’s also expensive. A small software development team (2 good developers and a project manager) can easily cost $250,000/year.
Finally, it’s risky. Studies have shown that most project are 6 to 12 months behind schedule and 50 to 100% over budget.
We try to deliver software:
- With high quality
- On budget
- On time
I present topics and give talks to help developers and Agile Managers hit those goals.
This site serves as an information resource for .NET Developers and Agile Managers to get a glimpse into how I work in my capacity as an SDLC auditor. This serves as a starting point for further conversation.
On the .NET Developer side, I focus on two topics:
- Staying on track
- Keeping the quality high
- Working with management
On the Agile Management side:
- Be efficient (or ruthless)
- Measure and adjust
There are also some fun articles on the .NET Micro Framework and embedded hardware programming. It’s a side hobby of mine and I love sharing what I’ve learned.
A recent post for JenkinsGadget had some ugly coding that I want to clean up. There’s too much conditional logic to determine and change the state of the program. This is where the State design pattern helps. It consolidates changes to state based on conditions.
A state pattern contains several classes:
- Abstract state class
- Concrete state classes
- A context (or monitor) class
The concrete classes contain the logic needed to change the state of the data contained in the abstract class. The monitor class simply calls methods on the state object to update state.
JenkinsGadget needs to respond to changes based on the return value of a web service call. That state is used to change color and blink LEDs.
I created a state pattern demo solution in a my StatePatternDemo GitHub repository.