A MYTEK Whitepaper Successful Strategies for Custom Software Development ADDRESS 2225 W. Whispering Wind Drive #100 Phoenix, AZ 85085 CUSTOMER SERVICE Tel. 1.877.236.8583 FIND US HERE: www.mytek.net
Custom Software Development can be akin to building a luxury home for a very particular client. The needs and the client are very specific as are the guests that will use the home. In addition, it must sit within a very particular landscape [market]. As always, the overall design and functionality of the home (software) is very important. But equally important is the design and functionality of each individual room (software components). In fact, clients often have a very particular order of importance when it comes to each room. So what if they could work with you to design and build each room completely, and live in it before moving on to building the next? That s a metaphor-laden interpretation of the MYTEK Agile methodology for SDLC. Let s stick with the metaphor and start from the beginning of the process to outline what a successful strategy for custom software development looks like. 2
Planning the Dream The Client-Developer Relationship One of the most important facets of building is to have a set of plans. These plans are always best laid with discovery or drawing the plan. How would you know the placement, type or size of the rooms without paying an architect to come up with a preliminary design? Just like the architect/ client relationship, the client and application developer relationship must be one of full cooperation, complete transparency, and strong communication in order to develop a successful application. MYTEK always performs discovery efforts with all aspects of the client s business in mind in order to facilitate software development that increases business efficiencies. All of our discovery efforts are focused on a deliverable that allows the client to have the confidence that MYTEK knows and understands the project before committing to a development effort. All software development efforts use some type of methodology, be it Waterfall, Agile or the like. In addition, every company will use a certain amount of these methodologies at different times in order to best serve each individual client. By building a partnership relationship, MYTEK becomes a crucial ally in achieving all of your technology needs. To that end, the strong collaboration in the MYTEK Agile methodology encourages the client and developers to work in unison, which ensures that each client has a greater feeling of engagement and trust. Ultimately that partnership is all about making the user end user the center of attention in SDLC. 3 2015 Copyright MYTEK Network Solutions
Making the User the Center of Attention Any successful design relationship starts with a complete understanding of the needs of the client. In the case of enterprise software development, it s about having a complete understanding of how they hope to use the application as approached from the standpoint of what the end user wants and needs. In order to do this, we make the user the center of attention in order to elicit these needs and wants. It s common for the client to have a list of obvious pain points that they wish to eliminate through the new software. Just as in architecture, creating a truly unique structure that suits the needs of all of the users requires broad input from all end users. Consequently, it is only through careful discussions with the actual proposed end users as well as observation of existing manual processes that the true course of the SDLC can be plotted. Within our discovery effort, MYTEK interviews and meets with individuals and departments as well as leadership to discover the pain points for the business. This also includes thorough evaluation of the solutions at hand using manual efforts, and then ultimately, the automation of any and all processes wherever possible. 4 2015 Copyright MYTEK Network Solutions
In-depth Design Discussions: Processes and Pain Points It s imperative to first verbally walk through each manual process with end users to create a process outline. This discussion is primarily a listening and observation process from our perspective. However, our consultants always bring their active listening skills and expertise so that they can ask questions to elicit further detail when they spot a potential pain point in the explanation. This is key as the user may not see the reality of an existing pain point due to having grown accustomed to the current process. 5
In the design of a client s dream home in architecture, the client is encouraged to provide examples of built environments that have the specific attributes that they desire in their own customized home. The same can be true in software development, but our consultants will often be the one to provide examples of existing software solutions based on the initial interview processes. Although the given proxy solutions are inadequate for the specific needs of the client, they do provide a way to zero in on functionality aspects that closely approximate the needs of the client. This allows a reverse engineering of sorts whereby we can clearly define what works and what doesn t as well as what is necessary and what is missing. The goal in all of this is developing a detailed picture of the proposed software functionality and end-user experience. While not a necessarily applicable technique with all software development projects, it can provide a general framework that defines the structure of the list of requirements so as not to have to begin from scratch. In addition, it holds the potential for identifying features and requirements that had not been considered by users, but would be highly beneficial in making the software more effective. 6
The Requirements List These can all then be added to documentation as a part of the requirements list. When created as part of requirements documentation, they also become a way to keep clients aligned with their stated needs, make adjustments, and keep the project on track. It can also be helpful to have the end users rate the requirements in order of importance. This is about understanding who wants what and why they want it as part of that requirements framework. A comprehensive requirements profile can also be the basis for gap analysis between current state and future states of processes. This forms the basis for listing all of the possible solutions that can be implemented to fill those gaps. At MYTEK, our vast experience in SDLC has taught us invaluable lessons about how to eliminate and avoid process gaps from one function to the next. Architects must have a dual focus on specific design functionality and how each individual room flows one into the other as well as the overall functionality and design aesthetics of the whole structure. To do this, they will, in essence, design one room at a time. The MYTEK Agile process has distinct similarities as we have developed processes to build one function or aspect of the software at a time to ensure flexibility in pursuit of client need compatibility. By building one increment of the software at a time we can partner with the client in the goal of engineering every aspect of the software to its most effective state. At MYTEK, our vast experience in SDLC has taught us invaluable lessons about how to eliminate and avoid process gaps from one function to the next. 7 2015 Copyright MYTEK Network Solutions
Building One Room at a Time: The Agile (Scrum) and Sprint Process In Agile, which is a widely accepted methodology towards developing any kind of software or process enhancement, the focus of the effort is always flexible. It is designed through discovery and then broken down into Sprints that contain Scrum meetings that take smaller bites from any overall picture in order to enhance the speed and focus to the client and developer. This allows us to achieve a clear picture in segments that usually are designed to be in two week increments. Agile and Scrums emphasize collaboration, functioning software, team self-management, and the flexibility to adapt to emerging business realities. Daily and weekly meetings are focused on smaller development processes that allow for more frequent and more focused communication. With Sprints, all of the phases are mixed into every goal. Instead of dividing the work into activity-specific phases, we divide it into fixed length iterations. Every Sprint contains some combination of analysis, storyboarding, design, coding, testing, and actual implementation. Daily and weekly meetings are focused on smaller development processes that allow for more frequent and more focused communication. 8 2015 Copyright MYTEK Network Solutions
Framing the Structure of Sprints The Sprint process enables the client to review and sign off on a working component that the user can see and touch in a short time period. Each Sprint allows the client to see what is right, what needs changing and what needs to be added or subtracted. The process also enables us to collaborate on defining the next Sprint. These short iterations with feedback ensure that the Sprint and the final product will be of the highest quality. One of the first aspects of the sprint process is the creation of user stories. These are usually one sentence definitions of a feature or functionality. Since they are defined by the end user, they are usually written by the end users based on their different functionalities within the enterprise and their specific use of the software. Every Sprint begins with the Sprint planning meeting where Product Stakeholder(s) and the MYTEK team discuss which Stories will be moved from the Product Backlog into the Sprint backlog. It is the responsibility of the Product Stakeholder(s) to determine what work the team will do, while the team retains the autonomy to decide how the work gets done. 9 2015 Copyright MYTEK Network Solutions
Building Schedules and Inspections Just as every project has a different schedule for completion; it also progresses at different speeds depending on a broad set of criteria. While the MYTEK Agile process is meant to provide a consistent building schedule, it is important to measure the speed of development, or consistent velocity in sprint terminology, via internal documentation. Measuring speed of development can be accomplished using a burn down chart, which tracks the product development effort remaining in a Sprint versus time. Of course, this is determined to a great degree by the complexity of the Sprint. Since every Sprint is tested as part of a continuous design approach, the client has a tangible, empirically based view of progress. Because a release may require multiple Sprints, each iteration builds on the previous with continuous communication with the client. Just as each Sprint begins with a Sprint Panning Meeting; it ends with a Sprint Review meeting. The latter is the point where the project team presents its work to the Product Stakeholder. As part of a continuous improvement process, Our MYTEK Agile team does a post-sprint assessment to identify ways to improve future sprints. When you engage MYTEK as an SDLC partner with your enterprise, we always focus on the unique needs of each project and your specific business and its needs in order to create a customized process and solution. The goal is always to produce the most highly functional and effective software that works intuitively to decrease time expenditures while increasing productivity and ultimately, profits. We strive in every way possible to be your custom software design consultant of choice for every project today and tomorrow. 1 0 2015 Copyright MYTEK Network Solutions
Your Custom Builder of Choice: Why MYTEK Agile The MYTEK Agile methodology is based on years of development and refinement of the process, tools, and skill sets utilized over many successful SDLC projects. From development practices such as continuous integration (CI), continuous deployment (CD), and instrumented solutions to robust testing environments, we can measure the actual benefits of change to your software-based solutions. The use of short feedback cycles, a series of smaller steps instead of one large one, and the ability to automate some potentially complex processes allows us to deliver the best product that fits your needs both today and tomorrow. 11 2015 Copyright MYTEK Network Solutions
How MYTEK Benefits Your Enterprise In-house software development brings often insurmountable challenges to individual organizations. By providing you with an experienced and skilled team that can partner with your organization, we bring consistency of performance and environment. That means rock solid continuity from Sprint to Sprint and project to project in order to deliver the best results. Working with MYTEK from project to project means that we become a learning team partner that can simplify each new development effort so that it is streamlined to your business culture and market. Simultaneously this ensures that each project brings unique benefits and innovations to you and the users for a stronger bottom line. Visit us at Mytek.net to learn more about us and how we can benefit your business. Then, call a MYTEK Consultant today at 1-877-236-8583 to get started on building a software development partnership that makes your company more competitive in the global business marketplace. 2015 Copyright MYTEK Network Solutions