Let’s take a look at IT agility—with a fresh perspective: through the eyes of a relatively new Java developer. This session dives into how companies are staying competitive by increasing their agility. You may be familiar with traditional SDLC methodology and how many firms are replacing a more rigid/monolithic approach with agile and related iterative methodologies: Scrum, XP, prototyping. An organization can’t just complete a checklist and be “agile.” Some key elements are nonnegotiable; core values and results must be the primary goals. The road to those goals must be adapted to each organization’s own model and culture. Whether you’re a longtime professional, have just joined the field, or are looking for something new, this session may give you thought-provoking perspectives.
2. About Me:
• Recent graduate, MS CMIS in May
• Programmer Analyst at Edward
Jones (since 2013)
• PMP certified
• Enjoys learning where tech will take
us next
• And finding ways to organize chaos
• Also an avid violinist, movie
soundtrack fanatic, and NCIS addict
• Wedding – Nov 2016!
• @JMHeckler (Twitter)
4. To boldly Go…
• Why are we here?
• Benefits for business and tech
5. Business is business
Rule #16: If someone thinks they have the upper hand,
break it.
• Improve market position
• Better business
• Personal growth and career development
Think of the companies that rule the world right now
• Amazon?
• Apple?
• Others?
6. What Is It?
Organizational agility: improving the speed and flexibility of
the overarching processes, decisions, and concerns at the
company level.
Key: efficiency, effectiveness
Agile Manifesto:
• Individuals/interactions over tools/processes
• Working software over comprehensive
documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
7. How Do We Achieve It?
Varies based on industry and business
Certain elements non-negotiable, but others can be
customized
Goals = core values and results
All aspects of business reviewed and improved
Business needs to be flexible to allow change, yet
governed (standards) to achieve speed
9. Workforce Agility
Employees and their interaction with tech
How employees can improve a firm's ability to provide
products or solutions to customers faster or better
Accomplished through…
1. Physical elements – tools and training
2. Cultural elements – PEOU, PU, management
10. Interaction with it
Physical
• Tools =
productivity, speed, decision-
making
• Employee training =
knowledge, empowerment
Cultural
• Perceived ease-of-use
• Perceived usefulness
• Rule #38: Your case,
your lead
• Encouragement =
Intrinsic motivation
11. Change
• How does change affect us (as developers)?
• What about our business area?
• Our users?
• Old habits die hard
12. Challenges
Change can be threatening
• Why?
Wrong changes
Competitors
Risk
Size/logistics
Impact
Little/no stability
Training nightmare
Procedure/documentation
(you get the picture)
13. Characteristics
• Rule #15: Always work as a team
• Business/IT alignment --> simplicity in decision-making
• Encouragement-driven culture
• Extreme flexibility
• Location independence
• Virtual teams/collaborations
• Collaborative tools to easily
communicate and accomplish
tasks
15. IT Agility
• Ok, so IT changes rapidly…..
• “Failure isn’t fatal, but failure to change might be” – John
Wooden
• Why is IT so important?
• Besides for supporting our livelihoods, of course
• And because every other business uses it
16. Why IT?
IT permeates all areas of the business.
Tools and information used in all departments
Increase speed for
Human communication
Information/data-sharing
Data analysis
Decision-making
End-to-end process (reduce human intervention for repetitive
tasks)
Not Accounting Agility or Manager Agility or HR Agility – but
IT Agility!
By affecting area that supports all others, can increase
overall org agility
17.
18. Changes at the
speed of light
“The requirements change so quickly that if IT’s pace is in weeks
and months, you end up not delivering anything, because the
problem changed by the time you deployed your solution.” – Ken
Venner (CIO of SpaceX)
So how do we keep up?
Well….how are others keeping up?
• DevOps
• Business/IT alignment
• Light, widespread governance
• Modular architectures
• Technologies
• Cultural changes
19. DevOPs
Why DevOps?
• Rule #1: Never mess over your partner
• Faster, higher quality solutions
• Traditional approach tends to build walls between ops and
dev
Mentality of "those who build also support" tends to increase
accountability
20. Words of Wisdom
“Giving developers operational responsibilities has greatly
enhanced the quality of the services, both from a
customer and a technology point of view. The traditional
model is that you take your software to the wall that
separates development and operations, and throw it over
and then forget about it. Not at Amazon. You build it, you
run it. This brings developers into contact with the day-to-
day operation of their software. It also brings them into day-
to-day contact with the customer. This customer feedback
loop is essential to improving the quality of the service.” –
Werner Vogels, Amazon 2006
21. IT and agility
• Business/IT alignment
• Reduces layers of barriers for changes
• Minimize misunderstandings for strategy
• Simplify decision-making for changes
• Modular architecture
• Lighter, smaller components
• Flexibility, speed, adaptability
• Cultural changes
• Innovation, experimentation
• Pair programming, collaboration
• Light governance structure
22. Nuts and bolts
• Governance
• Key: low ceremony
• Guidelines in place to structure responses and
decisions
• Lightweight, widespread, flexible
• Technologies!!!!!
23. Technologies
People:
• Knowledge-sharing
• Assist with tacit knowledge
capture and dissemination
• Integral to on-boarding and
up-skilling
• Mobile technologies
• Apps and connectivity
• Employees can do work
anywhere and anytime
• Usually means more work
accomplished
Things:
• RFID – Radio Frequency
Identification
• Inventory management
• Logistics tracking and
efficiency
24. More tech
• Data analytics tools
• So much data
• What is important?
• Tools/people to consolidate and highlight
• Faster data analysis = faster, more accurate decisions
• Cloud
• IaaS, PaaS, SaaS, oh my!
• CapEx vs. OpEx
• Pay what you use, no purchase overages
• Dynamic provisioning, scaling
• Responsive architectures
• Microservices vs. monoliths
• With long release cycles, failure is eminent
25. My background
• Financial investments firm = rigid, sluggish, and
traditional, and it can be.
• But, we also realize the importance of agility.
• Adoption of "the sprint"
• “For IS, our working group has established a structure
that will segment the work into 30-day sprint. At the
end of each sprint, we will review our
accomplishments against the plan and then
prepare for the next sprint. This method allows us to
timebox the work, aligning efforts toward closure and
maintaining our focus on a common goal.”
26. Customization
• 1-size-fits-all doesn’t work with various metro
markets across US and Canada.
• Tailored solutions/strategies
• It’s important when the financial firms are starting to
adopt something!
28. Agile Manifesto
1. Satisfy customer through early and continuous
delivery
2. Welcome changing requirements late in
development
3. Deliver working software frequently
29. Agile manifesto cont.
4. Business people and developers work together
5. Build projects around motivated individuals
6. Communication most efficient/effective face-to-face
30. Agile Manifesto cont.
7. Working software primary measure of progress
8. Agile processes promote sustainable development
9. Continuous attention to technical excellence and
good design enhances agility
31. Agile Manifesto cont.
10.Simplicity is essential
11.Best architectures, designs, and requirements built
by self-organizing teams
12.Team regularly reflects on how to become more
effective, then adjusts accordingly
32. Future Developments
• Security: if we're constantly changing and adapting,
maybe criminals might have a harder time breaking
defenses that morph
• New/better tools for collaboration, automation,
communication, and data sharing/reporting that
increase agility
• Role of management in workforce training and
technology adoption/acceptance
• Types of training that provide most impact to agility
33. And more!
• Untapped capabilities remain in workforce
• Capture and transfer of tacit knowledge
• As environments and people change, need
improvements to exploiting workforce agility
• Solutions for global economies (countries, time
zones, languages)
• Logistics and communication
• Change creates continuous cycle to learn and
improve businesses
Specify Master’s degree
Approached the tech industry a little differently???
Any other NCIS fans? I have a few references. Extra points if you recognize them.
Because I’m in fintech, may have a few terms that are similar with others, but not the same. So, if I’m getting too deep in jargon, let me know, and I’ll translate
Sometimes we are busy and we simply dive into a development effort or a fix without really analyzing best solution
But sometimes, there is wisdom in strategically planning your response.
It’s easy (after working somewhere awhile) to go on autopilot and stop asking questions.
Why are we doing this? Is there a better way? Can we improve this process?
Try to make a timeline, so just do.
Experienced employees often provide experience/knowledge/business skill/ etc, but those fresh to the field can bring – questions!
So, whether you’re new to the field or an experienced professional, my goal for this session is to revitalize our perspectives and challenge us to always question
Why here at JavaOne, working in this field, etc?
(partly selfish and partly good citizen)
Developers tend to want the latest gadgets and tools – why?
Because we want to play with cool tech, but we want our business to be able to do really cool things with it, too.
We want to improve (ourselves, our tech, our business people’s lives, our company’s position)
And if we just support what our company currently uses, we’re digging our own grave as well as our company’s in the industry
Going along with why we're here and improving our company's market position……
Don't take it literally! Though business world is brutal, maybe not quite that physically damaging
Think Apple and Amazon (maybe Netflix and Google?)
Why do we often think first of these companies when we think top of the market?
Every company wants to to be successful or be in their market position, model after their successes
Most employees would jump at the chance to work for them. "dream job”
What’s so special about them? They’re not all competing (or achieving success) in the same way
Amazon
Product variety, speed, quality, cloud services (AWS) (customer service – example of Acer Chromebook order & search history for similar)
Apple
innovation, design, quality, user-friendly (iPod, iPhone, Macbook)
Netflix
Microservices (reliability), continuous delivery, survivability (Simian army – chaos, latency, conformity, doctor, janitor, security, etc.)
Code to embrace failure. Failure not a matter of if, but when and they’ve planned for that
Google
Integration/building ecosystem, innovation (moonshots), search, advertising, machine learning (Google maps example)
One thing they all have in common (we hope): long-term competitive advantage…....
So we’ve touched on why we’re here (we want to improve and be viable in the market)
And we’ve looked at the highly successful companies in today’s market
So how do we compete? = organizational agility
Look at real-life examples like those companies we just looked at that are top of the market, and you can see that they achieved their position differently.
Different CEOs focus on different strategies, yet each strategy can provide a way to the top
If we all reached the top in the same way, that just wouldn’t be very creative
Must inspect every area, but one thing is consistent across the board – a few guideline standards as foundation, then flexibility to adapt
Delve a little deeper into the IT contributions, but others worth discussing
Take a minute and think of our situations now as developers. What makes us more agile, more able to make changes quickly or do our jobs better/faster?
Some of you might say tools, mobile devices, remote technologies to work location independently, management structure conducive to decisions at all levels, or firm provides training or opportunities increase knowledge
Tools for integration, communication, compiling, testing, etc.
more skilled or educated your workforce and the more open they are with new tech
(good, as it changes rapidly)
means your firm can move and make decisions more quickly
training can give employees confidence and/or skill with IT tools
(help learn something faster)
Training could also be cultural element
Positive relationship with IT correlates with increased organization agility. If users like tech, they use it.
PEOU: user-friendly, how long it takes/difficult it is to accomplish a task with a technology
PU: how well the technology accomplishes what you need, what features it offers.
As we are more mobile and business functions can be on mobile devices now, PEOU/PU related to how well can do job from any location
Agile workforce = mobilize business processes through employees, increasing overall agility
Reduce or eliminate time or location dependent functions
Add management factor here, as well. If management won’t/doesn’t encourage it, it likely won’t motivate the employees to start anything from bottom up
If a person is less (or not) intrinsically motivated, best thing to do is figure out how to increase intrinsic motivation
Then build that into training, culture, and work environment
Mgmt needs to delegate responsibility, as well as authority. If you only give responsibility, but not authority to act (decision-making), then nothing can happen
Depends on the change
How many times has your company locked things down for security and it makes our process a little trickier?
Or our team changes our workflow to add/remove steps?
Or when our area/dept/firm wants to decrease the release time?
Business area added reviews, analysis, or process changes?
Requirements changes that change our designs?
Most changes should be invisible to user, right?
Any changes to their process should involve communication, right?
This list mostly pertains to org level (key words like competitors, risk, logistics)
How does change affect us as developers?
Wrong changes could mean extra developer or support hours to fix
Logistics: change process or steps add/removes layers of communication and hands touching an effort
Training: training yourself and your colleagues to new standard
Procedure/documentation: documenting steps or updating system info
Change can be a threat to organizations
Difficult to see the forest for all the trees
Easy to continue doing things same way when you're comfortable and fast how they are now.
But, is continuing the process AS-IS the right thing to do? In order to accomplish goals (individual, team, dept, firm), aren't changes needed? And what are the best steps to accomplish those changes?
May sound a lot like DevOps – hold that thought. We’ll cover that here shortly.
single strategy that both IT and the business use as their goals. Decisions are simpler because both areas know how the unit will respond
Discourage an us-versus-them mentality
Management/colleague encouragement for org culture. Encouraged to question and find best way.
Flexibility: If firm culture is strong governance and adherence to standard processes, you aren’t likely to be very agile (and there will be resistance if you do move towards a more agile environment)
Think financial industry: limited by legal and government regulations (just how industry works).
This applies to any industry that is highly regulated. May not be able to be as agile as other industries, or just have to be more creative
Location independence
If have a very dispersed team, then tools become more important to team communication and accomplishment of tasks
Specific tools: Slack/Lync, email, web conferencing???
There are times when transformation (rip-and-replace) is needed, but most often an evolutionary approach ensures continuity
Not mutually exclusive, but especially at org level, usually in small scopes
Hear pressures to deliver faster and not break things needlessly, but don't be afraid of the occasional failure.
- Agility in flexibility to respond to changes and adapt to changes (with pilot projects, to create positive vibes around change)
- Reliability in providing consistent, dependable service to customers (existing systems).
Modular structure allows changes underneath without any (or little) appearance of change on the surface.
Collaborative means that changes are made as a unit, assessing impacts and communicating with those involved.
Even managers and strategists use it! (it must be intuitive)
Goal is to reduce number of manual steps in process, faster can be deployed (great example is build pipeline {CI/CD – continuous integration/continuous delivery (Jenkins)}, but can be any process like an expense report approved/paid). More manual steps = longer time
By no means comprehensive diagram/flow/visual aid, but just a highlighted list from my point of view
IT is the basis for all other functions in a company. You remove a building block, and "the whole dang opera falls apart."
- IT -> Client support: depends on core competency (hardware, software, etc. depending on your company/industry)
- see, told you we’d cover DevOps.
How can firm’s IT be agile and move its company forward?
System infrastructure, databases, connections
Key strengths that cannot find at another company
Ops likes consistency, "boringness". Development likes dynamic, creative new tech.
Saw these in org agility, but now from an IT perspective.
Business and technology environment change rapidly, so easy to get out of alignment.
Modular allows backup systems to seamlessly replace broken ones, changes in vendor contracts, upgrades, etc.
Reduces time to market on products, services, or fixes
Many times, we think microservices. I'll leave the microservices vs. monolith debate up to you.
Cultural changes to encourage employees to collaborate and be creative
Smaller IT governance means few procedures, fewer obstacles, and faster decisions
Mobile fits both People and Things
CapEx: Capital Expenditures. Can spend millions of dollars in hardware and system setup before ever turning anything on.
Shipping, cables, physical location storage
OpEx: Operational Expenditures. Cost of running it. This is what Cloud has over traditional IT.
Scaling: automatically adjust processing power (number of processes to reflect demand)
Dynamic provisioning: add more compute resources, spin up another instance
Like Borg saying, "resistance is futile. You will be assimilated" (or destroyed)
Agile methodology sprint: iterative, short cycle of steps
Even though don’t have full scope of work for DOL, we are working in segments of what we do know
(government does nothing small)
- One model or strategy may work in Denver, but not in Atlanta, D.C., St. Louis, or Dallas. Began work on tailored solutions and strategies = customization, agility
Still working on early and continuous delivery (), but our primary objective has always been to put the clients’ interests first
It’s even a session of each associate’s orientation
Also something we are working on. My team has dealt with “progressive elaboration” in requirements, especially recently due to the speed and complexity of projects has caused us to take a more iterative approach to many of our larger projects
Realize the importance of quickly adapting and are working to reduce the release timeline
Automated test scripts and reducing manual steps decrease the overall process length
My area has added a team to bridge the gap between the business and IT. While it means additional communication hoops, we realize the importance of the relationship between developers and business users. The business users own the functions, developers own the code/support, and the middle group owns the data.
Though we are a more traditional business, I believe we encourage innovation and continuous process improvement. There are initiatives started by employees that I’ve seen encouraged and even successfully implemented. Our team keeps a list of process improvements that individuals create.
Tools, tools, tools! We have webconferencing, remote connections, meeting schedule tools, etc.
One of our team's metrics for each year is having our systems available and reliable 24/7 and implementing our solutions right the first time.
Our firm publishes FA feedback of our IS systems on our weekly Monday Memo. We evaluate the success of our systems based on user feedback to know what is working well and what needs corrected or what can make their jobs easier.
While we're still working to adopt agile processes, we are working towards agile methods in some of our projects, and even our team is seeing a more iterative processes to requirements and shortening of development cycles
Though tends to be more traditional, we do our best to implement systems efficiently and effectively. Because more traditional, we often use a process or system for a longer period, so we design solutions with longevity and some flexibility in mind. Things change (even if we still use a legacy system), and we want to adapt.
Often have peer reviews for a complex effort early on when a teammate puts together technical spec/designs a solution, then again after coding is complete, and after thorough testing.
My position at Edward Jones we are already a DevOps team. We analyze and design business solutions, code, test, implement, and support. Actually carry a physical pager. So, if there is a chance that my code may break, and that I would get called at 2 or 3 in the morning, I’m less likely to throw it in production.
Continuing to work towards this (but, really, who isn't?). Are there teams who try to implement fancy, non-essential systems? We do our best (as many teams probably do) to provide the needed solutions in the simplest, most efficient way possible. Doesn't mean we don't sometimes get all starry-eyed over cool stuff and want more than we need, but that's not typically what we strive towards.
Edward Jones isn’t quite ready to go completely organic across the board, but on smaller scale, application architectures/designs have adopted this approach.
Experimental teams, short-timeline projects
Depending on need
For larger efforts, our project teams have a lessons learned meeting following the implementation to discuss what went well and what could be improved. We also have reviews on projects that seemed to have more difficulties than expected.
Occasional team meetings, a team member will bring up a possible improvement and our team will discuss whether we are able to act upon it. Review our procedures or actions taken and see if they need improved
At Edward Jones, our leadership talks about not just having a hard outer shell. But several layers of strong defenses (defense in depth)
Always think of Harry Potter and the challenges to get to the Sorcerer's Stone at Hogwarts
While changes may open up loopholes in firm security, they may also create changing barriers for attackers, as long as we have protected our changes
workforce agility enabled by IT providing technology to aid processes and activities. Technology that is fast and flexible increases amount of work that can be accomplished.
more tools provide capability, or new tools for certain functions
Mgmt can play a key role by setting an example for adoption of technology, as well as providing training for employees on business or tools
What kinds of training provide the most value for agility?
As we solve challenges for global flexibility and communication, others will arise