Software Development, Mission Statements, Business Alignment, and Identifying the Job to Be Done

In my last blog post Software Development and Steven R. Covey on Leadership, I wrote about an interesting audio excerpt relating to IT departments and Software Development from Steven R. Coveys audiobook “Stephen R. Covey on Leadership: Great Leaders, Great Teams, Great Results” .

As an exercise, I put some of my own thoughts together while reflecting on some of my current and past projects.

Mission Statements

As Software Developers, instead of saying “Our job is to have world class technology” we could become much more specific on a project by project basis. There should be a specific mission statement for each solution: For example, a Part Inspection solution being developed for a large automotive manufacturing organization could have the following mission statement – which helps identify the job to be done: “Use technology to eliminate paperwork distribution on the shop floor and reduce the quantity of scrapped parts”.

A global Subject Matter Expert team of Software Developers that comes together to collaborate and help solve technical challenges within a large global organization needs a mission statement too so that every member of the team can truly understand how initiatives and ideas fit into the mission of the team. Amongst other things, ideas, initiatives, and discussions can be evaluated against the mission statement to ensure these are in alignment with it.

How are we aligned with the business?

Being aligned with the business is extremely important and all team members need to be aligned with the business in supporting the right goals. We need to understand the metrics used buy the organization to determine which goals are being achieved and what the objectives are. We should only exist to help the business achieve their objectives. This holds true for both employees and consultants and neither should lose sight of the goals of individual projects or the goals of the organization. It’s also important to understand how they fit together.

How do we identify the job to be done?

Working with the business, the users, and their current processes with or without the use of technology will help us identify how they are currently working and where innovation in technology will help.

Based on discussions, meetings, our own business knowledge, etc we get a good idea of what needs to be done technically. Depending on the project the team will have a combination of developers + project managers + architects and every team member needs to be aligned and understand the job to be done.

To identify the job to be done, we ask questions about how the technology will add value to the business to get an understanding of what specifically the problem is and how innovation in technology could remove the problem and really add business value. We need to understand how the solution has a big effect on the bottom line of the business, or more specifically, how it either increases profits or reduces expenses. It’s also important to see how not implementing a solution could pose its own negative consequences (ex: Mission critical legacy systems which lack vendor support). We need to remember that EBIT (earnings before interest and taxes) is the bottom line and it’s what is most important to the organization and therefore most important to us.

In Conclusion….

After reading this above post, I challenge the readers of my blog to share some of their own thoughts and opinions. If you wish to share you could either contact me directly to discuss, email me, or leave a comment on this blog page. Use the template below if you wish.

  1. Mission Statements
  2. How are we aligned with the business?
  3. How do we identify the job to be done?

Software Development and Steven R. Covey on Leadership

As part of my audible.com subscription I had the opportunity to listen to “Stephen R. Covey on Leadership: Great Leaders, Great Teams, Great Results” It’s a really good listen and has some very good ideas. I recommend purchasing it and listening to it in its entirety.

Specifically, I thought this excerpt of audio I took from the audiobook would be valuable to share with my blog readers as it is an example related to IT departments and specifically Software Development within an organization. Please find the audio excerpt here.

Take a listen (audio excerpt is attached) – it’s only a few minutes long. I also think it would be a good catalyst for future discussion.

Notes from the audio:

  • Adding bells and whistles with nothing to do with the needs of the users
  • Look at key jobs that technology is supposed to do
  • Instead of saying “Our job is to have world class technology” they might say “our job is to increase sales by 15% through proper use of our technology”
  • How does the company identify the job to be done?
  • To understand what features should go into the product Intuit would watch their customers installing and learning how to use the product. Have a conversation with the customer and watch what features they used. Get a better sense of how the software can even do a better job for those customers.
  • Went from 0% to 85% of the Software Small Business Market in 2 years. All the other vendors were focusing on improving functions that were irrelevant.
  • Identify the job to be done will influence the choices you make

In my follow up article, I’ve written my own thoughts on this subject – please continue reading at Software Development, Mission Statements, Business Alignment, and Identifying the Job to Be Done

Software Development At My Organization, An Article

I was asked if I would be willing to write an article for our organization’s newsletter. I didn’t mind. I’d like to share the newsletter article I wrote with the readers of my blog…

Software Development is an important piece of what is happening at Presstran every day.  You can see this by looking at the applications that are used and relied upon at Presstran every day, including, NCR, Weld Inspections, Part Manager, Production Sheet Scanning, Training, Lot Making (Kanban), and many others.  We are continually improving these systems as well as creating new solutions that add value and automate other areas within Presstran. 

