Leaders who code?

Should Information Technology leaders know how to code?

I’ve been leading software engineering teams for a long while and I wondered how much had changed since my early days as a COBOL developer.  I decided to do an experiment. I always wanted to build a mobile app. How hard could it be?

I spent time talking to some start up friends and found out what was cool in the mobile world.  Now, I’ve always tried to stay in touch with technical trends and coding so my base skills for development were intact.  I had played with Python, JavaScript, HTML and CSS but building a full functioning mobile app was a big challenge.

After a bunch of research, reading and downloading and installing the required tooling and starting down the path I thought I should track it (using git like many teams do) and generate some statistics that I could use to measure my productivity and to compare against estimates i get from my engineering teams.

I didn’t track everything and only thought to track after a stumbling start.  So it’s not very scientific. But I have some statistics which I’ll share in a moment.  The bigger insights were around how software engineering work gets done.

Software Engineering has changed A LOT.

My first COBOL program at work was on punch cards and had a 1 day turn around for a compile on the mainframe.  So a flow chart and some good design and thought was required up front. With my new hybrid mobile framework installed (after the stumbles of installs and reading lots of docs), I had a sample template app compiled, running and simulated on my laptop in less than an hour.  Ok, the sample app doesn’t do much, but compared to writing every line of COBOL, I was just stitching components and libraries together and modifying templates (and re-learning how to debug using chrome developer tools and stack overflow).

I spent time adding menus, functionality a backend database, security authorisation, the ability to take photos and add them to the database.  I had many bugs and wrote lots of code that I later deleted when I realised a library already did that better. Now this is not a production ready app that you might find on the play store but it worked on laptop browser, iPad and iPhone and Android mobile.  The point is it took me about three work weeks of effort. The outcome was a functional hybrid and responsive end to end mobile and browser application.

The fully running app with menus, navigation, list-detail views, camera-image access, database, full authentication including social media token auth was about 136,000 lines of source code.  I only wrote 1,000 of those (not counting the ones I wrote, re-wrote and deleted), the rest were libraries and components I had included all for free. My first COBOL program was many weeks of effort and 100% my code to do one simple function.  My first mobile app, less than 1% my code and multiple functions with security and database included in 3 weeks. Wow, where are those productivity stats included in the economists view of the world?

Now the story doesn’t end there.  Technology keeps moving really fast and keeps accelerating.  

Software Engineers have to constantly learn

A year or so later I did a follow up experiment.  I went back to the code to update it. Well the Ionic framework went from v1.0 to v3.0, Angular went from 1.0 to 4.0, JavaScript had to be changed to Typescript.  This seemed like a full rewrite, but I guess it’s only my 1,000 lines of code. The challenge is the learning curve. I really didn’t want to start from scratch when it was working code.

Most Software Engineering has changed from writing code from scratch to stitching other people's code together.  I think if you’re writing lots of code you’re probably missing something. Now there is still a big bunch of work to find, stitch and glue libraries and components together, test, integrate and get them working to meet the needs of your business problem.

And Software Engineering skills need to be constantly updated for the latest libraries but also new components and new ways of working.  The recent example of React vs Angular is an example of this.

I love how productive software engineers are today and how fast things can truly be built (on the shoulders of giants who’ve shared their code through open source).  It’s also much easier to be creative when stitching working components than writing everything from scratch. Fast feedback enables quicker delivery but also the creative abilities to shine.

This really helps me understand what my teams do and be a better leader.  I learnt more doing this than going to a conference.

Do you think tech leaders should know how to code?

Gavin K.

Leadership, Venture Builder, Non-Executive Director, and Chair

5 年

I too started my career with COBOL, although it's not on my resume, and like you have dabbled with coding through the ages. I think your observations are entirely correct and I find that today 'coding' is like a cook following a recipe book. The ease of building functioning software is fine most of the time but our cooks get lost when things don't work or go wrong. The best developers/engineers are like master chefs who understand the balance of ingredients and their underlying components. Too often I find educators teach to code but no longer explain how the underpinnings actually work which means we have a technology workforce of many cooks but very few chefs.

Mark Cook

Experienced People & Culture Leader

6 年

Colin McCririck well written and happy you are the last surviving COBOL developer in the world. You will be very busy!! Do you think that these days of "Search Engineers" that people lose the skill to really think through and design elegant solutions? Whilst Search, copy and paste code is quick, does it deliver robust solutions? Just a thought

周伟伟

IBM - IBM Account Practice Area Leader, New business development leader

6 年

Very excellent Colin. from a PG to a Director , you can do it at the same time. really like "I learnt more doing this than going to a conference."

回复
Richard Glew

Senior Technology Leader and Advisor Data and AI

6 年

Without doubt yes you need to be able to code in some capacity even if it’s not too often. It’s hard to be an effective leader of engineers and hold their respect if you don’t have empathy for what they do and have some appreciation of what good looks like. I work with many teams who suffer awful conditions trying to get their work done because the organisation makes it structurally difficult for them to do good work. +1 to you for your experiment! I wish more leaders did that ??

Bernie Woodcroft

COO Microba / Director

6 年

Or more seriously Colin, have the key skills required to be a productive programmer changed over that time? Are creativity and end user engagement more important? Are Business Analyst and Coders roles merging? Does this diminish the cost benefit of skilled cheaper off shore resources?

要查看或添加评论,请登录

Colin McCririck的更多文章

  • Innovative tech in healthcare

    Innovative tech in healthcare

    With the merger of Midnight Health and Honeysuckle Health we're excited to share further job opportunities. If you're…

    3 条评论
  • Aliens are coming

    Aliens are coming

    Imagine if SETI got a message "People of earth we will arrive in 10 years. Get ready.

    13 条评论
  • Broken Business Models?

    Broken Business Models?

    In recent discussions with some CIO's, we discussed the challenges of dealing with big software vendors and their…

    12 条评论
  • Why is innovation so hard in big organisations?

    Why is innovation so hard in big organisations?

    There's lots of interest in innovation lately. Some startup's do it well and big organisations are trying to get…

    19 条评论
  • Are your tech skills still relevant?

    Are your tech skills still relevant?

    The world keeps changing and it seems to be accelerating. Much of this is driven by technological change.

    9 条评论

社区洞察

其他会员也浏览了