Don't write another line of code without reading this

Spaghetti Coders
Every once and awhile I get to review other people's code. One year it was 1.4 million lines of PERL code running a SaaS website developed in the late 1990s. There was another time that I ended the relationship with a BI vendor because the platform required several hundred lines of code to produce a very basic bar chart. I once reviewed a homegrown ERP developed with tens of thousands (and likely hundreds) as Oracle stored procedures. My absolute favorite was reviewing several dozen revenue driving applications built on top of Microsoft Access which led me to write the post asking (begging) friends to please stop creating them.

There comes a point where the terms "technical debt" and "legacy" don't do justice for code nightmares.  Tweet: There comes a point where the terms "technical debt" and "legacy application" don

When there's hundreds of thousands of lines of code - developed on any platform or language - that doesn't leverage frameworks, design patterns, logging, exception handling, code commenting and other software development principles. When there aren't architects setting standards, pair programming practices in place, or coder reviews instituted. When designers decide to mix business logic with presentations or when database developers elect to develop stored procedures to do everything.  When copy/paste is considered code reuse and when obsolete code is never removed from the repository. When there isn't a version control repository because this was supposed to be a small application.

I could go on...

Mind you I don't blame all of this on the developers that created the mess. Some didn't know better. Others weren't given the right platforms for the job at hand. Likely all of them were under time pressure to get thing done the best way they could.

Management is to blame for poor coding practices

Here's the real problem. Many organizations are doing a ton more coding today than they were a decade ago.

You aren't just building brochure-ware websites, you're building multi-device user experiences that connect with transactions and data from multiple enterprise systems. You're not just developing reports, you're instituting automation, dashboards, and other analytics that drive decision making. Many of you are developing APIs and microservices just like software companies.

All of you are under time pressure. Pressure to go beyond the MVP. Performance requirements. Regulatory requirements. Increased security and testing requirements.

What are you doing better today to develop quality software?

Today it's so much easier to write more and more code. You can get development environments with a credit card and a few clicks. You can search github and leverage one of the very many coding frameworks or open source libraries out there to ease development. Or you can use a lowcode platform.

There's demand for more applications and it's easy today to have applications with lots of code - whether you wrote it or just included it. My question is, what practices are you putting in to ensure your codebase is maintainable?

What your development practice requires

Here is my short list. Your development team needs a person responsible to be an architect who not only defines development standards, but finds ways to review and measure them periodically. Your development leads should be reporting technical debt at the end of every sprint and you should be prioritizing a sizable percent (I recommend 30%) of your velocity to address it.

Your development team should be estimating their agile stories, ideally in story points so that the complexity of the business requirements is reported back to product owners.

If you have developers that are lazy about documenting their code or implementing exception handling, logging, and unit testing then this needs to be addressed.

By the way, it's not just coding itself that can create problems. Watch out for bad behaviors from product owner and from technologists.

You need a QA practice and they need to be automating their tests.

You should be listening to your developers and they should be recommending tools, libraries, and frameworks, and services to implement the applications. But the key word here is recommending. Developers shouldn't have carte blanche to leverage any open source repo or integrate any cloud service they want based on their own expertise.

And you should be developing many more POCs before making the decision to leverage a new technology.

Lastly, if you're a CIO or a CDO and have never coded before, make sure you have one or more lieutenants who have this experience. You can always call me for help.

End rant.

continue reading "Don't write another line of code without reading this"

10 Reasons to Attend Technology Conferences

Last year I attended and spoke at over twenty (20) conferences that covered a wide range of topics from Artificial Intelligence to Agile & DevOps to Data Science.  I spoke on a wide range of digital transformation topics and had the opportunity to meet many interesting IT leaders and event sponsors.