Built on experience, we’re getting better at helping you solve problems by using technology.  Many of our projects we’ve developed for Presstran have also found their way to other divisions.  As part of this unified effort, I’m also championing a “Subject Matter Expert –  Software Architecture Team”.  We’re doing some exciting things.  Currently we have myself, and developers from the Cosma Group Office, Formet, Drive Automotive, Modatek, Presstec, and Integram participating.  We’re coming up with standards and guidance for software development within Cosma.

We try hard to make sure there is a solid ROI for any software project that we take on and therefore we do an upfront analysis of requests to change existing software, add new features, or create entirely new applications.  We have a Unified Development Process that we follow to determine the process we take in regards to implementing a new solution.   The Unified Development Process was developed by the Cosma Group Office with participation and review from Cosma International (and Magna) divisions, including Presstran.  It follows industry accepted guidelines along with the realities and culture of our business.

In determining which projects or requests will have the highest priority we look at a number of factors.  Typically the higher priority requests have the following attributes:

  • A clear business stakeholder who understands the request from the business standpoint, and who will take responsibility for the request from a business perspective
  • Built on top of a defined business process that is properly defined and working successfully
  • Request clearly indicates how the proposed solution solves the problem
  • The proposed solution will have a solid ROI (Return on Investment)
  • The request uses technology to make things easier, save time, or add capabilities that were previously unavailable

Although it’s important to look at the projected ROI of a project at the beginning stages of a project, it’s also important for us to audit the results of a completed project.  Routinely we will contact project stakeholders to get an understanding of how well a solution we’ve implemented is working for them or to understand the actual value being realized in the completed project.  Sometimes there are clear indicators that allow us to successfully measure how successful a project implementation has been and the value added.  Other times it’s difficult to measure, but it’s something we’re trying to get better at. 

Dan Douglas

IT Training and Justification

As IT professionals we need to be continually up to speed on new technology and continually striving to become masters of existing technology.  It doesn’t matter if you are a developer, systems analyst, business analyst, IT architect, whatever – to be at the top of our game we need to continually challenge ourselves in new ways and continually add to our skill set.  IT professionals learn things every day – we learn by doing, reading articles, writing blog posts, talking to peers, attending community events, classroom training, online training, etc.  Sometimes there is a huge benefit to attend a professional training class that could be anywhere from a day long to five days long.

It’s easy for IT professionals to “know” that we require training in a certain area – sometimes it takes some time to think about how we can actually justify the training.  If you or your company are paying for the training you might want to make sure that the training will be beneficial and valuable and, if someone else is paying for it, communicate the potential value or ROI of the training.  This will take some thinking, but it’s a good exercise none the less.   Think that training costs are easily between $2,000 to $5,000 (or more in some cases) a week for the training + travel and accommodations if required.

I came up with a quick template that could be used to justify training – weather you plan on justifying it verbally or on paper to whoever is approving the training this kind of template may help.  Of course, if you only need to justify it to yourself then you wouldn’t need this – or if the person signing the checks is ‘easy’ then you may not need this either ;)  Of course, I would never expect someone to just copy this template and fill in the blanks (unless you are a mindless drone) – it’s not meant to be a formal letter either, but just meant to give an idea of the type of ammo to bring with you if you are trying to justify training for yourself or your team.

The {length of training} {course name} training program being held at {location/building} focuses on creating the proper architecture of software solutions and familiarizes us with creating architectures for newer technology.  Continuous training in the area of Software Architecture will allow us to be able to better architect and develop our solutions for {Company Name}.  Solutions with a great and solid architecture have fewer bugs and allow features and improvements to be added with ease and with less time.  The advantages of this have been seen with {explain how value has been added to an existing project due to past training or knowledge in the specific area you are seeking training – try to include real numbers and hard values if possible}.  This ease of integration freed our time to focus on the core functionality of {Reference same project as above} rather than building all of the pieces from scratch.

As new technologies emerge we need to be able to take advantage of them in order to continually create better systems with a minimal learning curve.  This training will allow us to make better decisions on the use of technology in our solutions and gives us a better understanding of the best way to implement the technology to meet both current and long term objectives.  Better decisions up front when building a solution means less time and money required to initially develop the solution, add features, and expand functionality.

CIPS London Annual General Meeting 2009 Summary

I just want to write about tonight’s London CIPS event and Annual General Meeting.  The event took place at the InfoTech head office here in London, Ontario and began with Pizza and Pop followed by a presentation by David Canton on Website Legal Issues.  The CIPS Annual General Meeting followed, and among other things we nominated new board members followed by voting and announcing of the officers.  I’m pleased to announce my new position on the executive as Treasurer.  I’ll be taking over the role from Jonathan Korchuk who has been serving in that role for the last several years. 

