The challenge is putting working software in the hands of the people who want it, quickly enough to take advantage of it, whilst ensuring stability, security and longevity.
Architecture and Requirements are the Biggest Risks to Application Development
Development is Driven by Business Need
Apps that start as tactical, temporary fixes often gain support of users and managers because they do a simple job very well because the requirement has been properly communicated, usually to a single developer. The developer understands the business need and is able to develop a solution for it. These are the driving principles of Agile – face to face communication and working together daily with the business.
Quite soon the business has become dependent on an application that is outside the IT department’s scope of support, and is categorised as a ‘shadow application’. Meanwhile more users and features have been added, and the initial design has revealed weaknesses and so the application is added to the ‘looming legacy’ risk list.
In the case of one such application lifecycle, a line of business system supporting 30 users and their managers, the specification for a replacement system had been written but development halted after costs rose above £300k!
We examined the system and found that the old, underlying code was so poorly-written that making any changes to it was too risky, but that the database could be easily updated to a supported version, and the application replaced in phases. Each phase provided the opportunity for the business to considerably improve the service provided whilst integrating with, and maintaining the legacy system.
The result was a world-class, state-of-the-art, service-based system whose requirements were provided by the users, at a fraction of the cost of the ‘replacement’ system.
Architecture and Design Matter
The Software Engineering Institute (SEI) defines the work of the software architecture is to craft and communicate the right architecture to solve the problem at hand and defines architecture as:
An artifact for early analysis to make sure that a design approach will yield an acceptable system
Years of auditing software has shown us that too many enterprise applications are designed by people whose skills fall far below the levels required by their job function. According to the SEI, good architects:
- Write code
- Speak with stakeholders to ensure their needs are being met
- Promote and present their design to managers and developers
- Resolve technical problems and make trade-offs
- Prove end to end performance and functionality
It costs the same to develop a solution properly, so that it can sustain future development, as it does to put something together poorly. The difference is architecture and design.
Two Speed IT: Innovating and Keeping the Lights On
“I Want IT that Works, Not that Makes Me Think”
Sophisticated user interfaces and more attention to the ‘User Experience’ (UX) has helped iPad and Android devices democratise IT. With super-fast and intuitive ‘apps’ that are linked to cloud services, users can enjoy task-centric benefits for less than the price of a coffee. This is today’s norm and professional workers expect it, hence the Bring Your Own Device (BYOD) revolution.
Full Stack Compilation, Test and Deployment at the Press of a Button
The software development stack has also been democratised. Where testing, quality assurance and release used to be highly specialised and time-consuming job functions; automated testing (TDD, ATDD, BDD), continuous integration (CI) and continuous deployment (CD) have eliminated them completely. Anyone can press the ‘Release’ button, the stack does the work.
You Use: Microsoft ALM, Java ALM, Rally, Jira – We Help With the Process
We work closely with Microsoft, Rally and other tools providers to help clients become more Agile using their chosen tool and development stack. For the TfL projects we used Visual Studio, Subversion, NUnit and Cruise Control, moving to Team Foundation Server (TFS) as the number of teams increased. Our clients today are using GIT, JIRA and Rally Software. Note that many of these tools are both free and the ‘best of breed’.
What is Application Lifecycle Management
IT application management or application life-cycle management (ALM) covers all the stages from concept, analysis, design, prototyping, developing, improving and decommissioning.
According to the Agile Manifesto:
Working software is the primary measure of progress