Creating Great Software 

Creating great software requires a deep understanding of customer business processes and then determining a solution that makes those processes straightforward and efficient to execute while balancing technical complexity. Both are non-trivial challenges. 

Gaining an understanding of customer business processes starts with coming to a common frame of reference with terminology and concepts. It involves asking good questions, paying attention to the details of the answers, and knowing where to probe further. It takes both ability and experience to do well. 

Solutioning customer business processes (i.e. designing software) is, well, complex. Both functional and technical aspects must be taken into account. The functional needs drive the technical requirements while at the same time, you are both enabled and limited by the technical options available and the complexity to implement them. There are usually multiple ways to design software functionality that will effectively solve the business process at hand, but finding the balance between solution effectiveness and technical complexity can be a challenge. To do this well requires looking at both together, and no one person can figure it all out.  

Software as a Team Sport 

I’ve been creating enterprise software for over 20 years and it’s not easy. There are hard problems to solve and the details matter. Collaboration is key. The development team must work well together, building on each other’s ideas to create the best solution.  When done well, the result is a much better product than any individual could achieve. The importance of collaboration does not end with the development team. Internal and external stakeholder collaboration goes a long way to ensuring a successful experience for our customers. 

Customer Engagement, Collaboration, and the Magic of Rapid Feedback 

Our goal is to create software that people love. To do this, we need to capture a deep understanding of how our customers do business, their challenges and pain points, and use information to build solutions that make a difference. The process, however, doesn’t end there. 

When we create new features, we certainly need to do our homework and talk to our customers, but no matter how good of a job we do with that, whatever we create will be roughly right and exactly wrong. Until our customers use the new feature, we won’t truly know how well we did. This means we need to obtain frequent and continuous feedback from our customers and incorporate that feedback directly into our development process for the best results. The faster we get that feedback, the faster we can correct it, enabling us to maximize the value we bring to our customers. This results in not only better software but less time spent building the wrong thing. 

My Vision for MUNIvers 

Throughout my career, I have always sought out knowledge and looked for ways to improve. I’ve never been one to accept the status quo, and I tend to question everything.  I’m an out-of-the-box thinker who has been brave enough to try new things. I also pride myself in being able to recognize when things I try don’t go well and change my approach, incorporating the lessons learned. Growth requires pushing the boundaries and failing forward. It is this mindset that I will bring to MUNIvers. 

Key attributes that MUNIvers must have to be successful:

SecurePrevent unauthorized access and protect your data. 

Resilient Downtime must be extremely rare. If downtime does occur, whether it’s MUNIvers or external systems integrated to MUNIvers, it should never cause loss of data. 

Performant The performance characteristics of the system should enhance its usability, not get in the way of it. 

Accurate The information displayed is correct. The calculations are correct. Data is validated at every step.

Understandable and Unambiguous Sufficient contextual information is provided so the user understands exactly what they are looking at and what it means.

Predictable The results of any action taken in MUNIvers should be reasonably predictable. 

 

My goals for the MUNIvers user experience boil down to the following: 

  • Be able to trust the system 
  • Make it easy to do the right thing, and hard to do the wrong thing 
  • Reduce the effort required to obtain the desired results 

Because at the end of the day, my job is to create software that our customers love.