Jira vs Github :: Agile vs Open Source

A few years ago, my team got into Open Source. Specifically, we started writing all of our apps on github (as opposed to our SVN). We wanted to do this because we wanted to invite scrutiny. We never expected people to look at our stuff, we just felt that by putting it out in the open, we’d want to do better internally.

We went whole-hog. Organized stories with issues, organized sprints with milestones. It was pretty hot stuff. And it was all in the open. Potentially, someone could come by, see what we’re doing and offer to take a story from the backlog of issues. That’s open source. ish. We have a lot more we can do. A lot of growth to do.

Then we started using Jira. The board system within Jira Agile was excellent. Allowed for better organization, reporting!, and visual representations of work. It’s great. It’s Agile. But it also replaced what we were doing with Github issues.

We essentially replaced Open Source in favor of Agile. Our organization is great, we’re keeping track of things fantastically, but we’re no longer open. We don’t have transparency on what we’re working on anymore. People can’t potentially help. Our code is out there, but we’re not inviting. Our process is no longer out there.

So what’s our solution? We don’t have one yet. But what /can/ we do?

We need to put our vision statement out there. We need to put our plans out there. We need to expose what it is we’re doing. We also need to stay agile, keep our tools intact, keep our reporting.

This means we probably need to be duplicating efforts. Open Source and Agile are both hard work and organization. That they can’t line up and be the same effort is not a blocker, just an “oh well”.

Enterprise

enterprise_1920x1200It’s goal setting season and everyone is reviewing the organization’s FY15 goals. Understanding the organizational goals is important because we all want to be sure to be in line with the direction of the organization.

#4 on the top 10 is “Establish an enterprise IT architecture”. This is a phrase that I’ve never fully understood. So I’ve been asking people to define “enterprise”, I get all sorts of answers. “big” “important” “java / oracle / peoplesoft” “something that ‘can’t’ fail” “finance” “HR” “business”. (Important was my favorite.)

People use this word constantly. There’s even groups in my organization that are called the “enterprise groups”. I was told recently that there’s “less dysfunction in the enterprise groups”. To which I had to ask “which groups are those?” (Answer: They’re the ones that have significant business value.) But the fact that I can’t find someone to give me a coherent definition is a warning sign that it has become a meaningless buzz word.

But business is the right answer. Enterprise seems to be anything that encompases the entire organization (or a significant portion of it) or something that has significant business value.

Anyway, that’s neither here nor there. What I think someone was trying to say with “enterprise IT architecture” is a standardization of technology across the organization — often a pipe dream. And I think this goal tends to draw extra attention to the groups that are already considered the “enterprise” groups.

But I’m begging a deeper question here. Shouldn’t everyone be considered enterprise? If enterprise is just a fancy word for business. If you’re not providing significant business value to your organization, then maybe you need to rethink what it is you’re doing. If you’re not considered enterprise, then someone doesn’t think you’re providing business value, effecting enough people or having enough impact.

So when “establishing an enterprise IT architecture”, I’m taking that to mean communicate with other groups, figure out what they’re doing and share what you’re doing. Meeting that goal is potentially impossible with a large silo’d organization. But working toward that goal is ambitious and requires a lot of time. Working towards that goal is just implementing good collaborative practices. Simple but not easy.

The Code Kata

The idea of code kata is not a new one. This has been floating around for a while, but I didn’t make the connection of its importance until recently.

The idea is this: doing your work is not the same as practicing what you do. The analogy I like the most is the chess analogy. A grand master cannot be a grand master by simply playing in tournaments. In fact, just playing in tournaments would make a pretty poor player. Studying tactics, reading, discussing (with other human beings that have their own unique perspectives) outside of the game allows personal growth and an understanding of the game that is unattainable by simply playing it.

word_document_74755743_original_96681a2843Maybe that analogy speaks to me because I understand games and being great at them vs just playing them.

I spent some time misunderstanding what a code kata needed to be. For the longest time I had understood it to be technical growth via solving algorithms or learning new technologies. These could be katas, but what makes katas doable is 2 things.

  • Simple.
  • Interesting.

Keeping them simple allows you to be able to make time for them. Google the FizzBuzz test. Even something that simple can keep your mind thinking like a developer.

Keeping them interesting allows for you to care about them. And caring about them will ensure they actually get done. If you’re not interested in learning node but you set yourself up to learn it as your kata. One, that’s a big task, but more importantly, if you’re not interested, you’re setting yourself up to fail. This is a great way to find what it is you’re interested in and focus more.

Myself, I seem to currently be interested in best practices and the social aspects of software engineering. So I’ve decided to increase the blog posts I do. From the beginning of these, I’ve been focused on doing at least one a month. And that’s been a way for me to think through some of things I’ve worked on in the last few years. By writing them out, it’s been a rear way for me to cement the things I’ve been doing in my head and analyze them a little more carefully. This, I believe, will help me be better at my job.

Yes, I blog for me, not for any kind of readership. That’s helpful since no one reads these 🙂

Posted in Uncategorized. 1 Comment »

Big on Big Data

Of major interest in Educational Technology is Big Data, which is a rather all-encompassing term for the vast mountains of information that our computers are collecting and how we humans might take advantage of it. The 2014 NMC Horizon Report for Higher Education highlighted this interest, noting that the “Rise of Data-Driven Learning and Assessment” and “Learning Analytics”, both of which revolve around the anlysis of Big Data, are technological trends that may have profound impact on education as we know it. A primary goal of several MOOCs, including edX, HarvardX, and MITx, is to research the data they collect from thousands of world-wide participants. And here, at Harvard, a main objective of the new Teaching and Learning Technologies program is to research all the data our new Learning Management System and associated tools will provide. Finally, our own little group, the Academic Techngology Development team, is starting to research how we can best analyze the data our tools collect.

Who r u?The main drive behind this interest in Big Data–at least, in Educational Technology–is the belief that through analyzing all of this information, we can create a better teaching and learning experience for instructors and students. The idea goes something like this: Alice, a student at Wonderland University, takes a course on existentialism from the Caterpillar. As Alice completes her assessments, the results are stored online, and through careful analysis of these results, the Caterpillar is able to deduce which concepts Alice is having difficulty understanding, and in which conecpts she is excelling. The Caterpillar can then tailor Alice’s future work to her needs, thus creating a better learning experience for her.

That’s the simplified version of the tale; many other permutations exist. For example, the Caterpillar may recognize that another student, Tweedledee, excels in one area that his brother, Tweedledum, does not, and decides to pair the two up so that Tweedledee can help his sibling. Or, perhaps, the Caterpillar discovers that his students grasp the concepts of mushrooms better when he discusses the concepts of fungi first, and adjusts his future syllabi accordingly.

Regardless of the scenarios, the promises of Big Data rely on the firm belief that something meaningful exists somewhere in all of that information, and that if we extract that meaningful something, then we can do something meaningful with it. Sound a bit ethereal? It’s not, as commercial companies such as Amazon, Netflix, and Google have uncannily demonstrated with their search and recommendation enginees. And in regards to applying Big Data to education, there’s a large field of research going on, not to mention a growing field of application and practice.