There are lots of reasons to attend technology events so let me suggest some and how to get the most out of them -

  1. Open your mind to fresh thoughts and new ideas - IT leaders in the office are like deer in the headlights on an eight lane freeway. Tweet: IT leaders in the office are like deer in the headlights on an eight lane freeway. Getting out of the office a bit helps - @NYIke #CIO Getting out of the office a bit helps many IT leaders to clear their minds and see the forest from the trees.

  2. Networking with peers, potential hires, or new opportunities - Since you are all seeing and participating in the same agenda it's easy to meet and start conversations with new people. But make sure to follow up beyond just doing a LinkedIn connection in order to form lasting relationships.

  3. Identify new partners - Conferences are an efficient way to learn about new companies and products and see their capabilities in action. More importantly, you can discuss your business needs with them (and sometimes their customers if they are attending the conference) to gauge whether it's worth following up.

  4. Recognize that your not alone with your challenges and get help - Whenever I speak at conferences or moderate a panel, I'm always looking around the room at people's facial expressions for that look that says, "Damn, I have the same problem." Many of those people come speak to me afterward to discuss and often learn that they are not unique with these challenges. Some just look to vent, others find comfort that they are challenges are not unique, but many use the opportunity to solicit new ways to cope, improve, or solve their challenges.  

  5. See emerging technology in action - We all know that the media loves championing stories around emerging technology... And we also know that the path to leverage new tech is full of speed bumps, wrong turns and false starts. "There's no better place to hear and see new technology in action than at a tech conference whether its being demoed by a sponsor or being talked about at a session." Tweet: no better place to hear and see new technology in action than at a tech conference whether its being demoed by a sponsor or being talked about at a session. - @NYIke #CIO Even better is when you network with early adopters and can follow up with them after the show.

  6. Why just attend? Speak, or join a panel! - Even before authoring Driving Digital and starting StarCIO I was a frequent speaker and panelist at conferences. It gives you an opportunity to organize your learnings and generalize them to a large audience. It helps polish up your presentation and storytelling skills which are all critical for IT leaders today. It also makes it easier to meet new people when they approach you after the session with questions.

  7. Pick an analyst's brain - We love challenging, thought provoking questions. We also attend to share what we know so seeking analysts at conferences is a great way to get quick (and cheap) answers to your questions. 

  8. Brainstorm and innovate! - Don't just listen to the content being presented! Absorb it, ponder it, and let it help you generate some new ideas. You just may come up with that great next big startup idea when listening and learning.

  9. Share on social media and with your colleagues - In addition to meeting people attending the conference, posting what you learn on your social networking feeds is a great way to meet others sitting on the other side of the room and others not able to attend. Some of the best people I have "met" at conferences came through twitter dialogs. In addition, I always tell my staff to monitor my feeds to see what I'm learning in real time and then I would formally share key takeaways when I returned to the office. 

  10. Have some fun - Life is hard. Work is hard. Conference organizers know this and they all create opportunities to have some fun whether it's happy hours before meals, after hours in the tavern, other entertainment and especially poker nights.

continue reading "10 Reasons to Attend Technology Conferences"

What to do when the CIO still doesn’t “Get it”?

Clueless CIO
I was asked this question twice last year as a keynote speaker, one time by Chief Data Officers and the other by millenials working in marketing and other digital roles. Their sentiment was that their CIO was too slow to implement modernized digital platforms, hadn't instrumented collaborative practices, or was just perceived as a "no person" when presented with new ideas and needs.

Here's one of my answers and it comes from my book, Driving Digital: The Leader's Guide to Business Transformation Through Technology

If you are a technology leader and didn’t do some of these things, chances are you were replaced or will be soon. You will be disintermediated by spending too much effort just keeping the lights on instead of driving change or by being the business steward on risk instead of being a solution provider.

In the book, I provide more substance on what there things are and they include partnering with marketing on lead generation, leading data governance programs. and establishing agile development practices.

The people asking the question already had their answers. Some with more senior roles do their best to work around the CIO and IT to get what they need. Some of the millenials in the group seek out leaders and mentors who are willing to challenge the status quo and try to join their teams and programs. Those less empowered are more likely to put in their time, then look to leave and join more progressive organizations.

None of these options are very good for the organization or for the CIO. It demonstrates an underground movement of people capable of doing more, stifled without the support, and either working around it or working to leave it.

To my fellow CIO and IT leaders

Your world is bigger and faster than it ever was with new impacting technologies, faster practices, more significant strategic opportunities for technology driven change, and certainly more threats. You are being asked to do more with less, to grow the portfolio even though the legacy is shrinking slower, and to be an expert in all technology things climbing the Gartner Hype Cycle.

