What Exactly Is “Agile Development?”
Kipu has been built in what’s known as an “agile environment.” Agile development (with agile project management) is a method of software development that focuses on quick rollouts from an efficient and flexible team. These rollouts, known as “sprints,” include new features and enhancements based on a continuous flow of feedback from our clients to constantly release a steady flow of quality improvements. In an agile environment, changes in the marketplace are embraced–and modifications made–at any stage of the process to provide our Kipu clients with a competitive advantage. In short, it allows teams to cut through unnecessary work and focus only on essential work.
One thing that separates Agile from other approaches to software development is the focus on the people doing the work–along with the people who will actually use the software–and how they work together. Solutions evolve through collaboration between self-organizing cross-functional teams comprised of Kipu engineers working alongside our clients.
The 4 core values of agile development as stated by the Agile Manifesto:
- Individuals and interactions are valued over processes and tools;
- Producing working software valued over producing comprehensive documentation;
- Employing customer collaboration over contract negotiation; and
- Responding to change rather than following a plan.
What’s Not Agile?
Not long ago, not far away, like when all our real competitors started (those older, legacy EMRs); programmers wrote code. Then, when the program was ready, customers were trained to use the software as the programmers intended, NOT as the customer works. This causes long training and implementation time because their software isn’t intuitive – NOT easy to use, by far. The way you work doesn’t matter – you’ll learn to work the way their software works, and that’s frustrating and time-consuming. It’s what you can expect with our competitors. It’s the result of old software that was never intended to be in the cloud. And their implementations are just as backward.
They come in for 10-24 months and create or implement a system that fits their software. Then they drag your staff in, kicking and screaming, and force the new system down your staff’s throat. You’ve got six figures invested, so the most you can do is insist, “It’s for your own good, learn to use this thing, and we’ll all be better off.” New staff has to go through the same time consuming and confusing learning curve, and no-one lists that old EMR on their resume – forget hiring trained staff.
More often than you think, people give up and call Kipu.
Sometimes they’re 20 months and six figures into implementation, and other times, after the system is in and they discover how backward the other system is.* All this reminds us of those systems the airlines use – every time we’re in line at the airport talking to reservation agents. It’s crazy, right?
Oh, and programs that were written before “The Cloud” intended to be put on local servers, so they need a VPN or Citrix Server if you want to access them remotely. That’s a whole other problem. And forget access from a phone or tablet with those old clunkers.
Kipu’s Agile Advantage.
As we said, we’re Kipu, and we’re different. Kipu was built over a two year period in the cloud. Inside a CARF accredited detox facility, then in two different Joint Commission Accredited Residential Treatment facilities with PHP, IOP and OP as well. We worked directly with and for the actual users. That’s what Agile Development means. It seems straight forward enough, but it’s a new and different way of thinking. Agile development produces easy to use, intuitive software with no trade-off in power, speed, or depth. And we built Kipu IN The Cloud in a modern programming language called Ruby on Rails, which is what Twitter was written in. That means we’re not only Fast, Powerful, and Easy to access in our Private Cloud without a VPN or Citrix server, but also that modern programming languages are easy to revise and update.
As Kipu was being built, users came in and sat with our developers – right there at the detox/treatment facilities, every few days. We built it side by side with users, so when it was finished, it was easy to use, fast and intuitive. In fact, many users can sit down and use KipuEMR without training, and it’s the most listed EMR for addiction treatment you’ll find on people’s resumes.
After a year in detox (and that’s the longest anyone’s ever been in detox, LOL). We went to CARE Florida, a well-known residential treatment facility, to build out many features for treatment. Our challenge there was that many staff and therapists were in their 60’s and 70’s and not so keen on going from paper to computers. The obvious goal was to build, again, in an agile environment, a system that older, wiser therapists would be delighted to use. We’re happy to report that we succeeded. Several even put off retirement because of the rejuvenated feeling and fun they got using KipuEMR.
To this day, Kipu’s developers constantly visit clients to learn how they work. Then, and only then, they will begin coding to develop updates and features. So, “agile” kind of means, “We built it with you, and we work your way; you don’t have to adapt and work our way.”
Product-specific benefits of agile development include:
- More rapid deployment of solutions
- Reduced waste through minimization of resources
- Increased flexibility and adaptability to change
- Increased success through more focused efforts
- Faster turnaround times
- Faster detection of issues and defects
- Optimized development processes
- A lighter weight framework
- Optimal project control
- Increased focus on specific customer needs
- Increased frequency of collaboration and feedback
Faster, smaller: Traditional software development relied on first outlining the requirements, planning, design, building, testing, and delivery. Agile methodology, by contrast, looks to deploy the first increment in a couple of weeks and the entire piece of software in a couple of months.
Communication: Agile teams within the business work together daily at every stage of the project through face-to-face meetings. This collaboration and communication ensure the process stays on track even as conditions change.
Feedback: Rather than waiting until the delivery phase to gauge success, teams leveraging Agile methodology track the success and speed of the development process regularly. Velocity is measured after the delivery of each increment.
Trust: Agile teams and employees are self-organizing. Rather than following a manifesto of rules from management intended to produce the desired result, they understand the goals and create their own path to reach them.
Adjust: Participants tune and adjust the process continually, following the KIS or Keep It Simple principle.
Kipu’s TEN principles of Agile Development
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
From the beginning, Kipu has been Agile–working according to a set of principles and values that encourage breaking large portions of a project into smaller functional portions that can be developed quickly. This entails working in sprints, gathering customer feedback, adjusting course, if necessary, then giving the team ample opportunity to steer the software in a satisfactory direction for the customer.
We welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Being Nimble: Where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The big advantage: you can implement changes now — you don’t need to wait for the next system to be built or a system redesign. Agile processes harness change for the customer’s competitive advantage by shortening the distance between conceiving and implementing an important change, even if it’s late in the development process.
Deliver working software frequently, with constant updates, many by client request.
We concentrate our focus on customer satisfaction, through rapid adaptability, to deliver a working software product that answers our customers’ needs quickly. Agile project management focuses on shortening the distance between planning and delivery. So, the agile methodology focuses more on creating software rather than just planning for it. This gives you the opportunity to improve the efficiency and effectiveness of the work.
We believe that business people and developers must work together daily throughout the project.
Our developers are business people with a keen understanding of the addiction treatment industry. Teaming up with our clients offers us an amazing opportunity to build better, more helpful products.
Build software around motivated individuals. Give them the environment, support their needs, and trust them to get the job done.
That’s job one. Create an environment that encourages partnership with our clients, give them the freedom to succeed, and great things happen. Our implementations are normally completed within 30-60 days. And training requires just days, not weeks or months. That’s the power of motivated teams.
We believe that the most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Within our teams, there’s a lot of discussion regarding implementation, and we spend a lot of time with each client during onboarding and beyond. You want to shorten the time between a question and its answer. This is another reason why co-location or remote work during the same hours is key in agile project management. When teams work together under the same (virtual) roof, it’s much easier to ask questions, make suggestions, and communicate.
We believe that flawlessly functioning software that is efficient, powerful, and easy to use is the primary measure of progress.
We set the bar very, very high. That’s why Kipu has become the Gold Standard for addiction treatment. The ultimate EMR because we followed one guiding rule as we built Kipu: it must be easy to use. So while there’s enormous power under the hood, the KipuEMR has become legendary for it’s easy to use interface. We know how you work, so we built a system that understands how to save you time, effort, and expense. At the end of the day, here’s the primary metric that an agile development team should be judged by: Is the software working correctly? A good team needs to produce quality software — all other measures are pretty much irrelevant if you can’t get it working correctly.
We know that continuous attention to technical excellence and good design enhances agility.
It’s all about the details. All the hundreds of time-saving shortcuts that are built into the KipuEMR save hours and hours of time. But we’re never done. We’re continually upgrading our system, refining our processes, listening to customers and implementing smart ideas, and making the best even better.
We work for simplicity; the art of maximizing the amount of work NOT done–is essential.
Keep things simple and minimize the time between comprehension and completion. Kipu believes that continuous attention to technical excellence and good design enhances agility.
The best architectures, requirements, and designs emerge from self-organizing teams.
That’s agile development in a nutshell. We let teams form themselves, establish workflows, and get the job done. Talented developers will work with each client to tailor their Kipu instance to their exact needs.
Agile Development Vs. Traditional “Waterfall” Development
The traditional Waterfall development method consists of phases, adhering to the original requirements and plan developed at the beginning of the project. A project manager spends time negotiating milestones, features, resources, working at length in the planning stages of a project, usually developing a full-blown project plan that details how the work will be moved through many steps to completion.
Clients sign-off on requirements before development begins–then a lengthy development process occurs, with the project manager tracking every movement of the project through each handoff and finally on to delivery. Waterfall development is not responsive to change, and it takes a long time to deliver working software. A six month (or longer) release cycle, with requirements chiseled in stone, does not meet the business need.
The history behind Agile software development is one of frustration with the traditional waterfall methodology. Agile is designed to accommodate change and the need for faster software development. The project leader typically facilitates the work of the development team, eliminates bottlenecks, and helps the team stay focused in order to deliver software iterations on a regular basis. It is less about milestones than it is about hours, feature selection, prioritization, and meetings.
Unlike the Waterfall model, the development team ultimately decides at the beginning of a sprint (or iteration) what can be accomplished in the timeframe and sets out to build a series of features, delivering working software that can be installed in a production environment at the end of the sprint. Since Agile software development methods (such as Dynamic Systems Development Method- DSDM) are flexible, most are suitable for method tailoring – where development teams can adapt the flow to meet the needs of the product.
*If you’re one of those, call us. We have a cash for clunkers trade-in program that has paid out millions in trade in money.
Agile Development: A Short History
In the late 1990s, several methodologies began to gain increasing public attention, each having a different combination of old and new ideas.
These methodologies emphasized close collaboration between the development team and business stakeholders, frequent delivery of business value, tight, self-organizing teams, and smart ways to craft, confirm, and deliver code. The term “Agile” was applied to this collection of methodologies in early 2001 when 17 software development practitioners gathered in Snowbird, Utah, to discuss their shared ideas and various approaches to software development.
This joint collection of values and principles was expressed in the Manifesto for Agile Software Development and the corresponding principles. Agile Alliance was formed shortly after this gathering to encourage practitioners to further explore and share ideas and experiences. Agile Alliance continues to curate resources to help you adopt Agile practices and improve your ability to develop software with agility.
Who Employs Agile Development?
Agile development is utilized by companies such as Apple, Philips Lighting, and more.
One of the key users of the Agile development system is Apple. Apple’s agile strategy is for all of the big teams to be divided into smaller ones. The optimum number of team members, according to Scrum, is 2 – 12 people. For example, only two engineers wrote the code for the Safari browser conversion for the iPad.
Another secret of success is: responsibility. This is not just a word; all of the points are written according to the DRI concept (Directly Responsible Individual). This way, everything from the difficult cross-functional engineering tasks to the property rights questions are clear to everybody.
Every company has its own rhythm. Apple product development consists of projecting, creating, and testing. The product manager brings the beta version of a product from China to Cupertino for testing. And if something goes wrong, the whole process repeats all over again.
Agile development also means you can say “No” to bureaucracy. For instance, there is no middle ranking in Apple.
Another company that is worth mentioning is Philips. It started using Agile after various changes in firm management. The Agile Center of Excellence’s director Edgar van Zoelen says that this method helped them to move beyond the bureaucracy. The company has several different Agile coaches who use Scrum boards. For example, Philips Lighting says that the best results were achieved after dividing the teams into smaller ones, which is also a framework feature. As a result, it was easier for the smaller groups to take responsibility for the product.
JP Morgan Chase
A few years ago, the banking giant overhauled its business processes to help improve product development and simultaneously slashed the cost of training as part of a high-profile IT initiative. Agile methodologies were a key part of the initiative.
The initiative involved the extensive redevelopment of key platforms, and in some instances, multiple legacy systems.
Mike Cavanagh, one of the division heads at JP Morgan Chase, said, “Technology was enabling the bank to ‘optimize the location strategy’ of staff, with an increase of the percentage working in low-cost sites from 26 to 40 percent. The use of Agile development methodology was also enabling faster application deployment and better functionality.”
James Young, managing director and CIO of the Digital Group, also commented on some of the benefits that Agile development has brought:
“We’ve got multidiscipline teams that sit together; product design, technology quality assessment, all work together in relatively small teams focused around product features, and work on the requirements that result in a daily build.”
Furthermore, he stated, “Every day we can demonstrate an improvement to the site. And every three weeks we’ve got a ship of a product. This translates into great predictability in terms of what we build.”
JP Morgan Chase has really adopted Agile, and being able to ship the product every three weeks is a massive productivity boost. All of this is made possible by faster, more nimble, and responsive teams that Agile frameworks promote.
Is Your EMR Agile?
Agile development has become commonplace in IT industry.
- In a recent survey, over 52% of respondents said that their company practiced Agile development in one form or another.
- Regardless of your role in the organization, it’s essential to understand how Agile development works.
- It’s also critical to know how it differs from other forms of software development.
Agile Testing Method
The objective of Agile testing is to find defects and fix them immediately, unlike the traditional model where testing occurs at the end.
- In Agile testing, the testing team and development team are one. They are both simply called Team Members, whereas in a traditional model they are two different teams
- In Agile Testing, development and testing are performed as part of a sequence of activities, unlike traditional development and testing are two separate phases.
- Agile testing reduces costs since the defects are identified and fixed earlier.
Contact Kipu at 561.349.5901 to learn more.