Quantcast
Channel: Pragmatic Dictator » Engineering
Viewing all articles
Browse latest Browse all 11

Myopic

$
0
0

Point the average development team at a problem and in very little time:

  • IDEs have been fired up and code is being cranked out
  • The same well-worn non-process is being followed as before
  • The testers and developers don’t talk to each other

The average development manager (and by implication their superiors) stands behind the team exhorting them to hit the keyboards and crank it out regardless:

  • They actively or passively encourage late night coding
  • There’s no concern over quality of development environment
  • Getting purchases signed-off takes far too long

There’s an endless parade of vendors promising this or that coding acceleration product that is always cheap and easy to integrate:

  • Swiss army knife frameworks
  • Automated metrics
  • Do it all database solutions
  • Testing tools
  • Code generators

The result is a self-reinforcing, software disaster generator endlessly thrashing around the same old cycle producing the same poor results but always with the expectation that “this time things will be different”. I’m pretty sure that falls under at least one definition of insanity.

I call this “code myopia” and believe it to be at the root of many ongoing industry problems including:

  • The failure to focus on customer value – why are we developing at all? What’s the minimum we need to deliver? What do our customers actually need?
  • Spiralling costs – if we’re intent on delivering value to our customers can we do it practically?
  • Operational nightmares – endless production rollbacks, painful deployment, no anticipation of production issues and slow resolution.
  • The absence of real design – the shape of a system is entirely dictated by favourite or already licensed technologies and maintenance is a nightmare.
  • Minimal advancement – focus instead is on poor reinventions of decades old algorithms or designs because few do their research or simply prefer to reinvent for intellectual entertainment.
  • Management of process – one manages people, the environment and work, not process.

Let’s be clear: The best code we can write is no code at all. We want maximum customer value for least effort and best possible profit. When that requires us to deliver code:

  • We want to leverage past experience
  • We want sustainable design
  • We want minimal code be it our own or vendors’
  • Nothing beats real-world testing
  • If we are to make mistakes, they should be new ones
  • We want products that work for us not our vendors
  • We want to be operationally effective
  • We want to get pragmatic about deadlines
  • We want active management
  • We want to help our customers innovate

That’s quite a challenge for all concerned (developers, testers, operational staff, management, architects) yet in a twist of irony, say the above to most people and they run back to what they know; those same people complain that their jobs are mostly hassle and there’s no real challenge! If however, you’re up for it, drop me a line.


Viewing all articles
Browse latest Browse all 11

Latest Images

Trending Articles



Latest Images