I work in semi-large corporate company as a software developer. Recently, few of my colleagues from non-IT department (sales, marketing...) shown interest in learning basics of software development to better understand capabilities of IT department. I would be more than happy to introduce them to the subject, but I am not sure how to begin and where to go. I guess some introduction to what algorithms are about and why some tasks seam easy but in fact can be incredibly complicated is in order, but apart from that, I am lost.

What could be some good topics to discuss with them?

P.S. if this is not something suited for workplace.SE, please let me know if there is some better SE site to discuss this topic.

  • I don't think it is suited for workplace, however I'm unsure of which SE in particular It belongs to. This playlist is a pretty good resource and uses Processing, which allows people to visualize how things interact. It's no "formal" training, but it should keep them interested and help them learn. – Premier Bromanov Sep 9 '15 at 23:00
  • 1
    Chat for this site would probably be the best place to get meaningful responses to this - I'm concerned this doesn't really fit into "navigating the workplace" and is a bit more, "how can I do my job?" territory. See chat here as you might have better luck. – enderland Sep 9 '15 at 23:01
  • Remember to check with your manager before you spend both your time and that of your colleagues on something that is ultimately outside the scope of their responsibility. I'm not sure you can explain anything beyond the very basic without taking up a lot of time which might have the opposite effect you're hoping for (i.e. "man, this is just swapping some values around, how do those developers spend so much time on this?"). – Lilienthal Sep 9 '15 at 23:08
  • @Lilienthal this is something I am willing to do on my free time, as the people in question are close to me and I feel like showing them piece of my job would help them in their work at least a little bit, so even if it is outside of the scope of my responsibility, I don't mind. However I realize that other people that might be interested in this question probably don't share this ability, so I will keep the question as it is. Thanks for the input anyway, it is a valid observation – Lope Sep 9 '15 at 23:20
  • "learning basics of software development to better understand capabilities of IT department" Lets say they show aptitude and end up being able to write a decent script, great, good thing, not even close to professional software development. If the on scope part of this question is whether educating colleagues like this fulfills your goals: seems unlikely. – Nathan Cooper Sep 9 '15 at 23:29

Don't teach them computer programming. That's too much of an undertaking.

If you want them to understand the process of software development, then refer them to books like CODE by Charles Petzold, The Pragmatic Programmer by Andrew Hunt and David Thomas, The Mythical Man Month by Fred Brooks, or Peopleware by Tom DeMarco

The higher level knowledge they may learn from these books will be more valuable to them than just the rudimentary ABCs of programming.

If you want to hang out with those folks during your personal time because you simply enjoy their company, then I'd recommend poker, hiking, dancing, or cooking, but do not pretend that these activities are going to be work-related.

  • I am looking into the books you suggested and they look interesting, thanks for tips! It is definitely not about just spending some more time with them, I do enjoy their company, but we see each other outside of the work. This is strictly profesional – Lope Sep 9 '15 at 23:49
  • 1
    I voted this answer because it is spot on. If these people really wanted to learn programming, they would have already done it with all the resources that are already available. I would also add books about agile development and creating Excel and Word macros. – Michael Potter Sep 10 '15 at 1:30

In some ways, you have answered your own question:

...learning basics of software development to better understand capabilities of IT department

If this is purely something you are trying to gain a professional outcome, then like all tasks, you need to focus it towards that goal. Note that this does not imply you actually need to teach them how to code :)

What could be some good topics to discuss with them?

Well, what are your pain points for them? Possibly start with:

  • Scope, design, implementation, testing, maintenance. The software development lifecycle
  • Resourcing
  • Unexpected complexity of coding
  • Tracking bugs
  • Technology choices

Now, tie these back to the sorts of challenges a development team need to deal with on a day to day basis:

  • Impact of changing the scope
  • Impact of changing timeframes
  • Impact of that tricky bug
  • How testing feeds back into the development and release cycle
  • Limitations and difficulties with a particular tool or technology

Without offering a single line of code, you can give a considerable amount of information as to how the capabilities of the IT department impact and are impacted by external sources, such as the people you are trying to educate. I think you will find far more professional value in this approach than simply trying to get them to write a "Hello, world" application :)

  • 1
    And for this group of people especially emphasize how to report a bug in a way that makes it easier for the developer to find the cause. Give examples of good and bad bug reports. – HLGEM Sep 10 '15 at 17:01

I would simply introduce your internal process for how you do things. I would include many examples of why certain things worked well, why some things didn't work, and how you go through new releases and bugs.

  • I would not recommend that they learn programming. They won't. And you have wasted everyone's time and this time could be educating them on your process.
  • I would not recommend giving them a "lecture" or course on programming or methodology. You will put them to sleep.
  • I would not recommend giving them books to read. First they won't read the books. Second, even if they did read the book they would misunderstand the meaning of half the things without any prior context. And then misapply these things to your workplace. My marketing guys would giggle if I suggested a book to them.

It is really easy. Know your audience. If you can give a specific lecture to your marketing team show them how their interactions affected the programming cycles, whether it be a client recommendation, a new feature to win a sale, a bug, an enhancement changed mid-stream, whatever. When you call out "Mark's" name and say Mark you asked us to do this and this is what we did, people will listen because it is something they can relate to and might affect them in the future.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.