Agile Development Processes at E7 Systems
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.
Click each bar for details.
Lean Business 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 – Customer Centered Software Design
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
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.
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
The last bit is crucial. We imagine it was added by a guy who was quiet throughout the rest of the process of developing Agile. He said, “let’s not throw away the documents, but let’s do them in a barely sufficient fashion, so we can put the appropriate focus on making working software.”
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.
Checklists – coming soon.
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.