Monday, April 11, 2011

Director of IT, Part 1: Responsibilities - Strategy & Planning

Described here are the Strategy and Planning Responsibilities for the Director of IT within the online adult education or professional development space. The post is formatted so the responsibility is identified as the bullet-ed point where the why it is important is highlighted as dark red and in italics.

Strategy & Planning

  • In partnership with the organizations leadership team, identify opportunities and risks for delivering the company’s services as a mobile and web-based business, including identification of competitive services, opportunities for innovation, and assessment of marketplace obstacles and technical hurdles to the business success.
Most important here is identifying opportunities and risks in mobile, tablets and web-based business, due to the rapid changes with online adult learning. Also IT experience is required to assess technical hurdles when identifying opportunities for innovation, do not underestimate strength in tenured IT professional for this task.
  • Identify technology trends and evolving social behaviour that may support or impede the success of the business.
Being a "student" of  Web2.0 and semantic web is very important as these paradigm changes are having an increasing impact in how people use, interact with and learn socially online. In particular, it is becoming increasingly recognized that social and networked learning is the emerging learning paradigm for adult life long learners. The recent trend of leadership transparency and open data are also important trends which provide great benefit to IT.
    • Evaluate and identify appropriate technology platforms (including application frameworks and the deployment stack) for delivering the company’s services.
    There is a plethora of technology platforms to implement solutions within the adult learning realm. Some are proprietary, some are open source. Choosing the best platform given existing systems and restraints for delivering solutions is a business driven decision heavily influenced by IT knowledge and insight. This is particularly important when thinking about total cost of ownership and the costs of integration.
    • Lead strategic planning to achieve business goals by identifying and prioritizing development initiatives and setting timetables for the evaluation, development, and deployment of all mobile and internet-based services.
    This is most important for getting to completion. The project dependencies and critical path needs to be determined with a greater depth of knowledge in how the complexities and dependencies can impact schedule and downstream projects. This in particular requires breadth of IT experience.
    • Participate as a member of the senior management team in establishing governance processes of direction and control to ensure that objectives are achieved, risks are managed appropriately and the organization’s resources are used responsibly, particularly in the areas of software development, office networks and computers, and telecommunications.
    Voices of experience are essential when establishing governance processes, when initiating and improving governance within the realm of IT this should include all senior management views, including the experienced IT view. Director level skill, knowledge and experience is important in getting it right. To move forward with governance the organizations underlying assumptions need to be challenged and processes improved to accommodate changes brought by rapidly changing IT. A review of double loop learning and the learning organization can assist.
    • Collaborate with the appropriate departments to assess and recommend technologies that support company organizational needs.
    Assessing and recommending technologies requires having an overall knowledge of the organizations IT infrastructure, its active projects and running software. This is also best done with an IT portfolio management approach combined with capabilities-driven IT strategy, for these include great insight into all current IT and near to release software and work toward increasing overall IT (and business) success.
    • Establish a governance process that meets government, partner, and company expectations for customer information privacy.
    Keeping an eye on this is very important. Most jurisdictions have information and personal privacy laws and these need to be respected. Many organizations will have more than one IT initiative that is internet / student / customer focused. Ensuring that information privacy is honored should be one persons responsibility. Given technical complexity this should be the Director of IT's responsibility.
    • Direct development and execution of an enterprise-wide information security plan that protects the confidentiality, integrity, and availability of the company’s data and servers.
    Given the importance of corporate data / information this should be the responsibility of one person on the senior management team, the Director of IT is the best choice.
    • Direct development and execution of an enterprise-wide disaster recovery and business continuity plan.
    Given the importance and technical nature of disaster recovery and business continuity this should be the responsibility of one person on the senior management team, the Director of IT is the best choice.
    • Communicate the company’s technology strategy to board of directors, management, staff, partner organizations, customers, volunteers, and stakeholders.
    Someone needs to be responsible for evangelizing the company's technology strategy. This should not fall to another C-level role(s) as their priorities and voice is focused on other areas of the business. Director of IT needs to be seen as responsible and owning the technology strategy, communicating it is the best way for this to be done.

    Implementation & Deployment

    • Select and set up web-based internal communications systems, such as a wiki, blog, chatroom, project management, and bug tracking systems (in the absence of a system administrator).
    This should encourage transparency on all internal projects. Through openness dialogue increases and people have a better opportunity of being aware of all activities. These repositories contribute to the business / collective intelligence and knowledge management for the organization, all these sources should be indexed with internal search engine. If system administrator is available they should be made responsible for selection and setup.
    • Collaborate with the senior management, staff and potential customers to develop use cases (or user stories) and specifications that describe the implementation of the company’s services as mobile and internet applications.

    Being Agile in your approach to systems development is very important to your organisations nimbleness and success. Engaging the decision makers and customers when designing and implementing is also insanely important. The Director of IT should champion the gathering of use cases / user stories and use these to drive development.
    • As a member of the senior management team, establish a customer service and support process, with particular responsibility for mobile and web-based services that implement the support function. 
    Moving customer service and support to a self-serve approach with rich-media resources available on mobile and web based interfaces. Customer service should help those who cannot help themselves. Setting up an online community for customer self-serve support with customer service engaged in the online community.
    • Establish a process to integrate customer service and support with the software development  process to support resolution of customer issues and improve application usability.
    Creating a deeper connection between the customer and the software developer will increase the usability and focus the features to increase customer engagement Customer service should consolidate and manage the incoming user issues and provide support for the customer facing features and usability enhancements.
    • Collaborate with a User Experience Designer and potential customers to prepare wireframes or mock-ups of a prototype of the company’s applications.
    Engaging customers in design is a really good idea. The lean software movement (if I can call it a movement) is a strong advocate for customer engagement. And for good reason...

    Using wireframes is also a great way to engage in a discussion about what is important within the User eXperience (UX) and how the software is supposed to work. It also allows important information to be discovered before the development effort gets to far down the path. Wireframes save time and money.
    • As a member of the senior management team, participate in the selection of a graphic designer(s) who will create the company corporate identity and design the web application’s look and feel. Ensure that the graphic designer(s) have sufficient web experience, follows guidelines established in the User Experience design process, and delivers assets that can be easily adapted to mobile, tablet and web requirements.
    This is about getting the right mix of design savvy and technical abilities. Having the Director of IT of other senior IT person to assess the designers technical abilities, particularly as they relate to mobile and tablet. Things are changing rapidly and UX is changing rapidly with the emergence of new devices and UI standards. Getting the correct designer is very important. The selection process needs to include investigation of the candidates ability to follow guidelines and be aware of industry standards.
    • Participate in the selection and registration of the company’s web site domain names, including any related-but-unused domains that could compromise the integrity of the business (through competition, typosquatting, etc.).
    Protecting brand and driving traffic to the companies site is very important. This will also become a part of the Search Engine Optimization as driving traffic becomes increasingly important. 
    • Select and set up a software revision control system and repository (in the absence of a system administrator).
    Good version control encourages collaboration. Versioning should be a practice applied to software code as well as database creations scripts and design documents. Begin thinking outside the box here, find very efficient was to capture design (recorded video, constant blogging, etc. ) and index all the repositories across a federated search engine for fast retrieval.
    • Select and manage company staff or outsourced vendors who will implement a design as mobile, tablet and web pages using CSS, XHTML and HTML5 conforming to web standards.
    User eXperiance is quickly consolidating around open standards for UI creations and cross platform abilities. The CSS and HTML5 standards are ones to be embracing. Particularly if you are wanting to be well prepared for coming mobiles and tablets.
    • Select or define the company’s software development methodology.
    A consistent software development methodology both internally and with you partners greatly assist in getting to completion. Steps are less likely to be missed and roles and responsibilities are better understood. Best to choose a methodology that suits the internal team best and then seek out partners that come with the same methodology.
    • Establish a specification conformance and testing regimen based on user stories and the User Experience design.
    End-to-end traceability is very important for a mature software development methodology. Basing testing and conformance upon user stories becomes very powerful in that many other software development events can be derived from this practice. These events include determining the heartbeat of the software development team, estimating effort, quality and software deployment practices.
    • Promulgate coding conventions and documentation standards.
    Someone needs to evangelize the need for coding standards and documentation. Who best then the Director of IT.
    • Review current best practices for the selected mobile, tablet, web and application frameworks and establish the architecture(s) for all applications.
    This is about finding the best architecture for each and all of your product offerings. Its about having one person responsible in ensuring all what you offer online works together, is costing the least it can, performs well and exceeds the customer expectation. The one person responsible for all this should be the Director of IT while working closely with solution / infrastructure architect(s).
    • Select and manage company staff or outsourced vendors who will implement the applications.
    Having the right people, in the right place, at the right time takes experience. Identifying these people and managing to their strengths takes good leadership. Having an experienced Director of IT with proven leadership abilities goes a long way in putting together teams to complete application implementation.
    • Develops business case justifications and cost/benefit analysis for technology initiatives. Prepares request for proposals (RFP's) for technology equipment and services.
    Having IT initiatives grounded in business cases and cost / benefit analysis helps to build understanding, create the discussion and the supporting documentation to determine where all technology initiatives fit within the organization IT portfolio. Once the projects are identified that provide the greatest business benefit these can managed within the organizations IT  or be put out to RFP to determine an appropriate vendor. RFPs well managed can provide insight into potential solutions as well as the potential vendors.
    • Liaise with vendors and service providers to ensure efficient and cost-effective acquisition of technology purchases; oversee warranties and service agreements.
    Working with technology vendors and service providers is a partnership that can become more valuable through time. Technology solutions fit better when they are made with knowledge (both historical and current) of the workings and strategy of the business. Having alignment of these with technology purchases, warranties and agreements assist in having good partnerships and integrated solutions.  
    • Establish and supervise the software development process, setting short-term objectives and assessing progress as defined by the selected software development methodology.
    Identifying and establishing the heartbeat for IT is the Directors responsibility. All software development teams establish a heartbeat based on how frequently they deliver software with how many features. Having a solid software development methodology encourages this kind of consistency. Communicating the themes and objectives of each new release should be aligned with the business strategy and IT portfolio.
    • Conduct code reviews and specification conformance testing as defined by the selected software development methodology.
    Code reviews and testing is an essential part for great software. This needs to be championed by a senior IT person and the Director is best as champion. I strongly believe that an Agile software development methodology is the best way to go, therefore the code review would be done via the pair during their pair programming (or whatever the teams derivative of pair programming becomes). Having dedicated testers that are not the programmers is a good idea. The tests should be derived from the user stories and automated. Taking a Test Driven Development approach is a really really good idea.


    • Establish and supervise a quality assurance process, including integration and system testing.
    This responsibility is closely tied to the previous one as code reviews and testing is a part of quality assurance. How this differs is that code reviews and testing at the development (or programmer) level are focused upon each unit, feature and / or use case. The level of quality assurance within this responsibility has to do with the system as a whole from system, integration and user experience testing. It is often a good idea to move these quality assurance activities far away from the application software developers. To be thorough here the Director of IT could move this aspect of quality assurance out to the other areas of the business, where these users work with professional testers to complete the final rounds of testing.
    • Select, deploy, and monitor performance profiling tools and procedures.
    They say, "if you can measure IT, you can manage IT." (a play on Peter Drucker's quote) The idea being that you need solid insight (show me the data) into what is going on to be able to intervene and make improvements. The software development life cycle and production IT environments are no different. The Director of IT should have tools and procedures to gather this insight, they should also be responsible for making sure these tools (and accompanying reports) are available to all staff.
    • Review and approve proposed development releases and manage the release process.
    facilitating the decision process(es) to determine the features to include in the next release is key responsibility of the director. The actual decision should be the users, business analyst(s) and subject matter experts responsibility, the Director needs to be sure the feature list is within the teams heartbeat of features and schedule. And ensuring releases make it through to production release is also the Directors responsibility.
    • Evaluate and select web application hosting providers.
    Given the 7x24 and administrative value found in hosting servers in the cloud or at a co-location it doesn't make sense to build up your own internal (Internet facing) server infrastructure. Considering all the issues of information privacy, internal knowledge, disaster recovery, connectivity, etc... it becomes an important decision of where to place the server infrastructure.
    • Establish an application deployment process and supervise deployment to staging and production servers.
    Moving deployment through to production should be rigorous with well known procedures and schedule that best suits the running of the business and encourages customer utilization. New features should be deployed at times that best suit the customer while providing IT the metrics to stabilize and monitor the release.
    • Monitor application performance and review any application failures in staging or production.
    Having automated and instantaneous feedback from the application, in particular during release cycles. The ability to adjust quickly and tune for performance should be paramount during release. Having the authority to take action should fall the director or be appropriately shared.
    • Establish and monitor a web analytics regime that measures site traffic and application usage relative to business goals.
    Bring all web analytics data into management dashboards and business intelligence tools. Wherever possible map analytics to business goals.
    • Support the marketing process by providing implementation of technical requirements for Internet marketing and search engine optimization.
    Constantly align and optimize the website with the marketing initiatives, what can be found through one media, should be found from another online source. Driving traffic from multiple  sources offers business benefit.

    A complete description for the Director of Information Technology as a pdf follow this link; http://www.rawsthorne.org/docs/directorofit.pdf