My simple advice is to get help.

StarCIO Implement Digital Strategy
You can't be an expert at everything, but you can bring in the help to accelerate your organization. If your slow to adopt agile practices, get help from coaches. If your data landscape looks like a landfill, then bring in experts that can kickoff data governance, consolidate data platforms, or automate data pipelines. If you don't have the funding to implement change, get help from technical financial analysts who can review vendors, assets, and workflows for cost optimizations.

Then, go out and work with both leaders and staff. Listen, listen some more, and learn. Go visit customers the big, the small, the happy, and the unsatisfied. Better yet, go visit those that are no longer customers or ones that have elected to work with a competitor. 

Then formulate how you can either lead or participate in your organization's transformation programs.

This is the final article of a multi-part series on What I Learned about Digital Transformation from Speaking to Hundreds of Leaders. You can read the previous articles on If data is the new oil, we’re still digging wells"We are more successful onboarding new technology versus maturing it"Financial Practices are Outdated for the Transformation Era - (And here's what you can do about it),  Developing a Strategy for Putting People First in Transformation Programs and We are doing agile but are not AgileSign up for my newsletter for even greater insights!

continue reading "What to do when the CIO still doesn’t “Get it”?"

If data is the new oil, we’re still digging wells

Data is the new oil
Amazing to watch how much data technologies and practices have evolved over the last 10-15 years. Despite a myriad of new nosql, big data, self-service BI, data governance, data prep, machine learning, and now artificial intelligence platforms that have come to market over this time frame, the fact is many organizations are still in early stages of maturing modern data management practices.

Part of the issue is the technology landscape itself. When you review any one technology, it likely has different capabilities across the data lifecycle. Rarely is a data visualization platform only capable of analytics and visualization and they often comes bundled with some data management and sourcing capabilities. Similarly, there are data prep technologies that do prep but also add elements of data governance and visualization. This along with the myriad of data technologies that are competing for market share and brand awareness makes it very difficult for leaders to navigate a data technology selection processes.

Evaluating data tech is far from trivial. I won't rant, but there are many data technologies, in an effort to "check the box" that they have a feature or capability, launch an "MVP" that just isn't good enough. I've reviewed data prep technologies that are worse than spreadsheets, ETL platforms that lack documentation and debugging tools, and data visualization products that only have filters to drill into data. This means that organizations really have to invest in POCs and ideally pilots to fully understand the depth of features each platform offers and whether they meet the needs of the organization.

Even with technologies selected, the next challenge is in helping people in the organization learn the new skills to perform data roles and work with new technologies.

Digging for data requires a strategy

What's wrong with the picture I just shared. Very simply, it's technology driven. Your first step in digging for oil shouldn't be about what drill you're going to use. You need a strategy, a perspective of organizational strengths, and some knowledge of what types of wells you plan on drilling before selecting your sites and equipment.

  • A data strategy helps to align stakeholders on who the target audience is, why analytics is important to them, what values are being addressed and what impact is being targeted. 

  • A perspective of organizational strengths helps sorts out new roles and responsibilities that are needed to enable the data driven organization.

  • Identifying what types of data structures, data challenges, and target analytics is then required to zero in on the types of technology capabilities to seek. 

Want more on these three perspectives? 

I hope you enjoyed this post, but I have more to offer. If you subscribe to the free StarCIO Driving Digital Newsletter I will respond with more on defining your data strategy, identifying organizational strengths, and classifying the different types of data problems.

Subscribe to the StarCIO Driving Digital Newsletter

* indicates required

continue reading "If data is the new oil, we’re still digging wells"

"We are more successful onboarding new technology versus maturing it" - And five things CIO must do to drive digital platforms

I was speaking with a few CIOs at the SINC USA West conference in Scottsdale late last year on the state of managing digital technology in their organizations. One CIO told me, "We are more successful onboarding new technology versus maturing it." Here's the logic behind his thinking and why this is a real issue for organizations investing in digital platforms

  • When a new technology is purchased, there is incentive by business stakeholders and technologists to prove the value of the investment and achieve a production use case. We leverage POCs and agile practices to mature technologies to this first deliverable.

  • Once the technology is in production, we spend significant effort to ensure the operational stability of the platform. Even if the technology is deployed to the cloud or is a SaaS, it requires a knowledge transfer, monitoring, and other IT services to support ongoing operations.

  • By the time we discuss new use cases for the technology, there may be some resistance by business stakeholders to apply the technology a second time if there were any issues or speed bumps deploying it the first time.

  • Even when technology deploys smoothly, business stakeholders are not incentivized to reapply it in new contexts. In fact, their requirements for new use cases may not perfectly align with the capabilities of the selected technology and they may drive the CIO to look for new technologies that better meet their requirements. 

  • We are our own worst enemy. Even when their is good technology in place we have technologists on our team seeking the latest and greatest. This is a good thing as we want technologists researching new capabilities. However, when they fail to understand the economics of repurposing existing tech and lobby for something new that is only slightly better than what is already in place, then it can make it difficult for the CIO to sell to stakeholders a streamlined , repurposable set of technology platforms.
Organizations end up with multiple CMSs (Content Management Systems), search engines, big data platforms, CRMs, and other platforms - partially through M&A, but also because business and technology leaders fail to reapply technology they have and often seek out the latest and greatest.

From Technologies to Platforms

Here's my advice for CIO that want to see technologies become multi-use platforms -

  1. Find multiple use cases up front before selecting a technology. Focus implementation efforts on one of them to get the win, but make sure you have a couple other initiatives with business rationale defined as potential second and third use cases.

  2. Partner with business stakeholders to define strategic requirements without diving into implementation details. Then, educate stakeholders on the capabilities of existing platforms with the goal of better aligning the implementation with a platform's capabilities.

  3. Educate a larger technology team on the platform's capabilities so that they are more likely to drive its reuse.

  4. Partner with the CFO and the CHR on incentives that reward leveraging platforms.

  5. CIO must market their platforms internally, but be honest about their capabilities. In addition, CIO should communicate where they are doing R&D on new platforms to better align technologists and stakeholders.

This is the fourth article of a multi-part series on What I Learned about Digital Transformation from Speaking to Hundreds of Leaders. You can read the previous articles on Financial Practices are Outdated for the Transformation Era - (And here's what you can do about it),  Developing a Strategy for Putting People First in Transformation Programs and We are doing agile but are not Agile. The next article on If Data is the new Oil, We’re Still Digging Wells  will be published soon. Sign up for my newsletter if you would like to be notified when new articles in this series are published.
continue reading ""We are more successful onboarding new technology versus maturing it" - And five things CIO must do to drive digital platforms"

Financial Practices are Outdated for the Transformation Era - (And here's what you can do about it)

In talking with technology leaders about their transformational programs, the discussion often evolves to a gripe session on the mismatch between ingrained financial practices and the types of organizational practices required in transformation programs.

Agile, cloud objectives misaligned with financial practices

Outdated accounting practices
The gripes look like -

  • We’re practicing agile on sprint and release cycles that are days to months in duration, but the finance team needs yearly and sometime multi-year financial forecasts on “project” costs. 

  • We want to be agile with our customer facing technologies, but financial practices more often drive one-time capital investments and hard to justify ongoing investments to support enhancements. Our "projects" should be run more like ongoing agile programs.

  • We want the versatility of the cloud but have not adjusted to higher operating and lower capital investment options to support this transition.

  • We want to experiment, pilot, and even “fail fast” but expect business cases that forecast ROI before making pilot investments.

I confess, but I don’t have a one size fits all solution to drive change in mindset and financial practices. As a CIO and now as President of StarCIO I have to work with the financial chiefs and auditors to determine where they would permit stretching or changing our financial practices.

But I can offer some recommendations

1. Take charge of your spend

Driving Digital by Isaac Sacolick
If you’re not doing this already, take charge of your financial spending by tracking it rigorously. More often than not, your ERP doesn't have the level of detail to run IT like a business. If you are a large enterprise, there are many tools that you can select from to manage the total cost of ownership of IT, but these may be out of reach for medium/small enterprises or small IT shops who must be creative on adopting tools, methodology, or level of detail to track. In my book, Driving Digital, I provide some advice on developing a financial tracking tool on lowcode platforms.

Tracking financials rigorously gives you much deeper knowledge on where you can cut costs to drive new investments. It's also your vehicle to have a more detailed financial discussion with your finance teams.

2. Address agile mindset factors first

This is important:
Manage to budget and quality first, timelines second, and scope a distant third. 

This requires a deep change in cultural and developing an agile and digital mindset around scope and what is an MVP - which is more critical to address in transformation programs versus deeply ingrained financial practices. By managing to budget first and tracking finances rigorously (my first recommendation) you'll be better positioned to provide accurate financial forecasts. Then, you have to manage to this budget by debating scope or adjusting timelines.

Secondly, partner with the CEO on developing an innovation portfolio that operates with a separate set of KPIs aggregated at a portfolio level. It is a mistake to try calculating ROI to early in a program, and CEO often support the idea of an innovation budget that's backed with sound management practices.

3. Find the timing and levers to pull to adjust CapEX and OpEX spending

As you move more infrastructure to the cloud, it should free up capital that you can use to drive the upfront investments needed in transformation programs. So make use of your CapEX to fund the initial release of new products and platforms. Work with your CFO and auditors on the governance of applying CapEX to innovation and MVP product or application releases.

To offset the increased costs to support cloud, SaaS, and ongoing application development you’re likely going to need to find offsetting cost savings. This can be done by proposing projects to increase automation, consolidate SaaS providers and sunset legacy platforms. You're going to have to be creative with how to shift this spend, and the best CIO find ways to either capture larger budgets from business teams or to shift costs into line of business P/Ls while still retaining appropriate controls.

4. Find IT capabilities outside of IT

Shifting OpEX spend from infrastructure to ongoing application development isn't going to be sufficient.
The elephant in the room is that as organizations invest more in digital transformation programs, they are going to have to support a larger and more complex portfolio of applications. 
This requires funding for resources especially if you're going to continue to invest in enhancements and avoid seeing today's applications become tomorrow's legacy.

CIO have another lever to pull and that's using resources outside of IT to do some of the technical work. CIO must consider growing their organizational technical capabilities with citizen development and citizen data science programs, reducing the level of “IT” investment and skill to drive technological change.

5. Network and learn from peers

I am shocked by how many CIO and IT leaders that I know personally that don't get out of the office to network with peers. I just published 500+ global events for CIO and IT Leaders, so there are plenty to choose from!

Great CIO and IT leaders network with other CFO and CIO in and out of their industry to learn modernized financial practices that they have instituted. At conferences, seek out IT leaders from your industry or size of enterprise and ask them how they are shifting spend from CapEX to OpEX, what tricks they are learning to find investment dollars for transformation programs, where they are having success with citizen development programs, or how they've gotten buy in for innovation budgets.

This is the third article of a multi-part series on What I Learned about Digital Transformation from Speaking to Hundreds of Leaders. You can read the previous articles on Developing a Strategy for Putting People First in Transformation Programs and We are doing agile but are not Agile. The next article on We are More Successful Onboarding New Tech Versus Maturing It is now published. Signup for my newsletter if you would like to be notified when new articles in this series are published.

continue reading "Financial Practices are Outdated for the Transformation Era - (And here's what you can do about it)"

Announcing: 500+ Technology Events for CIO and IT Leaders

Are you ready to develop your 2018 professional development plan?

In 2017, I launched my first dashboard of events for CIOs and IT leaders to resounding success and decided to do a new version in 2018. The 2018 Events Dashboard for CIO and IT Leaders is now available with over 500 events targeting technologists at all levels.

2018 Events for CIO and IT Leaders

What's New in the 2018 CIO Events Dashboard?

I decided to enhance this years dashboard -

  • Launched with 500+ global events coming from thirty-one (31) countries including almost 300 from the United States and over sixty (60) from the United Kingdom

  • Coverage of seventeen (17) topics with a focus on emerging technologies such as AI, blockchain and IoT

  • Now display conferences targeted to specific industries including financial services, healthcare and retail

  • Coverage of events from over twenty (20) event organizers

If you are an event organizer, there are links on the dashboard to submit your events.

continue reading "Announcing: 500+ Technology Events for CIO and IT Leaders"