The Kanban Methodology Development Model is a relatively new project management process that is catching the attention of many companies around the world.
The word Kanban comes from a Japanese term meaning ‘visual signal’. The Kanban Development Model was developed by Toyota in the 1940s as a way to tell workers what parts were needed for their next vehicle, but it has since evolved into much more than just a production system. It’s now being looked at by businesses everywhere as an effective development model for software and technology companies. For this reason, Google uses it to develop products like Gmail and Facebook uses it to improve their newsfeed.
Although its use has mainly been attributed to manufacturing companies, IT services are now making use of the Kanban method because of its proven effectiveness with agile software development and its track record for allowing small teams to be much more productive.
So, what’s the reason behind Kanban’s popularity? The answer is simple: it solves all of those issues that traditional software development methodologies bring up such as schedule delays, accumulation of technical debt, and missed deadlines. It also makes sure that programmers will work on only one task at a time to avoid wasting time and money by having them switch between tasks constantly. As we can see, Kanban has everything we need to solve these problems. If this sounds too good to be true – well, it isn’t! However, there are still some misconceptions regarding its implementation and use so let’s take a closer look at how Kanban works and if it’s really the silver bullet we’re looking for.
Kanban does not determine what your software should do; it only helps you implement and prioritize features that were already decided upon (for example: in a meeting or by a product manager). You can use Kanban to manage any process, no matter how complex it is, as long as there’s something you want to produce. If you want to make changes – feel free to do so as long as they help with getting the job done!
There are four “roles” in Kanban: Product Owner, Team Lead/Scrum Master, Dev Team and Stakeholders. Every role has its own responsibilities and tasks which we’ll go over briefly:
Product Owner – coordinates what the team will be working on; makes sure that there’s enough work for the team and that what they’re doing is needed within the company.
Scrum Master – supports the Product Owner with prioritizing tasks, schedules and time estimations; helps resolve potential conflicts between stakeholders.
Team Lead/Dev Team – handles current live projects while also having some additional stock of new features and bugs to work on in case anything comes up. Although everyone on a Dev Team should be coding, only some of them need to have access to servers and databases, they can run tests themselves etc.; this way you don’t end up with too many people trying to do what one person could do instead. It also allows developers different levels of experience or knowledge to be more equally leveled.
Leader – decides what new features the company needs and organizes a timeline for these developments to happen, along with any additional tasks that need doing to keep things running smoothly. May also have management duties such as overseeing budgets, approving timesheets etc.
The upshot of this structure is that even if everyone on a team is motivated and talented if they don’t fit together well like puzzle pieces they most likely won’t function as an effective unit (like the blind mice in Cinderella). There’s nothing wrong with having developers who are highly skilled but not collaborative; most companies will want you to demonstrate your ability to work effectively within a team before hiring you anyway. However, most” definitely does not mean all, so don’t assume you won’t have to contribute outside your skillset.
“I’m a rockstar coder, do they really expect me to provide the IT support too?” If you are filling both roles then either one or both of those titles should be changed. The best-case scenario is that someone else on the team has the other skill set and can cover for your weaknesses – “oh, Bob can help with that” – allowing you to focus on what you’re good at within the context of a team, and giving Bob direction about his role in helping that along.
Don’t let this happen! There’s nothing wrong with having employees who specialize in certain areas, but just because Matt kick-ass code doesn’t mean he should be the only one to look after your servers.
For example, our current company structure has me overseeing infrastructure and development with input into business decisions. We then have two very talented developers who specialize in front-end work (HTML/CSS/JS) and backend work (PHP). Finally, we have a strong Operations specialist who keeps everything running smoothly on the hardware side of things. That way when I ask Matt to deploy his latest PHP project on production servers at 11 pm on Friday evening I know that it’ll actually happen!