I’m looking forward to my new responsibilities as Treasurer, and it fits nicely within the scope of my long term objectives.  Along with being a contributor and providing input at the executive meetings, as Treasurer, I will be responsible for the following:

“The Treasurer is the custodian of all the official property and records of the Section, and will deposit all the funds of the Section in a financial institution as approved by the Board. He will collect all monies, keep complete accounts, and arrange for payment of all approved indebtedness of the Section and keep proper vouchers for such payments. The Treasurer will issue, as required, notices to members whose annual dues are in arrears, and will submit an annual financial report, and any other financial reports as required by the Board. In addition, the Treasurer will submit an annual audited financial statement to the Board and to the National Office within six months following the Section’s Annual General Meeting.”

We have a total of four new CIPS Executive members tonight!  I believe we have a very strong executive team and I’m looking forward to a great year on the Executive.

Tim Hodges received a great appreciation at the event tonight for his work as CIPS London President for the last several years.  He’ll continue in this role again for this Executive year.  A job well done!

We’ll soon be updating the CIPS London website to reflect this new team which reminds me that I have to send in a short description/bio along with a picture to our webmasters so they can update the site.  http://local.cips.ca/london/executive.asp

 

CIPS London 2009/2010 Executive Team

Tim Hodges – President

Tony Curcio – Vice President

Jonathan Korchuk – CIPS Ontario Representitive

Margaret Kubasek-Vizniowski – Program Chair

Yotam Sichilima – Web Master

Abdalla EL Najjar – Student Services

Mathew Whitehead – At large, role to be determined (former role: Social Networking)

Dan Douglas – Treasurer

Carolyn Marshall– Communications Director

Mike Bondi – Social Networking

We’ve decided to also create a Communications Team which will consist of the Web Masters, Social Networking officer, and Communications Director.

IT Events Update

I’d like to throw some information out there regarding IT/Networking events, user group meetings, code camps, etc.  You can find like minded individuals at all of these types of developer events.  There is a large supportive IT community out there, and I would encourage anyone who is in this industry to check out some of these events.

Links to some of the types of events I’ve attended this year – most of these types of events should be available in a community near you – although I don’t know where you could be reading this from :)

Toronto Code Camp

This is an annual one-day free event held on a Saturday in Toronto. This year it was held on April 25, 2009.  There were several tracks that were mostly geared towards .NET development.  It’s a great turnout with hundreds of IT developer professionals in the industry and a great networking event.  Among other people, I met Mark Arteaga, owner of Red Bit Development, who I had the chance to discuss mobile device application development with the .NET compact framework. Mark is a Microsoft MVP, so I picked his brain about how the program works and the process to becoming an MVP.  Many major cities are also hosting annual code camps.

http://www.torontocodecamp.net/

Toronto SharePoint Code Camp

This is also an annual one day free event held on a Saturday in Toronto geared towards SharePoint.  This event really opened my eyes to how large the SharePoint community is.  SharePoint has really taken off and it seems that a lot of people are really jumping on the bandwagon.  As with the regular code camp, many major cities across North America are also hosting free annual SharePoint code camps.  A similar event is the SharePoint Saturday which is hosted in many cities including Toronto.

http://www.torontosharepointcamp.com

User Groups

User groups are a great way to get out there and support the developer community.  You have the opportunity to network with other developers, meet new people, and even present to the group.  There are many user groups available in many disciplines (including, VB.NET, SQL Server, Software Architecture, and Sharepoint).  They are a great way to introduce yourself to other members of the developer community.

I’ve personally attended the following user group meetings and have met some of the top people in our industry:    SharePoint user group (TSPUG), Visual Basic user group (TVBUG), and the Toronto IT Architecture user group.  The Toronto Visual Basic User Group was especially welcoming – the evening typically finishes off with drinks at a pub across the street.

All of these groups offer speaking or presenting opportunities for their members; I presented a presentation titled “The Basics of Software Architecture for the .NET Developer” at a coffee and code event for the London .NET user group last month.

iNeta provides support and resources to many user groups

Professional Developer Events

I’m planning on attending Tech Days 2009 in Toronto this year.  It has a great track and I’m looking forward to learning from the many speakers giving presentations at the event.  It also looks like it will be a great opportunity to network.

Business/ IT Networking

Almost every city has got these types of events.  Typically there is a presentation for the first half of the event followed by socializing and networking.  Very often these events are located at a bar or pub, so you can easily grab a beer or two if you like.  I’ve attended many of these types of events, and some have been useful and others haven’t.  It’s hit and miss, but still a great way to make contacts.

