Clearly there are major differences between managing the release cycles of a popular, open source operating system like Ubuntu and managing the development of corporate software and enterprise applications. Yet at the same time, there is no doubt that there are lessons that each camp could learn from the other, which is exactly why TheServerSide asked Jono Bacon, the Ubuntu Community Manager, what lessons enterprise developers could learn from Ubuntu’s software development experience.
Learning from the community process
“There are a lot of lessons that can be learned from community management and leadership,” says Jono. “It’s basically engineering management, so that means being organized, having a strategic plan, executing the plan and having visibility throughout the community.”
And what does engineering management mean when it comes to Ubuntu? “The way in which we build Ubuntu is that we identify what we want to do, we write everything down and we assign work items. And then we execute on that work in a predictable manner until we get to our deadlines and we hit them.”
Of course, having a process and being able to execute is the foundation of every methodology. But above process and method, Jono emphasizes trust and transparency, warning that sometimes transparency isn’t prioritized as highly as it should be in the corporate environment. “The same things essentially maps to companies as well. You want to make sure your senior management understands what’s going on. And you want to make sure that your engineers are very clear, at the detail level, about what they need to do as well.”
Transparency as the key
And of course, trust and transparency is a two way street. Not only do engineers need to be able to communicate effectively with management, but management has to take a concerted interest in the progression of the project. “The biggest hindrance to great developers are poor managers,” says Jono.“And the most important function of a great manager is helping their team to be successful. It’s about building a sense of team spirit and helping members of the team to not only achieve goals but also to achieve success within the wider organization.”
When the discussion gets boiled down to its essential ingredients, Jono is attributing the success of Ubuntu’s community managed software to a strong and predictable process, dedicated people and tools that allow all of those involved to communicate transparently and effectively. And when we talk about people, process and tools, what we’re really talking about is application lifecycle management. While the structure of the community managed Ubuntu process may differ significantly from the structures found in corporate environments, one thing that remains the same is the fact that effectively planned, end to end application lifecycle management is the key to successfully modern software development.