Agile development processes help us to deliver the right software products, on time, the first time.
The challenge of building software that fulfills the vision of its founders is nothing new. Back in the 1980s, they called it the “Software Crisis”. something like 80% of software projects were cancelled before they delivered. Even today 75% of software projects do not deliver on their original founding visions. In Silicone Valley, according to Stanford professor Steven Blank, over 90% of funded startups still fail.
At E7 systems we are constantly improving our process to minimize the chances that these problems affect our projects or customers. We strongly believe in three philosophies of business and software development.
Lean Business Development is the rapid iteration of the build, measure, learn loop.
By rigorously testing your ideas and product with real users, you minimize the risk in moving forward on untested assumptions.
Many start-ups develop their entire product without testing their assumptions in the real world. They wait until their products are complete before showing them to anyone outside their team. This preserves all the risk of market acceptance until the very end when there is little cash or energy remaining to adjust for inputs from the real world.
These start-ups often spend their entire war chest on development just to find the market does not care for their product. These start-ups never become real companies. Fact of business is that 2/3 of successful companies report that they had a major change (pivot) in their products and strategies between founding and success. Microsoft, eBay and PayPal all failed at or abandoned their original ideas. These companies learned from their failures early and saved enough resources to pursue their pivot strategies.
Like in Basketball, to pivot, does not mean to fail and give up, but to keep one foot firmly rooted in your strengths while you change to a workable direction.
The Guru of Lean Business Development is Mr. Eric Reis. If you are considering a start-up you might just start with his video.
If Eric leaves you with any questions, or you want the E7 Perspective, read our post, 10 Steps to a Successful Start-up.
User Experience and Customer Centered Software Design are the art & science of putting yourself in the user’s shoes. User Experience is a practice and set of techniques for actually asking users (people, members, customers) what they want.
Software is usually designed and developed by smart people, but software designers rarely stop for directions. The thing is, it costs almost nothing to ask for directions compared to the cost of speeding towards an untested destination.
Our favorite book on User Experience and software design is Agile Experience Design: A Digital Designer’s Guide to Agile, Lean, and Continuous. There is a copy on every desk at E7 Systems.
The authors of this book practice what they teach. Each page is a delight to discover new concepts with a balance of text and images. They prove that they have considered the needs and preferences of the reader in the layout of every page.
Agile Software Development, using the process of Scrum, sounds easier than it really is. The rules are very straightforward. Consider the tenets of the Agile Manifesto, written in 2001 at a summit of 17 software engineers looking for a more successful method.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Plans documents and contracts are essential, but they do not create software. Customers pay for software. So the other elements are employed only as needed. There is an excellent video which will help you understand scrum in 10 minutes.
The challenge in agile software development is that someone still has to keep track of everything. We still must have to follow through on the hard bits that are not getting finished. Project management is time consuming and hard, no matter what methods you use.
The nice thing about scrum is that throughout the development process, responsibility for conceiving, defining, implementing, and testing system features is always well defined. Throughout the project responsibility moves to the person most able and appropriate to make an impact .
The other major benefit that makes scrum and agile worthwhile is that project risk is load balanced throughout the project timeline. By testing incremental versions of “potentially shippable” software at the end of each sprint (usually 2 weeks) we are able to avoid last minute super-crunches.
An excellent and very readable book on Agile is Agile Game Development with Scrum. This book is just a little more entertaining due to the fact it focuses on game development, which we all love.
We are happy to discuss our process with clients, colleagues and competitors. Contact us to participate in our efforts towards continuous improvement.
Flexible Scrum Board in E7 proprietary project management system
A sample of a Task Approval Email. When E7 customers are working on ongoing support contracts, we automatically send a simple email for our project contact to approve new tasks. A single click can approve the task or send it back for comment. This way the customer is in control as the team maintains maximum momentum.
As items are completed and ready for test, they appear on a central screen for speedy review and approval. E7 QA sees tasks makrde done by programmers. Customers see tasks marked done by E7 QA.