Dev9 constantly investigates new ways to deliver technology solutions better, faster. We experiment with new tools. We incorporate the ones that work into our streamlined development processes. Simply put, this is the fun part of our job. How can you simplify your environment? Which tools should you use? Ask us.
We don’t define best practices - we demonstrate them, and we can help you drive these results into production. This is our passion.
We iteratively update and help to evolve to the latest industry trends while keeping a pragmatic eye on results (see the organizations that we support, below).
Learn more about our preferred Project Management process: Kanban
By sharing this contemporary view of software development techniques with our customers, we are able to support them in their adoption or transition to modern market requirements - from mobile and social marketing to internationalization and global real time information delivery.
Lean & Agile
The dictionary definition of agile is:
- quick and well-coordinated in movement; lithe.
- active; lively.
- marked by an ability to think quickly; mentally acute or aware.
When we talk about Lean and Agile, we refer to a specific set of industry best practices, not just the dictionary definition (although we like that too)! These practices include an emphasis on communication & collaboration, as well as continuous integration.
Kanban and Continuous Delivery
Dev9 recommends this lean, iterative approach to development activities. By doing just-in-time planning, specification, design, and development, the team[s] can offer more predictability and flexibility to business sponsors.
The Product Owner (“PO”) prioritizes requirements in a backlog of work. The PO is free to change the priority of the backlog at any time. Team members always take the top-priority task from the backlog when they are looking for new work. This keeps the team focused on the most important requirements and allows for change, as business needs change.
Dev9 recommends Kanban for ongoing development project work. This system is based on a combination of Lean and Just-in-Time best practices.
Dev9 process encourages teams to be self-organizing and empowered to do what is necessary to deliver valuable business software.
Product Backlog & Product Owner
The starting point of a Dev9 project is to create the product backlog. This is a prioritized and estimated queue of evolving business and technical requirements. Anyone can contribute to the product backlog at anytime during the project lifecycle. The Product Owner (in partnership with the Team Lead) prioritizes backlog items.
The PO owns the product backlog. The PO is responsible for driving out business value from a Dev9 project. Through this role, the business formally accepts responsibility for success of the project. The Product Owner is the key point of contact for the team.
Work is estimated and tracked via Kanban boards.
Often, we split work into two boards – a design & estimation board, and an implementation board. This has several advantages:
- Eliminates overly long grooming meetings
- Allows the business to make informed decisions about implementation based on more through estimation and investigation
- Allows tracking consistent external and cross-functional dependencies via cycle (wait) time
- For example, if all work requires an IT operations team, the wait time can be tracked in a much more consistent fashion than a simple “blocked” state
- Work-in-progress limits puts management’s focus on flow optimization; in essence, the board drives Lean analysis and optimization.
- Kanban focuses on completing stories instead of keeping everybody 100% busy. While it seems counterintuitive, this often results in a higher throughput. In Scrum, randomization and half-finished stories often lead to bad story dependencies and rushes at the end of sprints. Kanban focuses on driving features to completion.
The Kanban process includes the following key ongoing meetings:
- Daily stand up (every day, limited to 15 minutes)
- Did yesterday, doing today, impediments
- Not a status update meeting
- Backlog Grooming meeting (as needed, at least every 2 weeks)
- Ingest work
- Decide on priorities
- Level-of-effort estimations
- Kaizen meeting (every iteration)
- Kaizen literally means “good change”
- Lead time, Cycle time review
- What went well, what could be better?
The customer representative participating should be the appropriate project sponsor, an individual familiar with and invested in the project goals, resolving customer-internal roadblocks and capable of making ad hoc prioritization decisions.
Tracking velocity and progress
Kanban offers several metrics that can (and should) be tracked:
- Lead Time: This is the time it takes a work item from being put into the backlog, until it is delivered. This is the speed the customer sees. This can also be called the Resolution Time.
- Cycle Time: This is the time it takes a work item from when work starts until delivery. This metric is tracked per stage, so you can clearly identify stages that are impeding flow.
- Reaction Time: This is the duration from when a work item was submitted to when work begins. This is sometimes rolled into an SLA.
A Bit More Detail
If you are really into process and tools: we use Kanban for process, and Hudson/Jenkins and TeamCity for tooling depending on the environment/target platform. On the Java side, we tend to use Maven for our project builds and Ant to help automate deployments. We use JUnit/NUnit for builds and Selenium for web tests.
That's just the foundations - we are constantly evaluating new tools and systems all the time - for example, Project Sikuli for mobile device (emulator) testing. Solving problems with new tools is a typical subject for a consulting engagement.