Meetup Groups

Almost every city has these too.  Basically, the purpose is just to get out to a bar or restaurant and mingle with other like minded individuals on topics such as Web 2.0, Web Design, Software, Podcasting, Blogging, or whatever… There are tons of these.  A good resource to see what’s available in your area is http://www.meetup.com

Professional IT Groups

You can become a member of CIPS or just attend their events for a slightly higher cost than non members.  I’ve attended many of these events including topics on SQL Server 2008, .NET Development, Cloud Computing, and events where vendors or developers show off the cool software or products they’ve developed.  I’ve been sitting in on the executive meetings.  Our next event is the Annual General Assembly being held on September 10th.  This is an annual meeting where we will nominate and elect new executive committee members followed by a regular CIPS professional event.

CIPS also regularly partners with Microsoft for many of their events such as the Heroes Happen {here} series of events.  I was asked my local CIPS chapter president to lead a discussion group at this event.  It was a great opportunity, and we had a great discussion (see here); I really liked this event structure.

Canada’s Association of Information Technology Professionals

If anyone has any recommendations for similar events please let me know by leaving a comment….

Dan

Six Great Reasons to do a Technical Webcast

There is a lot of value in conducting and creating a technical webcast. I have a strong background in Software Development, and webcasts have helped me in my career and personal growth in various ways. I am going to list my top reasons for performing a webcast (in no particular order).

  1. Learn a new technology or dig deeper into something you already know

    Webcasts can dive deep into technology so learning the technology (content) is a mandate, and doing a webcast is a great motivator to learn something new. This can enhance your skill set and get you up to speed with an emerging or any technology that you are not currently on the up and up about. While researching the content for the webcast you will likely come across pieces of information about the subject that you were not originally aware of.

  2. Practice speaking in front of a live audience

    In the case of a live webcast, where you are speaking and demonstrating to a live audience, you have to speak – and people are listening! It’s important that you know and are able to relay the information inside your head to an audience in a way that is engaging, so they remain interested and they learn. This is something that requires practice. The more you do, the more you practice, the better you will be. It will also give you a chance to demonstrate “thinking on your feet”, while you should have at least a pseudo script and ideas drawn out, there will usually be questions that are asked during and at the end of the webcast. These questions will test your knowledge and your ability to think about and respond to questions quickly. These are great skills that can be taken back to the office with you.

  3. Learn how to teach

    Use it to learn how to teach and demonstrate to an audience. Your speaking style, tone and demeanour will go into a “teaching mode” that can be reused outside of the webcast (ex: conducting training for a new application or demonstrating an application’s features to a client).

  4. Share your knowledge with your peers and technical community

    Think about abundance and sharing with the community. I believe an abundance mentality is good for the soul. Personally, I get a lot of satisfaction in being able to give to the community and participate within a community (for example, the large community of developers sharing content around the world via the web). It’s win-win, and another positive side effect of giving is that it will come back to you in due time. It also gives you a chance to showcase and express your talents to the community. The community will get a better sense of what you do and what you know and have a chance to learn the material you are presenting. Remember, it’s not who you know – it’s who knows you, that knows what you can do well.

  5. A new addition to your portfolio

    In the case of an offline recorded webcast or a live webcast that was recorded and made available offline, it can serve as a valuable tool. It demonstrates your confidence in your subject matter and your ability to present this information to an audience in a coherent fashion.

  6. Accomplishment and the art of the creation

    I think that most developers enjoy creating. They enjoy seeing the hard work, design, and innovation of their development projects going from inception to fruition. I also believe this to be true in the case of conducting or creating a webcast. Completing a webcast will leave you with a feeling of accomplishment in addition to the reasons listed above. Having accomplished this can fuel motivation. If you are creating a webcast solely for offline viewing (not live) then you also have more creative options available in post-production.

    

There could be many other motivators or reasons to create a webcast, but the bottom line is personal growth. I believe people need to continue to learn and continue to grow, and by conducting a webcast, you will learn and grow. Your audience will learn and grow as well. It’s Win-Win.

There are tools out there designed to help you create a webcast. In the past, I’ve used two great tools to conduct live webcasts (Microsoft Live Meeting and Webex). To create an offline webcast, I’ve used TechSmith Camtasia Studio.

These products are not free, but you can download and use (for a limited time) free trial versions of them. Also, (here’s a plug) TechSmith has an associated website named screencast.com that allows you to host and share your webcasts for free (or paid if you need additional bandwidth) – Camtasia Studio can create the files necessary for screencast.com and post it to your screencast.com profile automatically. It’s pretty sweet!

 

Dan