Monday, July 22, 2019

Building great software while keeping the client involved.

The process of designing and building software is an invention process. 

Like inventors, software builders define a problem, refine it, pivot and sometimes regretfully devolve.  Like inventors, developers respond to that same problem with constructs, architectures, models and components. The most important thing to remember as we build software is to give ourselves space to fail and pivot.

For years well planned and theoretically well thought out projects would go astray. They were over budget, out of time, and bloated beyond belief.  Out of this grief ridden world of failed projects, a little idea, that of "extreme" programming and later "Agile" development began to take root.  In essence, developers and development leaders began to embrace the "pivot".  At its essence the idea of "Agile", was that software development was an invention process.

In those days, and sometimes now, in the most constrained environments, developers might have been told to "stay focussed", "just implement it", and "do what you are told".  Today we understand that developers hold the key to understanding not just the "what must be built" but also "the how" and sometimes "why something might be better if built a different way".  Developers are intimate with the algorithms, with the core issues and often even with the humanity of a solution.  In other words, as they work through the problem, developers begin to understand the core tradeoffs at the root of the solution, including those that directly affect human experience.

At this moment, in stand ups occurring around the world, developers are explaining the revelations they have found as they explore their working domains. Because stand ups are daily, developers are able to slowly inform teams about their explorations and also their inventive solutions.  As they work, developers are identifying key problems, inventing new solutions, and refactoring both ideas and code, until the overall goal is met.

The stand ups of one team working together day after day creates a synchronicity, though imperfect, it is tight. And this rhythm leads to the invention of new solutions. This is the pulse of agile and the pulse of invention. New software is derived from the steady pulse of problem solving, creativity and the flexibility to follow the problem solvers to the solution.

This is the process of invention and it has overtaken the world.

Too many tabs! Mastering the many tasks of life, programming and entrepreneurship

I'm guilty!  Too many tabs all the time.  In my mind and in my browser.  But I just (finally!) found an amazing way to organize all those tabs (at least the ones in my browser).  I'm loving it so far so I thought I would share.  If you take a different approach, I'd love to hear it too.

What I love most of all about this is 
  1. I won't have to reorganize my tabs every morning to get myself ready to work!
  2. Tabs can be saved where I've left them (or moved somewhere else). Thus each section is essentially both a workspace and a reminder space. For example, seeing the 'Harvestapp' tab reminds me to log my time in Harvest.
  3. It is free (so far).  

This is a chrome extension called Workona.

p.s. -- I don't have a relationship to these folks, but I think they may have just changed my life, so sharing!  The reviews are solid -- check it out!

This blog was first posted on ZebrasUnite