Thoughtful, exceptional software begins with the end.
It takes clear definition of goals, understanding of business objectives, and alignment between software developers, clients, and users.
In this brief article, you’ll learn:
What is thoughtful software?
Why is thoughtful software important for every organization?
How to build software for a successful outcome?
Why an iterative, phased approach yields the best results?
Why personal values are important to build great software?
And why the creation and maintenance of quality software leads to long term success?
Work with partners who are genuine in understanding your goals.
WHY DO PROJECTS FAIL?
“Thoughtful software is better for the environment”
- Fahad Shoukat
Currently, it is estimated that over $3 trillion is wasted on software projects that never come to fruition. This translates to a staggering amount of value lost for both businesses and consumers. And it’s not just the private sector that struggles; for example, the Air Force spent $1 billion on a software project and had nothing to show for it.
Looking back on failed projects can help determine why the project failed. Unfortunately, the success or failure of a project is determined by a number of factors. Recent statistics show the most common reasons for project failure are:
The figures shown above only provide a small glimpse into the complexity of software projects and factors involved that ultimately determine success or failure. Additional studies demonstrate that software projects tend to run 66% over budget and 33% over time.
Most businesses are able to handle the additional costs in time and money; however, reports show that 17% of projects are so poorly executed that they threaten the very existence of the company.
BUILD THOUGHTFUL SOFTWARE
Prevent your projects from becoming part of these abysmal statistics.
Imagine and create thoughtful software.
Be committed to building, delivering, and maintaining software that is thoughtful, usable, and valuable.
Strive to build products that enhance user experience, provide value, and emphasize quality. But how do we define thoughtful software?
Thoughtful software is usable, unobtrusive, and is enjoyable to use.
It prioritizes the needs of users; rather than the needs of developers and designers. And for our clients, the creation of incredible, thoughtful software products leads to added value and tremendous opportunities for growth and sustainability.
Here we present how Skiplist builds software and what you should consider when building software and choosing a software development partner.
1. ASK WHY
“The art and science of asking questions is the source of all knowledge”
- Thomas Berger
Ask why and understand the journey that creates that pain point. Experts recognize always starting with WHY and completing a successful software project are inextricably linked.
This does not mean starting slow. However, an initial meeting or call should be to understand the problem we are trying to solve. Seems simple, right?
Often developers are so quick to take on a project, they forget to ask about business outcomes. These are important to establishing the engagement and vision of the project.
Is this feasible?
Why are we building something?
Who is the intended user?
Timing to complete the project?
What are the goals for you and your team?
Ultimately, these questions are not very helpful if not rooted by strong personal values of the people working together. After all it is people working together with people.
Alignment in values is important.
2. WE ARE DEFINED BY OUR CONVICTIONS
“A people that values its privileges above its principles, soon loses both.”
- Dwight D. Eisenhower
Skiplist is a collection of talented individuals who came together to build thoughtful software.
We wanted to create a different experience for ourselves and our clients.
The software industry is full of bloat. Starting a project can be painful. Getting a master services agreement (MSA) signed? Forget about it.
Many projects never take flight due to legal teams going back and forth for months. Your project may be outdated by the time the MSA is finally signed.
Clients and vendors labor over writing a detailed scope of work (SOW) when in reality building great software happens outside the SOW. Through good communication and flexibility to make changes.
Corralling the relevant resources and managing a team in a rigid environment can be painfully challenging.
Relationships are more important than ever. Software is an iterative process.
There is a better way.
For that better experience, we stick to our 10 core values. We believe these should help you as well.
Simple over complex
Caring over apathy
Long term over short term
Candor over cowardice
Change over stagnation
Team over individual
Transparency over obfuscation
Relationships over money
Iterate over perfect
Learning over ignorance
In the end, our journey and experiences together are what matters. Let’s make them good ones.
3. DOING GREAT WORK REQUIRES GREAT TEAMS AND ALIGNMENT
“Teamwork is the ability to work together toward a common vision. The ability to direct individual accomplishments toward organizational objectives. It is the fuel that allows common people to attain uncommon results.”
- Andrew Carnegie
We are all one team. Let’s do this!
When you have a team that is founded on 10 core values and a mission to build thoughtful software, quite a bit of good can happen.
Combined with enterprises who hold similar values, the possibilities are limitless.
One core aspect of great teams is specialization. To achieve the best outcomes, bring in talented people who excel in certain areas. For example, a user experience (UX) designer can be the difference between a successful or failed product.
Don’t just build an app for the sake of it. Carefully plan it out with experienced architects and designers who can help support the vision. Five star ratings correlate to a better brand image and increased revenue.
Leveraging data can be a competitive advantage if implemented properly. Data science isn’t just a buzzword and data scientists are very expensive.
It is more impactful to start with a proof of concept (POC) to test the idea. Then develop a roadmap to increase the probability of success.
97% of employees and executives believe lack of alignment within a team impacts the outcome of a task or project.
86% of employees and executive cite lack of collaboration or ineffective communication for workplace failures.
About 75% of employers rate teamwork and collaboration as “very important”.
We understand the need for dynamic, flexible, and dependable teams to complete our projects and form lasting relationships with our clients.
Listening and executing on software projects quickly and within budget is crucial to success.
4. SOFTWARE IS AN ITERATIVE PROCESS
“Software is a great combination between artistry and engineering.”
- Bill Gates
We firmly believe that software development is an iterative process that requires a phased approach.
A phased approach is necessary and important because it allows for our developers and our clients to provide continuous feedback, make improvements, and manage changes to the project without disruption.
A phased approach consists of 3 phases:
Phase 1 — Discovery
Phase 2 — POC / MVP
Phase 3 — Expansion
PHASE 1 — DISCOVERY
The requirements gathering or discovery phase is an essential part of any project. Though often it is overlooked as we rush to save time and start the project.
Experienced project managers will agree if requirements are identified early on, the probability of a successful outcome dramatically increases.
In this phase we want to establish a few important aspects.
Purpose of your project
Domain you operate in
Your unique operation complexities
Produce alignment between teams
If you are working with experienced professionals, this process moves fairly quickly.
PHASE 2 — POC / MVP
In the proof of concept phase demonstrates that certain concepts or theories may have potential for real-world applications.
A prototype is a very useful tool to determine the feasibility of a product without the high cost and going too far into a project.
A POC may involve extensive research. It allows time to examine and test assumptions. Often wireframes and mockup designs are created to visualize what may be possible.
In this phase, we can also get a better idea of the estimated total cost of the project. Budget overruns are usually a result of poor upfront planning. Stuff happens and projects do get derailed. We understand.
However, we can make a conscious effort early to minimize these effects down the line.
The next step can be a minimum viable product (MVP). The MVP takes the POC a step further to build a functional beta product where users can actually use and play with something real.
This provides invaluable feedback of how users interact with a product. The next steps are to learn from our findings, iterate, and build a better product for a full launch.
Alignment and understanding are achieved
Identify and build
Learn and iterate
Prepare for launch
PHASE 3 — EXPANSION
The term “production ready” is often misunderstood. It depends on who you are talking to.
A programmer would say a “production ready” software is:
It meets the product requirements as defined in the discovery phase
Its design was well thought out in the POC phase
It is stable
It can be maintained
It can be scalable
It is documented
Management would say a “production ready” software is:
It turns a profit
This all depends on the purpose of the product which we define by asking questions at the beginning of the project. For example, some research projects may not need to be a scalable solution.
However, if there is a bigger vision for a particular project it would make sense to plan ahead. Designing the architecture upfront to allow for scalability should not be overlooked.
Additionally, during this phase new features may be introduced and implemented. Feedback from the POC phase is important to refining a “production ready” product.
5. PLAN FOR THE FUTURE
“Productivity is never an accident. It is always the result of a commitment to excellence, intelligent planning, and focused effort.”
- Paul J. Meyer
Planning ahead will save time and money. The challenge is always balancing being prepared with moving quickly to meet demand.
Experienced developers, designers, and architects know it is always better to understand the end goal. We may not always know how the end may look but we can guide the process with a vision of what we want to build.
When are you working with experienced professionals at Skiplist, we are able to move swiftly by following the steps outlined in this paper. We are also able to adapt and make changes to keep the project on schedule.
When we all have the vision in mind and are aligned in values. The future can be more predictable.
Now that you know what thoughtful software is, how there are different software partners in this noisy world, and what it takes to not be another statistic.
The question remains, will you be responsible for initiating an amazing, thriving software project?